在另外一台服务器上利用备份恢复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 中
指定日志: {
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的恢复,确保sqlplus以RESETLOGS方式打开数据库。
由于REDO日志文件的路径仍然是裸设备地址,直接打开数据库会报错,因此先执行alter database rename file语句,设置所有的日志文件的新路径,然后以resetlogs方式打开数据库。
至此,在一个单实例的环境中恢复了RAC数据库。RAC环境并不是RAC数据库恢复的必要条件,对于单实例的数据库,只要将所有RAC环境相关的初始化参数去掉,一样可以恢复RAC数据库的。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-627253/ ,如需转载,请注明出处,否则将追究法律责任。