使用恢复目录时会涉及到其他一些维护活动,比如在数据库升级或迁移期间升级恢复目录,手工配置数据库对应物以及在某些数据库操作后在同步恢复目录。
1、在RMAN中取消注册数据库
在Oracle 10g 之前,从恢复目录中取消注册数据库是一个手工操作的过程。在10g中,从恢复目录中删除数据库只需要执行 unregister database。如:
RMAN>unregister database orcl;
注意的是: 该命令不会删除该数据库的备份文件,而只是删除这些备份文件的恢复目录引用。 同样需要注意的是,只需要连接恢复目录就可以执行该命令。
2、数据库的迁移和升级问题
升级数据库时,必须同事升级恢复目录,因为数据库版本, RMAN 版本和恢复目录版本之间存在严格的格则。
用恢复目录用户连接数据库,然后查询rcver表,就可以看到恢复目录的版本:
SQL> conn rman/rman@orcl;
已连接。
SQL> select version from rcver;
VERSION
------------
11.02.00.01
只要恢复目录的版本不低于数据库的版本,就能够执行各种操作。 因此,如果在同一个恢复目录中存储多个数据库,只要升级这个恢复目录中的一个数据库。
升级恢复目录很简单,只需要在RMAN 里执行upgrade catalog命令即可。 RMAN 会提示用户再次输入upgrade catalog命令,随后将升级恢复目录。
C:/Users/Administrator.DavidDai>rman target /@bl catalog rman/rman@orcl;
恢复管理器: Release 11.2.0.1.0 - Production on 星期日 7月 11 10:16:20 2010
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: BL (DBID=680066685)
连接到恢复目录数据库
RMAN> upgrade catalog;
恢复目录所有者是RMAN
再输入一次 UPGRADE CATALOG 命令来确认目录升级
RMAN> upgrade catalog;
恢复目录已升级到版本11.02.00.01
DBMS_RCVMAN 程序包升级为 11.02.00.01 版
DBMS_RCVCAT 程序包升级为 11.02.00.01 版
3、手工重置数据库对应物(reset catalog)
在打开数据库时,如果使用resetlogs参数,就会创建一个新对应物。 如果这个操作是在RMAN 中进行,则会正确的更新恢复目录,但是,如果手工执行resetlogs命令(比如:sqlplus),就必须在恢复目录中重置数据库对应物。
Rman>reset database to incarnation 5;
4、手工再同步恢复目录(resync catalog)
RMAN使用恢复目录时,它会使用在同步进程来确保恢复目录和目标数据库的控制文件一致。通常,Oracle在RMAN操作(备份和恢复)后会再同步数据库,这样就不必经常再同步恢复目录。需要再同步恢复目录的一个实例是有时使用恢复目录,有时不使用恢复目录,此时,可以使用resync catalog命令手工使Oracle 再同步恢复目录。
Rman>resync catalog;
Oracle 同步恢复目录时,它首先会创建一个快照控制文件,并比较这个文件和恢复目录。 完成比较后,Oracle更新恢复目录,是恢复目录与数据库控制文件同步。
5、恢复目录记录的删除
只有很少的记录会从恢复目录中被删除,如果不加以维护,状态为deleted的就备份会一直驻留在恢复目录中。为了解决这个问题,Oracle提供了$ORACLE_HOME/rdbms/admin/prgmanc.sql 脚本来删除恢复目录中状态为deleted的所有记录。 建议定期执行这个脚本,以控制文件恢复目录的大小。
如果要从恢复目录中删除旧的对应物记录,就必须从DBINC表中删除这些对应物。可以使用RC_DATABASE_INCARNATION 视图来确定要删除的对应物,记录想删除的每个对应物的DBINC_KEY值。然后在sqlplus中执行delete 命令,如:
SQL> select * from rc_database_incarnation;
DB_KEY DBID DBINC_KEY NAME RESETLOGS_CHANGE# RESETLOGS_TIME CUR P
---------- ---------- ---------- -------- ----------------- -------------- --- -
2 1247395743 4 ORCL 940976 21-5月 -10 NO 0
2 1247395743 21 ORCL 1 02-4月 -10 NO
2 1247395743 787 ORCL 8554968 06-7月 -10 YES 2
SQL> delete from dbinc where dbinc_key=4;
已删除 1 行。
6、备份恢复目录
我们可以使用RMAN来备份数据库,同样可以用RMAN 来备份恢复目录数据库。 只要确保设置了合理的恢复策略,就能够很快的还原恢复目录。
丢失恢复目录并不可怕,即使使用了恢复目录,在以后也可以不使用恢复目录就能够恢复数据库。关键的是,我们需要数据库控制文件的备份。
oracle视频教程请关注: