單例項環境利用備份恢復RAC資料庫(三)

yangtingkun發表於2010-02-13

在另外一臺伺服器上利用備份恢復RAC資料庫的過程。

這一篇描述資料庫的開啟過程。

單例項環境利用備份恢復RAC資料庫(一):http://yangtingkun.itpub.net/post/468/496756

單例項環境利用備份恢復RAC資料庫(二):http://yangtingkun.itpub.net/post/468/496775

 

 

在上一篇描述了透過RMAN恢復資料庫的過程,由於沒有指定UNTIL語句,而且當前恢復過程不包括REDO日誌檔案資訊,所以RMAN執行的RECOVER過程報錯了。對於當前環境而言,恢復操作只能到這一步了,下面創始開啟資料庫。

sqlplus登陸資料庫:

bash-3.00$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 8 7 13:16:20 2009

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.


連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options

SQL> recover database until cancel using backup controlfile;
ORA-00279:
更改 1112442604608 ( 08/02/2009 00:18:15 生成) 對於執行緒 2 是必需的
ORA-00289:
建議: +DATA/tradedb/2_1466_620234770.dbf
ORA-00280:
更改 1112442604608 (用於執行緒 2) 在序列 #1466


指定日誌: {=suggested | filename | AUTO | CANCEL}
cancel
介質恢復已取消。
SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo1_1_1_1g'
  2  to '+DATA/tradedb/tradedb_redo1_1_1_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo1_1_2_1g'
  2  to '+DATA/tradedb/tradedb_redo1_1_2_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo1_2_1_1g'
  2  to '+DATA/tradedb/tradedb_redo1_2_1_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo1_2_2_1g'
  2  to '+DATA/tradedb/tradedb_redo1_2_2_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo1_3_1_1g'
  2  to '+DATA/tradedb/tradedb_redo1_3_1_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo1_3_2_1g'
  2  to '+DATA/tradedb/tradedb_redo1_3_2_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo1_4_1_1g'
  2  to '+DATA/tradedb/tradedb_redo1_4_1_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo1_4_2_1g'
  2  to '+DATA/tradedb/tradedb_redo1_4_2_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo2_1_1_1g'
  2  to '+DATA/tradedb/tradedb_redo2_1_1_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo2_1_2_1g'
  2  to '+DATA/tradedb/tradedb_redo2_1_2_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo2_2_1_1g'
  2  to '+DATA/tradedb/tradedb_redo2_2_1_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo2_2_2_1g'
  2  to '+DATA/tradedb/tradedb_redo2_2_2_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo2_3_1_1g'
  2  to '+DATA/tradedb/tradedb_redo2_3_1_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo2_3_2_1g'
  2  to '+DATA/tradedb/tradedb_redo2_3_2_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo2_4_1_1g'
  2  to '+DATA/tradedb/tradedb_redo2_4_1_1g';

資料庫已更改。

SQL> alter database rename file '/dev/vx/rdsk/datadg/tradedb_redo2_4_2_1g'
  2  to '+DATA/tradedb/tradedb_redo2_4_2_1g';

資料庫已更改。

SQL> alter database open resetlogs;

資料庫已更改。

為了避免開啟資料庫報錯,首先執行一個until cancel的恢復,確保sqlplusRESETLOGS方式開啟資料庫。

由於REDO日誌檔案的路徑仍然是裸裝置地址,直接開啟資料庫會報錯,因此先執行alter database rename file語句,設定所有的日誌檔案的新路徑,然後以resetlogs方式開啟資料庫。

至此,在一個單例項的環境中恢復了RAC資料庫。RAC環境並不是RAC資料庫恢復的必要條件,對於單例項的資料庫,只要將所有RAC環境相關的初始化引數去掉,一樣可以恢復RAC資料庫的。

 

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

相關文章