今天刚上班没几分钟就接到告警电话数据库的一个节点连不上了,登入一看果然不行了,整个数据库都hang住了,从alertlog上完全看不到信息而且在主机上也登入不了,实在没办法只好kill掉了数据库的smon进程强行关闭了,然后启动数据库,发现下面报错:
SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jul 11 09:03:08 2011
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to an idle instance.
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORA-03113: end-of-file on communication channel
看到这个错误怀疑是ASM磁盘的问题,接下来就去检查ASM磁盘的状态
SQL*Plus: Release 10.2.0.4.0 - Production on Mon Jul 11 09:03:42 2011
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> select name,state from v$asm_diskgroup;
NAME
------------------------------------------------------------
STATE
----------------------
DATA
DISMOUNTED
DATA02
MOUNTED
DATA03
MOUNTED
果然有个磁盘没mount上,接下来mount磁盘,结果报错
SQL> alter diskgroup data mount;
alter diskgroup data mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15063: ASM discovered an insufficient number of disks for diskgroup "DATA"
于是检查磁盘,发现磁盘的权限不知道怎么被修改了,原先是root用户的,被修改成oracle用户了。。。修改回来后oracle可以启动了,但是查history、查last都差不到磁盘为什么被修改。。郁闷。。。。。