今天公司的开发库出现了连不上Oracle的情况,大家的工作就会开展不顺,毕竟很多人都需要测试的嘛,然后就找到了我,看了下情况
sqlplus / as sysdba
登录时,出现了maxnum process 超出最大个数,那句英语已经不能完全记得清了,于是去看alert告警日志,发现了如下情况:
ORA-00020: No more process state objects available
ORA-20 errors will not be written to the alert log for
the next minute. Please look at trace files to see all
以上错误是已经查获的,还有:
Corrupt block relative dba: 0x00811aa7 (file 2,block 72359)
这个是默认的sysaux表空间的数据文件,有坏块,有坏块后,告警日志中又出现了以下情况:
Reread (file 2,block 72359) found same corrupt data
Process m000 submission Failed with error = 20
Process m001 submission Failed with error = 20
Process m002 submission Failed with error = 20
Process m001 submission Failed with error = 20
Process m000 submission Failed with error = 20
Process m003 submission Failed with error = 20
Process m004 submission Failed with error = 20
Process m005 submission Failed with error = 20
Process m006 submission Failed with error = 20
Process m007 submission Failed with error = 20
类似这些信息,一段时间后会重复,本来1000的连接数,就是这么慢慢被耗完的,因为我碰到这个问题时查看默认的processes值为150.后来改的1000,很快就被用完了。
这里需要注意的是,当最大连接数超限的时候,因为sqlplus / as sysdba是登不进的,我的办法是先把一些应用程序关掉,先登进去再说。其他我没有非常好的办法,除非就是强制关进程或者停服务。
继续查看告警日志: