今天在做recover database后使用alter database open resetlogs打开数据库遇到错误
描述一下之前的操作步骤
1,还原数据文件
run{
set newname for datafile 1 to ‘+DATA’;
..
restore database;
switch datafile all;
}
2,恢复数据库
recover database
修改redo日志的路径到ASM
alter database rename file '/sgpmdb/oradata/u01/cmsdb/log13a.log' to '+REDO';
alter database rename file '/sgpmdb/oradata/u01/cmsdb/log13b.log' to '+REDO';
alter database rename file '/sgpmdb/oradata/u01/cmsdb/log14.log' to '+REDO';
..
alter database rename file '/sgpmdb/oradata/u01/cmsdb/log24b.log' to '+REDO’;
3,打开数据库库报错
alter database open resetlogs;
ORA-00392: log 15 of thread 1 is being cleared, operation not allowed
分析:log 15和log 19分别是生产库节点一和节点二的当前日志组,在灾备端resetlogs命令后要重新创建redo,但是15、19被记录为当前状态current不允许被清除。其实解决方法很简单,就是采取手工清除。
解决方案:
1,手工清除current组日志
alter database clear logfile group 15;
alter database clear logfile group 19;
2,打开数据库成功
alter database open resetlogs;
下面是扫尾工作,针对此次项目
3,禁用thread 2(源端为RAC,目标为单实例)
alter database disable thread 2;
4,删除thread 2的日志组
alter database drop logfile group 19;
..
alter database drop logfile group 24;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29047826/viewspace-1312375/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29047826/viewspace-1312375/