一: 日志组的某个日志成员损坏
1 找出损坏的日志
2 如果是当前日志则进行切换
3 删除损坏的日志
4 添加可用的日志
具体命令如下:
select member from v$logfile;
alter database drop logfile member 'd:\demo\redo01_2.log';
如果有错误提示则:
alter database switch logfile ;
alter database drop logfile member 'd:\demo\redo01_2.log';
最后:
alter database add logfile member 'd:\demo\redo01_3.log' to group 1;
二 :非活动日志组的所有日志全部损坏
1 database open 状态
非活动的日志组成员介质损坏则 oracle 可以正常工作,当切换日志组的时候,日志不能归档,后台进程LGWR会等待:
alter databae clear unarchived logfile group 1;
此时oracle会重建日志组一的所有成员 ,后台进程LGWR 可以继续正常工作。但因为日志组的内容没有被归档,所以导致过去的数据文件备份不能使用 。
2 database close 状态
可以增加新的日志组 删除原有的日志组
alter databae mount ;
alter database add logfile ('d:\backup\redo01.log','d:\backup\redo02.log' ) size 100m;
alter database drop logfile group 1;
alter database open;
三 :当前日志组的所有日志成员全部损坏
1 在关闭状态下当前日志组所有日志成员全部损坏
在关闭状态下 因为数据文件和控制文件都处于完全一致的状态:
recover database until cancel;
alter database open resetlogs;
2 在open状态下当前日志组所有日志成员全部损坏
要使用数据文件的备份和归档日志执行基于取消的不完全恢复:
sql>conn sys/oracle@demo as sysdba
sql>startup mount;
sql>host copy d:\backup\ 所有的数据文件备份 d:\demo
sql>recover database until cancel ;
sql>alter database open resetlogs;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/90618/viewspace-515948/,如需转载,请注明出处,否则将追究法律责任。