爲什麼需要恢復目錄?
1.因爲控制文件中Rman的元數據存放天數達到control_file_record_keep_time 後,可能被覆蓋。
2.恢復目錄可以存儲腳本。
一、建立恢復目錄:
create tablespace rman_ts datafile '' size 15M;
create user rman identified by rman default tablespace rman_ts;
grant connect,resource,recovery_catalog_owner to rman;
rman catalog rman/rman@catdb
create catalog; --創建數據字典
connect target sys/oracle@demo
register database; --註冊數據庫,將控制文件中的信息同步到恢復目錄中
report schema;
二、建立存儲腳本
rman catalog rman/rman@catdb target sys/oracle@demo
--創建存儲腳本
create script bak_database {
backup format='' database include current controlfile plus archivelog;
sql 'alter system archive log current';
}
run { execute script bak_database;} --執行腳本
rman catalog rman/rman@catdb target sys/oracle@demo script bak_database --執行腳本
print script bak_database; --顯示存儲腳本內容
replace script bak_database { --修改存儲腳本內容
backup database format='';
}
delete script bak_database; --刪除存儲腳本
list script names; --顯示存儲腳本的名字
resync catalog; --同步恢復目錄
unregister database; --註銷恢復目錄中對應數據庫的記錄
rman catalog rman/rman@catdb target sys/oracle@demo
upgrade catalog; --升級數據庫以後,對應的catalog需要升級
upgrade catalog;
drop catalog; --刪除恢復目錄
drop catalog;
list incarnation of database; --顯示數據庫的副本
startup force mount
reset database to incarnation 2; --回退數據庫到對應的副本
--恢復目錄對應的幾個元數據表
rc_database, rc_tablespace, rc_datafile, rc_stored_script, rc_stored_script_line