1、恢复目录数据库配置建议:
表空间 大小需求
SYSTEM 90MB
TEMP 5MB
UNDO 5MB
RECOVERY_CATALOG_SCHEMA 每个主城的数据库15MB
ONLINE REDO LOGS 每个联机重做日志文件1MB
2、创建用户
create tablespace ctlg datafile '$Oracle_BASE/oradata/$ORACLE_SID/ctlg.dbf' size 100M autoextend on next 10M maxsize 2G;
create user ctlg identified by ctlg default tablespace ctlg temporary tablespace temp;
grant connect,resource,recovery_catalog_owner to ctlg;
注:恢复目录用户账户在某种程度上也算是一个特许的数据库账户,尽可能像保护系统用户那样保护好这个账户。
3、创建恢复目录Schema对象
启动RMAN,使用target参数连接目标数据库,并使用catalog参数连接恢复目录数据库。然后在RMAN中执行create catalog命令,此时可以选择使用tablespace参数来定义在其中创建RMAN的Schema对象的表空间。
[oracle@zhs10g ~]$ rman target='BACKUP/BACKUP@UTF10G' catalog=ctlg/ctlg@bcatalog
Recovery Manager: Release 10.2.0.4.0 - Production on Tue Aug 21 17:41:24 2012
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: UTF10G (DBID=1585746538)
connected to recovery catalog database
RMAN> create catalog tablespace ctlg;
recovery catalog created
RMAN>
4、在恢复目录中主城数据库
使用RMAN,同时连接目标数据库和恢复目录,然后在恢复目录中注册数据库:
rman target='BACKUP/BACKUP@UTF10G' catalog=ctlg/ctlg@bcatalog
register database;
当连接目标数据库时,可以在RMAN中执行report schema命令来验证注册数据库是否成功:
RMAN> report schema;
Report of database schema
List of Permanent Datafiles
===========================
File Size(MB) Tablespace RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1 500 SYSTEM YES /soft/oracle/oradata/utf10g/system01.dbf
2 235 UNDOTBS1 YES /soft/oracle/oradata/utf10g/undotbs01.dbf
3 480 SYSAUX NO /soft/oracle/oradata/utf10g/sysaux01.dbf
4 5 USERS NO /soft/oracle/oradata/utf10g/users01.dbf
5 100 STRMADMIN NO /soft/oracle/oradata/utf10g/strmadmin01.dbf
6 100 SRCB NO /soft/oracle/oradata/utf10g/srcb01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1 29 TEMP 32767 /soft/oracle/oradata/utf10g/temp01.dbf
5、删除恢复目录
如果不需要使用恢复目录了,则可以删除恢复目录模式。注意:删除恢复目录模式前应该考虑备份恢复目录数据库。
删除命令为:
RMAN> drop catalog;
recovery catalog owner is CTLG
enter DROP CATALOG command again to confirm catalog removal
RMAN> drop catalog;
recovery catalog dropped
注:该命令需要执行两次,第一次是让你确认的。
6、在恢复目录中天剑RMAN备份
如果已经在没有恢复目录的情况下执行了RMAN备份,并且希望以后将这些备份信息添加至恢复目录,则可以使用catalog命令。该命令可以讲数据文件副本、备份集片、归档日志备份、甚至整个备份目录天剑到恢复目录中,如:
RMAN> catalog datafilecopy '/backup/rman/system01.dbf';
RMAN> catalog archivelog '/backup/rman/log_database_1.arc','/backup/rman/log_database_2.arc';
RMAN> catalog backuppiece '/backup/rman/backup_0808.bkp';
RMAN> catalog start with '/backup/rman/database/';
注:要谨慎使用catalog start with命令。必须在目录路径结尾加上斜杠。如果使用/backup/rman/database,则Oracle将遍历:/backup/rman/database中所有可能的database目录组合。这可能包括如下目录:/backup/rman/database、/backup/rman/database-123,或者/backup/rman/database-xx等等。使用斜杠后缀则表示只要找/backup/rman/database/。
注:在window中为反斜杠
7、在恢复目录中取消数据库注册
同样是使用RMAN根据登录目标数据库和Catalog数据库,然后执行如下命令,需要回答yes:
[oracle@zhs10g ~]$ rman target='BACKUP/BACKUP@UTF10G' catalog=ctlg/ctlg@bcatalog
RMAN> unregister database;
database name is "UTF10G" and DBID is 1585746538
Do you really want to unregister the database (enter YES or NO)? yes
database unregistered from the recovery catalog
如果目标数据库已经删除,并且希望从恢复目录中彻底删除该数据库,则在大多数情况下只需要知道希望取消注册的数据库的名称。如,希望取消注册utf10g数据库,则可以在连接到恢复目录中执行如下命令:
[oracle@zhs10g ~]$ rman catalog=ctlg/ctlg@bcatalog
Recovery Manager: Release 10.2.0.4.0 - Production on Fri Aug 24 01:58:16 2012
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to recovery catalog database
RMAN> unregister database utf10g;
database name is "utf10g" and DBID is 1585746538
Do you really want to unregister the database (enter YES or NO)? yes
database unregistered from the recovery catalog
RMAN>
如果恢复目录中有多个已相同名称注册的数据库时,就需要知道希望取消注册的数据库的DBID。然后在run代码块中运行unregister database命令,同时使用set dbid命令。如:
run
{
set dbid 1585746538;
unregister database UTF10G NOPROMPT;
}