免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3892 | 回复: 10
打印 上一主题 下一主题

oracle数据库无故死掉,请教原因! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-11-14 10:25 |只看该作者 |倒序浏览
首先发现监听器被关闭了,可以重新开启。但是无法解析原有的SID。
于是:
[oracle@biodb1 ~]$ sqlplus /nolog

SQL*Plus: Release 9.2.0.4.0 - Production on Tue Nov 14 08:59:24 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn / as sysdba      
Connected.
SQL> startup
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> shutdown
但是却无法关闭实例,使用shutdown命令不会有结果,使用top命令发现:
[oracle@biodb1 oracle]$ top
top - 09:16:32 up 33 days, 1 min,  3 users,  load average: 1.29, 1.18, 1.20
Tasks: 130 total,   2 running, 128 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1% us,  0.2% sy, 24.9% ni, 74.7% id,  0.2% wa,  0.0% hi,  0.0% si
Mem:   4149312k total,  4139784k used,     9528k free,    16704k buffers
Swap:        0k total,        0k used,        0k free,  3988856k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
19223 oracle    39  19  1784  624  464 R 99.8  0.0 867:29.31 john   
不明白john是什么。。。
还请高人指点迷津!

论坛徽章:
0
2 [报告]
发表于 2006-11-14 11:04 |只看该作者
1. sqlplus / as sysdba
2. shutdown immediate
3. ps -ef|grep ora
    kill 掉除了oracle 后台进程的其他所有用户进程,不要kill掉oracle后台进程,如smon,pmon,dbwr,lgwr,archxxx等等
    可以先kill掉这个john 进程,是不是有人在数据库上运行测试程序?
    可以通过who命令或者os日志来看谁的机器登录服务器

[ 本帖最后由 numenhuang 于 2006-11-14 11:05 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2006-11-14 11:07 |只看该作者
shutdown之后报错,以前也出现过这种问题
SQL> shutdown immediate
ORA-24324: service handle not initialized
ORA-24323: value not allowed
ORA-01090: shutdown in progress - connection is not permitted

论坛徽章:
0
4 [报告]
发表于 2006-11-14 11:10 |只看该作者
原帖由 xlwang_0903 于 2006-11-14 11:07 发表
shutdown之后报错,以前也出现过这种问题
SQL> shutdown immediate
ORA-24324: service handle not initialized
ORA-24323: value not allowed
ORA-01090: shutdown in progress - connection is not perm ...


ps -ef|grep ora 结果?

论坛徽章:
0
5 [报告]
发表于 2006-11-14 11:24 |只看该作者
结果如下
[oracle@biodb1 ~]$ ps -ef | grep ora
oracle   19223     1 99 Nov13 ?        15:31:40 ./john x
oracle    4738     1  0 08:59 pts/3    00:00:00 /usr/local/oracle/product/9.2.0/bin/tnslsnr LISTENER -inherit
root     25471  3887  0 10:03 pts/3    00:00:00 su - oracle
oracle   25472 25471  0 10:03 pts/3    00:00:00 -bash
oracle   31385 25472  0 10:21 pts/3    00:00:00 ps -ef
oracle   31386 25472  0 10:21 pts/3    00:00:00 grep ora
john是什么啊?很奇怪的一个东西

[ 本帖最后由 xlwang_0903 于 2006-11-14 11:27 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2006-11-14 11:26 |只看该作者
原帖由 xlwang_0903 于 2006-11-14 11:24 发表
结果如下
[oracle@biodb1 ~]$ ps -ef | grep ora
oracle   19223     1 99 Nov13 ?        15:31:40 ./john x
oracle    4738     1  0 08:59 pts/3    00:00:00 /usr/local/oracle/product/9.2.0/bin/tnslsnr ...


kill -9 19223
kill -9 4738

看一下这个john是什么程序

论坛徽章:
0
7 [报告]
发表于 2006-11-14 11:30 |只看该作者
这两个进程都Kill掉了,然后:
[oracle@biodb1 ~]$ sqlplus /nolog

SQL*Plus: Release 9.2.0.4.0 - Production on Tue Nov 14 10:27:02 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> shutdown
ORA-24324: service handle not initialized
ORA-24323: value not allowed
ORA-01090: shutdown in progress - connection is not permitted
仍然不能startup和shutdown,而且我也找不到john是什么程序。。。
ps -ef | grep ora也没有刚才的进程了

论坛徽章:
0
8 [报告]
发表于 2006-11-14 11:41 |只看该作者
原帖由 xlwang_0903 于 2006-11-14 11:30 发表
这两个进程都Kill掉了,然后:
[oracle@biodb1 ~]$ sqlplus /nolog

SQL*Plus: Release 9.2.0.4.0 - Production on Tue Nov 14 10:27:02 2006

Copyright (c) 1982, 2002, Oracle Corporation.  All rights  ...


echo $ORACLE_SID 是否设置正确?

sqlplus / as sysdba
shutdown abort
startup

搜索一下john程序

论坛徽章:
0
9 [报告]
发表于 2006-11-14 12:21 |只看该作者
谢谢楼上的指点。
我用了shutdown abort就可关闭instance了,然后再启动就没什么问题。
能告诉我什么原因么?谢谢了

论坛徽章:
0
10 [报告]
发表于 2006-11-14 12:27 |只看该作者
原帖由 xlwang_0903 于 2006-11-14 12:21 发表
谢谢楼上的指点。
我用了shutdown abort就可关闭instance了,然后再启动就没什么问题。
能告诉我什么原因么?谢谢了


首先是john程序耗尽所有的cpu资源。

shutdown在有用户连接oracle的时候是不能正常结束的,除非用户session结束。
如果有用户session,建议还是通过shutdown immediate来关闭数据库。
shutdown abort是一种强制的,非正常关闭模式,打个比喻,就跟kill -9和kill命令的区别一样,一般不建议使用该命令来关闭数据库,除非在某些非正常情况下。使用shutdown abort关闭数据库后,应该马上使用startup来启动数据库,如果能正常启动,可以再使用shutdown immediate来正常关闭数据库,然后可以做其他操作。

你应该追查一下,john是什么程序,谁运行它。也许你们服务器已经不安全了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP