說說10g rman的catalog命令

foxmile發表於2008-04-15
轉自

Update:9i也有catalog命令,但是不能識別備份片,謝謝waityou81的指出。但是由於不支援備份片和整個目錄掃描,使得9i的這個命令可能使用的頻率大大降低。

要說10g出來也好幾年了,10g rman的這個新命令應該有不少人已經知道了。我以為10g rman比起9i的最大改進,就是這個命令的增強。不過最近發現還是很多人不知道,甚至把它跟catalog database混為一談。

做為一個Oracle DBA,對於官方文件應該是要相當熟悉才行,至少手頭上應該放一份你產品庫版本一致的文件備份,也不用書到用時方恨少,遇上網路如龜速,自己就要變成熱鍋 上的螞蟻了。就算沒有時間和精力通讀所有文件,至少得清楚文件的結構,知道哪方面的問題去找哪幾個文件,對吧。比如rman的命令語法不清楚了,就要去翻 翻《》,因為rman屬於備份恢復工具,而名字裡帶reference的,基本上都是些命令語法的詳細參考。

而對於一個新版本,瀏覽一遍每篇文章前面的新特性部分,也是快速掌握新版本的一個捷徑,當然,這是建立在已經對老版本有一定認識的基礎上的。很多人 喜歡問學習oracle看哪些書最好,當然有很多經典的書籍可以幫助你理解oracle,但是要熟練應對工作中的需要,官方文件還是必不可少的。

還不知道哪裡可以下載官方文件的,去這裡
還不知道哪裡可以線上看官方文件的,去
還不知道什麼是官方文件的,關掉電腦睡覺去

在9i時代,如果在控制檔案或者catalog資料庫中的備份資訊被覆蓋或者清除,那麼即使所有的備份檔案都在,rman也無法簡單的利用這些檔案 來做恢復了,必須得用些特別的方法才能辦到,比如以前很多牛人寫的使用dbms_backup_restore包從備份片中釋放出資料檔案,然後再使用手 工方式做恢復。

但是實際上,oracle完全可以將恢復時需要的一些資訊儲存在備份檔案的檔案頭中,如果控制檔案或者catalog資料庫中的資訊丟失,再掃描一 遍檔案頭,取出這些資訊就可以了。10g中就是這麼實現的,掃描這些檔案頭的工作就是由這個新的catalog命令來實現的。注意這是10g rman的一個命令,雖然和以前的catalog database的名字長得一樣,可不是同一個東西。

catalog命令可以用來掃描備份片,檔案複製(datafile or controlfile copy),也可以用來掃描歸檔日誌,所以,只要你的備份還在,歸檔還在,即使catalog database崩潰,控制檔案重建,照樣可以用這些備份來做恢復。

掃描備份片

CATALOG BACKUPPIECE '?/oradata/01dmsbj4_1_1.bcp';

掃描歸檔日誌

CATALOG ARCHIVELOG '?/oradata/archive1_30.dbf', '?/oradata/archive1_31.dbf';

掃描資料檔案複製,並且將其做為增量備份的level 0

CATALOG DATAFILECOPY '?/oradata/users01.bak' LEVEL 0;

掃描控制檔案複製

CATALOG CONTROLFILECOPY 'controlfilecopy.ctl'

掃描整個目錄,如果備份片或者歸檔日誌檔案太多,可以放到一個目錄中,一次性掃描就行

CATALOG START WITH '/tmp/arch_logs';

掃描閃回恢復區

CATALOG RECOVERY AREA NOPROMPT;

有了catalog命令,完全可以拋棄catalog database了。只是注意將備份的log和備份檔案一起儲存下來,不然就不知道哪些檔案屬於哪個備份集,恢復的時候就要多浪費些時間啦。

--EOF--

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/79499/viewspace-237873/,如需轉載,請註明出處,否則將追究法律責任。

相關文章