今天接到电话,说有一个数据库的启不来了,得知道这个数据库为11gR2 RAC,AIX平台,上面路了3个库。
看了一个是因为/oracle目录满了,100多G居然也用满了,并且是2个实例都满,删日志的时候发现一个叫wbxt 的库trace 目录下的文件特别多,以至于du -sg等了好久都没有反回结果,当用 rm -rf *.trm 的时候提示我什么 arguments too long,后来用了一个 find . -namr "*.tr*" -exec rm -f {} \; 语句,也是每秒10M左右的速度,后来干脆将trace 文件重命名用删除。
清一部分日志后,就可始启动crs,crsctl start crs 无法与crs 通信。
ps -ef | grep d.bin 没有crsd.bin 的进程。
crsctl status res -t -init 中ora.crsd 为offline
crsctl start res ora.crsd -init 启动ora.crsd
crs_start -all 启动了crs
关于以上无法启动crs 的问题可以参考:Top 5 Grid Infrastructure Startup Issues [ID 1368382.1]
无意思中我看到新建立的trace 文件中又生成了好多trc, trm 文件,查看alert 日志:
$ cd /oracle/db/diag/rdbms/w*/w*/trace
$ cat aler*
Thu Apr 25 16:31:37 2013
Errors in file /oracle/db/diag/rdbms/wbxt/wbxt2/trace/wbxt2_smon_6685520.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-00376: file 2 cannot be read at this time
ORA-01110: data file 2: '+DATA/wbxt/datafile/sysaux.2049.780342185'
Thu Apr 25 16:36:38 2013
Errors in file /oracle/db/diag/rdbms/wbxt/wbxt2/trace/wbxt2_smon_6685520.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-00376: file 2 cannot be read at this time
ORA-01110: data file 2: '+DATA/wbxt/datafile/sysaux.2049.780342185'
Thu Apr 25 16:41:40 2013
Errors in file /oracle/db/diag/rdbms/wbxt/wbxt2/trace/wbxt2_smon_6685520.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-00376: file 2 cannot be read at this time
ORA-01110: data file 2: '+DATA/wbxt/datafile/sysaux.2049.780342185'
Thu Apr 25 16:46:41 2013
Errors in file /oracle/db/diag/rdbms/wbxt/wbxt2/trace/wbxt2_smon_6685520.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-00376: file 2 cannot be read at this time
ORA-01110: data file 2: '+DATA/wbxt/datafile/sysaux.2049.780342185'
Thu Apr 25 16:51:42 2013
SQL> select file_name, file_id, status, online_status from dba_data_files
FILE_NAME FILE_ID STATUS ONLINE_STATUS
--------------------------------------------- ---------- ------------------ --------------
+DATA/wbxt/datafile/users.3864.780342185 4 AVAILABLE ONLINE
+DATA/wbxt/datafile/undotbs1.2081.780342185 3 AVAILABLE ONLINE
+DATA/wbxt/datafile/sysaux.2049.780342185 2 AVAILABLE RECOVER
+DATA/wbxt/datafile/system.924.780342185 1 AVAILABLE SYSTEM
+DATA/wbxt/datafile/undotbs2.932.780342463 5 AVAILABLE ONLINE
+DATA/wbxt/datafile/wbgy 6 AVAILABLE ONLINE
sysaux文件为recover 状态,尝试回复,发现需要2012/12/23号的归档文件。
SQL> recover datafile 2
ORA-00279: change 41411931 generated at 12/23/2012 08:08:38 needed for thread 2
ORA-00289: suggestion : +DATA
ORA-00280: change 41411931 for thread 2 is in sequence #139
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
RMAN中的的备份我没有去看,可以回复的可能性不大,于是与那个人沟通,他们也知道这件事,准备重建数据库呢,我问他们是不是存储出过什么问题,得知磁盘坏了一个。
正是因为上面的错误,导致数据库在每隔一段时间就生成一个trc 文件,文件虽小,但数据巨大。
sysaux表空间数据为recover 状态,数据库能正常启停,这是一件很有意思的事件,reover 状态好久也没有得到及时的处理导致了这样一个结果。