客户的数据库在关闭的时候出现了错误。
环境RAC 10204 FOR HP,用sqlplus关闭其中一个节点,错误如下:
SQL> shutdown immediate
Database closed.
Database dismounted.
ORA-03113: end-of-file on communication channel
SQL> shutdown immediate
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
SQL> startup nomount;
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
看到这个ORA-1041的错误,第一反映就是sqlplus的状态不正常了,这个错误在windows环境下的sqlplus经常出现,很可能重启几次数据库,就出现了这个错误。
而一旦这个错误出现,那么唯一的办法就是退出sqlplus,然后重新启动sqlplus,一般问题也就随之解决。这个问题也是如此,退出sqlplus并重新进入后,启动数据库,问题消失,导致问题的原因还是sqlplus的状态不正常。不过对于hp平台的到是第一次遇到。
不过前面的ORA-3113错误就不太正常了,而sqlplus的状态不正常,多半就是由于出现了ORA-3113错误所致。根据经验,前台出现ORA-3113错误,后台alert中不是ORA-600就是ORA-7445错误,于是查询了一下告警日志,结果发现了ORA-21779错误:
Mon Jun 27 09:01:34 2011
Shutting down instance: further logons disabled
Mon Jun 27 09:01:37 2011
Stopping background process QMNC
Mon Jun 27 09:01:37 2011
Stopping background process CJQ0
Mon Jun 27 09:01:39 2011
Stopping background process MMNL
Mon Jun 27 09:01:40 2011
Stopping background process MMON
Mon Jun 27 09:01:41 2011
Shutting down instance (immediate)
License high water mark = 298
Mon Jun 27 09:01:41 2011
Stopping Job queue slave processes, flags = 7
Mon Jun 27 09:01:41 2011
Job queue slave processes stopped
Mon Jun 27 09:01:43 2011
ALTER DATABASE CLOSE NORMAL
Mon Jun 27 09:01:44 2011
SMON: disabling tx recovery
SMON: disabling cache recovery
Mon Jun 27 09:01:46 2011
Shutting down archive processes
Archiving is disabled
Mon Jun 27 09:01:51 2011
ARCH shutting down
ARC1: Archival stopped
Mon Jun 27 09:01:56 2011
ARCH shutting down
ARC0: Archival stopped
Mon Jun 27 09:01:57 2011
Thread 1 closed at log sequence 25992
Successful close of redo thread 1
Mon Jun 27 09:02:05 2011
Completed: ALTER DATABASE CLOSE NORMAL
Mon Jun 27 09:02:06 2011
ALTER DATABASE DISMOUNT
Completed: ALTER DATABASE DISMOUNT
ARCH: Archival disabled due to shutdown: 1089
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
ARCH: Archival disabled due to shutdown: 1089
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
Mon Jun 27 09:02:07 2011
Errors in file /oracle10g/admin/B1ACDB/bdump/b1acdb1_smon_17049.trc:
ORA-21779: duration not active
Mon Jun 27 09:02:07 2011
SMON: terminating instance due to error 21779
Mon Jun 27 09:02:07 2011
System state dump is made for local instance
System State dumped to trace file /oracle10g/admin/B1ACDB/bdump/b1acdb1_diag_16982.trc
除了出现一个ORA-21779错误以外,并无其他异常之处,检查smon进程的trace文件,同样没有发现异常的地方,文件中关于这个错误只有3行记录:
*** 2011-06-27 09:02:07.422
ORA-21779: duration not active
ksuitm: waiting up to [5] seconds before killing DIAG
在metalink中记录一些和这个错误相关的bug,但是都和当前问题不太一致。
根据错误分析,可能是用户或数据库正在运行的某些功能,由于数据库的关闭而报错,这个问题如果不是频繁出现,属于可以忽略的错误,Oracle官方文档对于这个错误的描述为:
ORA-21779: duration not active
Cause: User is trying to use a duration that has been terminated.
Action: User should avoid performing such operation.