在运行sun-cluster的数据库服务器上遇到oracle故障的解决办法
2012-02-14 14:24
363 查看
数据库服务器和主应用服务器做了双机,实现是Suncluster,,这种情况下,故障排查异常困难。
由于Oracle服务被Cluster软件监控,服务出问题时,Cluster软件会尝试将共享盘阵切到另一个节点上,
在该节点上启动Oracle服务,而由于Oracle库文件故障,导致Oracle无法启动成功,当尝试启动超时后,
Cluster又会尝试在原节点上启动Oracle服务,从而导致共享盘阵和服务来两台机器上来回切换。
由于oracle服务和相关磁盘文件始终处于运动状态,导致查看数据库日志和数据库排查故障异常困难。
因此首先要停掉cluster停掉,以便排查数据库故障。
而停SunCluster双机软件非常麻烦,必须连系统一起停掉后,再在ok状态下用boot -x重启系统才可以。
所以我决定从资源组中将oracle服务这个资源暂停监控,以便cluster不再因为oracle服务出问题进行切换。
1.查看资源组内的资源名称
scstatus -g
2. 停止oracle 资源切换
停资源:
scswitch -n -j oracle-lsnr-rs
scswitch -n -j oracle-server-rs
命令格式:scswitch {-e | -n} -j resource[,...]
现在数据库是否启动失败不会再导致双机切换。可以排查数据库故障了
2.数据库故障排查
启动数据库时,报以下错误:
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: '/oracle/oradata/dbnms/system01.dbf'
尝试恢复数据库,执行以下命令:
SQL> recover database
完成介质恢复。
SQL> alter database open;
数据库已更改。
数据库安全打开。
原因分析:通常system01.dbf文件损坏,而数据库又处于非归档模式时,数据库基本上就无法挽救了。本次由于数据库redolog分了四个组,所以system01.dbf的变更信息还保存在redo.log中没有被覆盖到。所以在recover的时候,从redo04.log中找到了transaction数据,成功的恢复。
所以要提高数据库的可靠性,数据库一定要起归档模式。实在不能起归档模式的情况下,也可增大redo.log文件的组数量,避免redo.log的信息被很快覆盖。
附alert_dbnms.log的后台日志
由于Oracle服务被Cluster软件监控,服务出问题时,Cluster软件会尝试将共享盘阵切到另一个节点上,
在该节点上启动Oracle服务,而由于Oracle库文件故障,导致Oracle无法启动成功,当尝试启动超时后,
Cluster又会尝试在原节点上启动Oracle服务,从而导致共享盘阵和服务来两台机器上来回切换。
由于oracle服务和相关磁盘文件始终处于运动状态,导致查看数据库日志和数据库排查故障异常困难。
因此首先要停掉cluster停掉,以便排查数据库故障。
而停SunCluster双机软件非常麻烦,必须连系统一起停掉后,再在ok状态下用boot -x重启系统才可以。
所以我决定从资源组中将oracle服务这个资源暂停监控,以便cluster不再因为oracle服务出问题进行切换。
1.查看资源组内的资源名称
scstatus -g
2. 停止oracle 资源切换
停资源:
scswitch -n -j oracle-lsnr-rs
scswitch -n -j oracle-server-rs
命令格式:scswitch {-e | -n} -j resource[,...]
现在数据库是否启动失败不会再导致双机切换。可以排查数据库故障了
2.数据库故障排查
启动数据库时,报以下错误:
SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: '/oracle/oradata/dbnms/system01.dbf'
尝试恢复数据库,执行以下命令:
SQL> recover database
完成介质恢复。
SQL> alter database open;
数据库已更改。
数据库安全打开。
原因分析:通常system01.dbf文件损坏,而数据库又处于非归档模式时,数据库基本上就无法挽救了。本次由于数据库redolog分了四个组,所以system01.dbf的变更信息还保存在redo.log中没有被覆盖到。所以在recover的时候,从redo04.log中找到了transaction数据,成功的恢复。
所以要提高数据库的可靠性,数据库一定要起归档模式。实在不能起归档模式的情况下,也可增大redo.log文件的组数量,避免redo.log的信息被很快覆盖。
附alert_dbnms.log的后台日志
Tue Feb 14 13:54:03 2012 ALTER DATABASE RECOVER database Tue Feb 14 13:54:03 2012 Media Recovery Start parallel recovery started with 16 processes Tue Feb 14 13:54:12 2012 Recovery of Online Redo Log: Thread 1 Group 4 Seq 325853 Reading mem 0 Mem# 0 errs 0: /oracle/oradata/dbnms/redo04.log Tue Feb 14 13:54:45 2012 Media Recovery Complete (dbnms) Tue Feb 14 13:54:47 2012 Completed: ALTER DATABASE RECOVER database Tue Feb 14 13:54:59 2012 alter database open Tue Feb 14 13:55:00 2012 Beginning crash recovery of 1 threads parallel recovery started with 16 processes Tue Feb 14 13:55:00 2012 Started redo scan Tue Feb 14 13:55:02 2012 Completed redo scan 274807 redo blocks read, 0 data blocks need recovery Tue Feb 14 13:55:02 2012 Started redo application at Thread 1: logseq 325853, block 183394 Tue Feb 14 13:55:02 2012 Recovery of Online Redo Log: Thread 1 Group 4 Seq 325853 Reading mem 0 Mem# 0 errs 0: /oracle/oradata/dbnms/redo04.log Tue Feb 14 13:55:04 2012 Completed redo application Tue Feb 14 13:55:04 2012 Completed crash recovery at Thread 1: logseq 325853, block 458201, scn 16922087765 0 data blocks read, 0 data blocks written, 274807 redo blocks read Tue Feb 14 13:55:05 2012 Thread 1 advanced to log sequence 325854 Thread 1 opened at log sequence 325854
相关文章推荐
- cx_Oracle在sublime text里运行遇到 ImportError错误解决办法
- EasyDSS RTMP流媒体服务器运行遇到getpwnam("xxxxx")错误的解决办法
- 运行数据库遇到错误oracle not aviliable解决过程
- 用oralce连接.net客户端出现问题:“数据连接不成功,请检查该数据库是否已启动尝试加载oracle客户端时引发BadImageFormatException.如果在安装32位Oracle客户端组件的情况下以64位模式运行,”的解决办法
- oracle 11g数据库安装最强教程及遇到的问题解决办法
- IIS7web服务器调试ASP.net程序遇到的一些故障的解决办法
- Docker: oracle_xe_10g 数据库 运行sqlplus 时Message file sp1<lang>.msb not found 错误解决办法_20160513_七侠镇莫尛貝
- DNS 服务器遇到很多运行时间事件问题解决办法。
- oracle ----系统服务 --- 文件体系结构 ----网络配置 -----利用企业管理器登录数据库 -----利用SQL Plus登录数据库 -------运行时故障分析与解决
- Docker: oracle_xe_10g 数据库 运行sqlplus 时Message file sp1<lang>.msb not found 错误解决办法_20160513_七侠镇莫尛貝
- pycaffe 中遇到的一些不能运行的问题的解决办法
- iis运行asp.net页面提示“服务器应用程序不可用”的解决办法
- Oracle产品特定先决条件检查(遇到网络配置检查未执行或者警告)的解决办法
- Windows Server 2008 IIS7 运行 ASP 提示 “500 服务器内部错误”的解决办法
- oracle数据文件被误删除后无法启动数据库的解决办法
- “ora-28547 连接服务器失败,可能是oracle net 管理错误”故障解决总结
- 记一次服务器故障及解决办法
- 服务器面板及附属设备指示灯含义及故障解决办法问题汇总
- ORACLE自动断开数据库连接解决办法
- 64bit服务器上运行32bit DLL文件报错的解决办法