一次用RMAN做資料庫恢復遇到的問題

empo007發表於2007-06-29
4月份的時候,一個客戶的資料庫出現嚴重的效能問題,到現場後,決定將備份恢復到測試機上並讓測試機作為生產庫給外界提供服務,然後再比較測試庫和生產庫上SQL的執行計劃,從而找出生產庫的問題。事實證明,這個思路是非常正確的。然而當時做RMAN恢復的時候遇到過幾個問題,這裡記錄一下:[@more@]

1、遇到的第一個問題是要在作業系統上設定環境變數NLS_LANG和NLS_DATE_FORMAT。我先按照OCP教材上的方式設定了NLS_LANG=AMERICAN,結果登陸RMAN時總是提示錯誤:設定了錯誤的值。後來在同事的幫助下順利解決了相關問題,方法就是設定NLS_LANG=AMERICAN_AMERICA.AL32UTF8。

另外NLS_DATE_FORMAT也可以在RMAN登陸後設定,比如下面的例子:

RMAN> run {
2> sql 'alter session set nls_date_format="yyyymmdd hh24:mi:ss"';
3> set until time = '20070619 10:00:00';
4> restore database;
5> recover database;
6> }

或者:

RMAN> run {
2> set until time = "to_date('20070619 10:00:00','yyyymmdd hh24:mi:ss')";
3> restore database;
4> recover database;
5> }

2、由於當時RMAN使用了recovery catalog,一方面為了恢復失敗可以重新恢復,另一方面為了恢復完後還原recovery catalog到原來的狀態,對recovery catalog的內容進行了EXP。後來的事實告訴我這一步操作真的是英明。

3、每次alter database open resetlogs會自動生成新的控制檔案,如果你想將recovery catalog 恢復後重新做資料庫的恢復,那麼你必須恢復控制檔案,這樣的話,執行restore control file from autobackup恢復的控制檔案就是新生成的控制檔案,那顯然不是你想要的控制檔案。通常的做法是將原來的控制檔案先做備份,此時把備份複製過來再恢復控制檔案就可以了。

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

相關文章