log writer异常引起的数据库宕机分析

   前两天一个朋友微信上联系我说,他们那有个库卡死,应用无法连接,OS命令也无法执行,

后面等他们主机重启后,要来了alert log和systemstate dump文件来追踪一下看看是什么原因。


因为这是一套标准版的oracle 12c,之前遇到过性能问题,需要调优所以安装了statspack;

这个问题处理比较简单 直接添加数据文件即可,理论上只是一个表空间满应该不会导致系统hang死。

ps:科普一下oracle数据库的license 分为标准版和企业版,价格差别是很大的,有些企业为了节省license会使用标准版本(日、台企,欧美企业为主)

标准版的数据库是没有Tuning Pack和Diagnostics Pack,企业版自带了Tuning Pack和Diagnostics Pack,但是这两个包其实需要额外的license的;

也就是说标准版里大家熟悉的调优工具AWR,ADDM,ASH等都是没有的,只能使用免费的工具statspack ;

而且免费版的statspack需要DBA 自己创建和配置。



后面看alertlog 发现 13:17-15:46没有任何信息,估计这段时间系统是完全卡死了,直到15:46主机重启后的数据库启动信息



在启动日志中看到部分recovery 信息,可以知道当时数据库是直接宕掉了,被异常关闭的。



数据库recovery 之后正常open,随后alertlog 出现如下报错,看样子是redolog 有问题无法写入


在MOS上查到类似的报错信息,MOS上给出的原因是redo log的读写权限问题

朋友给的反馈是最近的变动有两点:1.最近磁盘空间做了扩容;2.增加了网络的IP管控设备

因为无法登陆到oracle 主机,所以无法确定是不是权限问题引起的IO error(但是我估计不是,以为扩容后已经正常运行了很久)

Instance is down ORA-00345 ORA-00312 ORA-27072 Linux-x86_64 Error: 30: Read-only file system (Doc ID 1985774.1)