日志文件在非归档模式下丢失怎么办?
模拟删除:
rm /u01/oracle/oradata/orcl/redo* -rf
第一步:
全备数据文件,控制文件,spfile or pfile
(因为如果恢复不过来,可以还原最初数据库的状态让别人来恢复)
第二步:
想办法使用resetlogs让数据库open
仅仅只是丢了日志文件 ,数据文件和控制文件并没有丢失。
只需要resetlogs.
但resetlogs只能在不完全恢复的时候用。
此时要用
recover database using backup controlfile ;
只敲回车。执行完毕 。
然后再去执行alter database open resetlogs ;
这时候会报错需要一致性验证。
第三步:
如果需要验证数据一致性则使用隐藏参数 _allow_resetlogs_corruption=true
此时可以用下面命令来取消控制 文件的一致性验证。
alter system set "_allow_resetlogs_corruption"=true scope=spfile ;
然后startup force mount.
第四步:
open过后, 把 _allow_resetlogs_corruption参数取消。
show parameter _allow
alter system reset "_allow_resetlogs_corruption" scope=spfile sid='*' ;
shutdown immediate -- 修改之后需要重新启动数据库。
隐藏参数如果没有关闭,会产生ORA-600错误,使用了之后 一定要关掉。
这时候日志文件就自动生成了。可以通过下面的命令查询恢复后的日志文件 。
SQL> ho ls /u01/oracle/oradata/orcl/redo*
模拟删除:
rm /u01/oracle/oradata/orcl/redo* -rf
第一步:
全备数据文件,控制文件,spfile or pfile
(因为如果恢复不过来,可以还原最初数据库的状态让别人来恢复)
第二步:
想办法使用resetlogs让数据库open
仅仅只是丢了日志文件 ,数据文件和控制文件并没有丢失。
只需要resetlogs.
但resetlogs只能在不完全恢复的时候用。
此时要用
recover database using backup controlfile ;
只敲回车。执行完毕 。
然后再去执行alter database open resetlogs ;
这时候会报错需要一致性验证。
第三步:
如果需要验证数据一致性则使用隐藏参数 _allow_resetlogs_corruption=true
此时可以用下面命令来取消控制 文件的一致性验证。
alter system set "_allow_resetlogs_corruption"=true scope=spfile ;
然后startup force mount.
第四步:
open过后, 把 _allow_resetlogs_corruption参数取消。
show parameter _allow
alter system reset "_allow_resetlogs_corruption" scope=spfile sid='*' ;
shutdown immediate -- 修改之后需要重新启动数据库。
隐藏参数如果没有关闭,会产生ORA-600错误,使用了之后 一定要关掉。
这时候日志文件就自动生成了。可以通过下面的命令查询恢复后的日志文件 。
SQL> ho ls /u01/oracle/oradata/orcl/redo*
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29196873/viewspace-1120560/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29196873/viewspace-1120560/