数据库版本11.2.0.4.0, 操作系统:Redhat Linux 6.6
异机恢复:RAC到单实例
1. 在目标机上创建参数文件, 本例为:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/inithbdb.ora
*.audit_trail='db'
*.cluster_database=true
*.compatible='11.2.0.4.0'
*.control_files='/u01/app/oradata/hbdb/control01.ctl', '/u01/app/flash_recovery_area/hbdb/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='hbdb'
*.diagnostic_dest='/u01/app'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=hbdbXDB)'
*.enable_goldengate_replication=TRUE
*.open_cursors=1000
*.open_links=50
*.open_links_per_instance=50
*.pga_aggregate_target=2147483648
*.processes=2000
*.remote_login_passwordfile='exclusive'
*.sga_max_size=8589934592
*.sga_target=8589934592
*.undo_tablespace='UNDOTBS1'
*._no_recovery_through_resetlogs=true
这些目录:/u01/app/oradata/hbdb/, /u01/app/flash_recovery_area/hbdb需要预先创建
注意_no_recovery_through_resetlogs=true这个参数,
2. 恢复控制文件。
将数据库启动至nomount状态
restore controlfile from '控制文件备份集';
3. 注册备份集
RMAN下:catalog start with '备份集所在目录';
4. 还原数据库
run
{
set newname for database to '/home/oradata/hbdb/%b';
restore database;
switch datafile all;
recover database;
}
注意这个switch datafile all; 很重要
5. 最后在alter database open resetlogs的时候碰到了错误:
由于rac环境的redolog在asm中,需要重建controlfile重定向redolog文件路径.
SQL> alter database backup controlfile to trace;
SQL> shutdown immediate
修改一下控制文件中日志文件路径, 接着重建控制文件
6. 完成之后执行alter database open resetlogs;
但是我遇到看了错误:ORA-38856: cannot mark instance UNNAMED_INSTANCE_2 (redo thread 2) as enabled
查了一下,在pfile中加入了如下:
*._no_recovery_through_resetlogs=true
接下来open resetlogs成功
参考:
http://blog.itpub.net/22990797/viewspace-749970/
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8520577/viewspace-2136135/
,如需转载,请注明出处,否则将追究法律责任。