使用恢複目錄時會涉及到其他一些維護活動,比如在資料庫升級或遷移期間升級恢複目錄,手工設定資料庫對應物以及在某些資料庫操作後在同步恢複目錄。
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 來備份恢複目錄資料庫。 只要確保設定了合理的恢複策略,就能夠很快的還原恢複目錄。
丟失恢複目錄並不可怕,即使使用了恢複目錄,在以後也可以不使用恢複目錄就能夠恢複資料庫。關鍵的是,我們需要資料庫控制檔案的備份。