公司服务器意外断电,数据库崩溃,由于没有做备份和归档,尝试利用在线的redo试着recover下,发现运气差了点,需要采取特殊手段了,其中有很多的ora-00600错误,终于利用一系列办法搞定了,由于用了特出手段数据库已经不一致,需要expdp重建数据库导入,不过一会儿问题出现了,虽然是个小问题但是这里写下给朋友们一点提醒,出现600错误不可怕,根据trace和储备知识一步一步来,这个过程你的经验会有一部分提高,再是试着自己去根据oracle给你的提示来解决问题
下面的就是数据库恢复后出现的一个小插曲,sys用户连接后会自动的断开,新增的session连接时也TNS-12547: TNS:lost contact,但是已经连接的好的session并不受影响,刚开始想到了是process的问题,但是由于以前有过经验是一个tomcat连接文件的用户名和密码错误导致用户不停的被锁住,怀疑是配置文件的问题,最后查看listener.ora文件
Listener.ora文件
19-SEP-2007 13:55:34 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))(SERVICE_NAME=test.oracle.com)) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.10.10.3)(PORT=36030)) * establish * test.oracle.com * 12518
TNS-12518: TNS:listener could not hand off client connection
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
Linux Error: 32: Broken pipe
但是通过警告日志发觉了有用的信息
*** SERVICE NAME:(SYS$BACKGROUND) 2012-05-11 14:09:01.436
*** SESSION ID:(161.1) 2012-05-11 14:09:01.436
*** 2012-05-11 14:09:01.436
Process J000 is dead (pid=17400, state=3):
*** 2012-05-11 14:31:13.105
Process J000 is dead (pid=17968, state=3):
*** 2012-05-11 14:31:43.110
Process J000 is dead (pid=17972, state=3):
Fri May 11 14:31:13 2012
Process J000 died, see its trace file
Fri May 11 14:31:13 2012
kkjcre1p: unable to
Fri May 11 14:31:13 2012
Errors in file /db/oracle10g/admin/benguo/bdump/benguo_cjq0_8745.trc:
查看trace文件,其实如果外语好点的这个process j000 is dead这个发觉是job死掉了,下面的unable to spawn jobq slave process就能发觉可能还是process的问题,还是查看一下trace文件吧,信息跟alert差不多,此时修改process参数然后重启数据库,一切达到正常。
[oracle@server130 log]$ less /db/oracle10g/admin/benguo/bdump/benguo_cjq0_8745.trc
/db/oracle10g/admin/benguo/bdump/benguo_cjq0_8745.trc
Oracle Database 10g Release 10.2.0.1.0 - 64bit Production
ORACLE_HOME = /db/oracle10g/product/10.2.0/db
System name: Linux
Node name: server130
Release: 2.6.18-194.el5
Version: #1 SMP Fri Apr 2 14:58:14 EDT 2010
Machine: x86_64
Instance name: benguo
Redo thread mounted by this instance: 1
Oracle process number: 11
Unix process pid: 8745, image: oracle@server130 (CJQ0)
*** SERVICE NAME:(SYS$BACKGROUND) 2012-05-11 14:09:01.436
*** SESSION ID:(161.1) 2012-05-11 14:09:01.436
*** 2012-05-11 14:09:01.436
Process J000 is dead (pid=17400, state=3):
*** 2012-05-11 14:31:13.105
Process J000 is dead (pid=17968, state=3):
*** 2012-05-11 14:31:43.110
Process J000 is dead (pid=17972, state=3):
(END)
正如上述没有写明的异常恢复的以系列的600处理,有时候要学着自己去把学习的oracle用到实际的工作中,这个可能没有什么所谓很好的办法,唯一的办法就是再知道的多一点,再理解的深刻点,有个很好的实际操作机遇吧,还是那句鼓励自己的话“也许有一天会和大牛牛们在同一地平线!”
[@more@]来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25362835/viewspace-1058198/ ,如需转载,请注明出处,否则将追究法律责任。