ASM还真是让人不是很踏实,今天又碰到一个和ASM有关的问题。
今天RAC的测试数据库在导入数据时长时间没有响应。通过V$SESSION_WAIT检查发现,系统在等待归档:
SQL> SELECT SID, EVENT FROM V$SESSION_WAIT WHERE SID = 132;
SID EVENT
---------- ----------------------------------------------------------------
132 log file switch (archiving needed)
数据库采用ASM,由于是测试环境,没有给ASM太大的空间,而且为了方便,将归档日志也放在ASM中了。
产生问题的原因很明显了,由于归档日志不断产生,导致ASM空间用完,因此新的归档无法产生,导致数据库处于等待状态。
本来认为是个小问题,于是通过RMAN将所有的归档日志删除。奇怪的是,成功的删除所有的归档日志后,这个问题仍然没有解决。
SQL> SELECT SID, EVENT FROM V$SESSION_WAIT WHERE SID = 132;
SID EVENT
---------- ----------------------------------------------------------------
132 log file switch (archiving needed)
再次检查等待会话,发现仍然在等待归档,怀疑Oracle处于两次重试之间的间歇期,于是手工切换当前实例的日志去激活归档操作:
SQL> alter system switch logfile;
结果这个操作也一直处于等待中。
难道是ASM中的空间并没有释放?于是在当前节点(节点1:racnode1)启动dbca,查看ASM的配置,结果居然出现下面的信息:
DBCA could not startup the ASM instance configured on this node. To proceed with ASM diskgroup management you need the ASM instance to be up and running. Do you want to recreate the ASM instance on the node?
奇怪RAC环境一直是在ASM上运行的,怎么会出现这个问题呢?难道ASM实例没有启动:
SQL> host
$ ps -ef|grep ASM
oracle 8205 1 0 12:31:18 ? 0:00 oracle ASM1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 9734 1 0 12:32:17 ? 0:01 oracle ASM1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 11007 1 0 12:33:11 ? 0:00 oracle ASM1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 4157 1 0 Apr 13 ? 0:02 asm_lck0_ ASM1
oracle 4077 1 0 Apr 13 ? 0:02 asm_lmon_ ASM1
oracle 4087 1 0 Apr 13 ? 0:03 asm_dbw0_ ASM1
oracle 4079 1 0 Apr 13 ? 0:08 asm_lmd0_ ASM1
oracle 4124 1 0 Apr 13 ? 0:00 asm_rbal_ ASM1
oracle 11098 1 0 12:33:14 ? 0:00 oracle ASM1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
www.ixdba.net
oracle 20253 1 0 11:59:39 ? 2:50 oracle ASM1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 4578 1 0 Apr 13 ? 0:00 asm_o000_ ASM1
oracle 11131 1 0 12:33:16 ? 0:00 oracle ASM1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 12954 1 0 12:14:52 ? 0:00 oracle ASM1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 11164 1 0 12:33:17 ? 0:00 oracle ASM1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 4073 1 0 Apr 13 ? 0:01 asm_diag_ ASM1
oracle 7028 1 0 12:10:57 ? 0:00 oracle ASM1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 9349 1 0 12:32:02 ? 0:09 oracle ASM1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle 11067 1 0 12:33:13 ? 0:00 oracle ASM1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))