Oracle current状态的redo日志被异常删除,系统如何恢复启动

Oracle current状态的redo日志被异常删除,系统如何恢复启动

问题现象

场景一:

后台:

在数据库启动的时候(startup),有如下报错:ora-03113

客户端:

只能登录sys用户,其他用户无法登录

场景二:

后台:

在数据库启动的时候(startup mount),正常启动。

继续执行alter database open,也是报ora-03113,数据库实例直接dang掉。

问题定位

1、查看alert日志(SQL>show parameters backgroup;查看alert.log位置)

2、根据alert.log中的报错,定位具体错误是在哪个trc文件中,

3、然后再去对应trc文件去看具体错误。

4、针对这个问题,看到的错误原因是:redo4文件找不到了。

5、查看redo日志的状态,如下

Oracle current状态的redo日志被异常删除,系统如何恢复启动_第1张图片

所以问题最终定位为:current状态的redo日志被异常删

解决方案

结论先行

重建控制文件,参见我的另一篇博客:https://blog.csdn.net/shanshan3003/article/details/117068952

这里要注意一个地方:重建控制文件的时候,要照抄生成的控制文件的内容,不要因为没有redo4就把这一条给删除掉;不然启动数据库会报其他的错误,仍然不可用。

分析尝试过程

1、由于redo日志在哪里,都是在控制文件中写好的,查看控制文件的位置:

SQL>show parameters control_files;

然而控制文件是二进制文件,不可编辑,因此只能选择重建控制文件。

2、尝试切换redo日志,将current状态切换到其他日志上去,使用命令

alter system switch logfile

然而提示数据库未打开,不能切换;因此切换数据文件只能在数据库open的情况下切换日志。

3、尝试删除redo4这个日志

alter database drop logfile group 4

系统提示当前这个日志组正在被***进程使用,无法删除。

你可能感兴趣的:(Oracle,oracle)