rac第二个节点重启后无法启动实例:磁盘组dismount问题
实验案例:
实验环境:CentOS 6.4、Oracle
11.2.0.1
现象重演:
1. 重启第二节点服务器
2. 手工启动第二节点实例,报错
[root@node2 ~]# su - oracle
[oracle@node2 ~]$ sqlplus '/as sysdba'
SQL*Plus: Release
11.2.0.1.0 Production on Sun Nov 23 15:11:04 2014
Copyright (c) 1982,
2009, Oracle. All rights reserved.
Connected to an idle
instance.
启动数据库报错如下:
SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DG1/xcky/spfilexcky.ora'
ORA-17503: ksfdopn:2 Failed to open file +DG1/xcky/spfilexcky.ora
ORA-15056: additional error message
ORA-17503: ksfdopn:DGOpenFile05 Failed to open file +DG1/xcky/spfilexcky.ora
ORA-17503: ksfdopn:2 Failed to open file +DG1/xcky/spfilexcky.ora
ORA-15001: diskgroup "DG1" does not exist or is not mounted
ORA-06512: at line 4
根据上面的错误,锁定到ORA-15001错误,这是代表有磁盘组没有mount,于是按照这个思路进行查看。
3. grid用户下,查看磁盘组状态
[root@node2 ~]# su - grid
[grid@node2 ~]$ sqlplus '/as sysdba'
SQL*Plus: Release 11.2.0.1.0
Production on Sun Nov 23 15:27:04 2014
Copyright (c) 1982,
2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
SQL> select
name,state from v$asm_diskgroup;
NAME
STATE
------------------------------ -----------
CRS
MOUNTED
DG1
DISMOUNTED
RCY1
DISMOUNTED
可以发现,DG1、RCY1磁盘组处于dismounted状态,于是手工启动到mount状态,如下操作:
4. 启动磁盘组到mount状态
需要注意,对磁盘组操作时,需要使用sysasm用户,该用户有对磁盘组操作的权限,如下:
SQL> conn /as sysasm
Connected.
SQL> select
name,state from v$asm_diskgroup;
NAME
STATE
------------------------------ -----------
CRS
MOUNTED
DG1
DISMOUNTED
RCY1
DISMOUNTED
SQL> alter diskgroup
DG1 mount;
Diskgroup altered.
SQL> alter diskgroup
RCY1 mount;
Diskgroup altered.
SQL> select
name,state from v$asm_diskgroup;
NAME
STATE
------------------------------ -----------
CRS
MOUNTED
DG1
MOUNTED
RCY1
MOUNTED
至此,完成了将全部磁盘组启动到mount状态。
5. 再次启动节点2的实例
[root@node2 ~]# su - oracle
[oracle@node2 ~]$ sqlplus '/as sysdba'
SQL*Plus: Release
11.2.0.1.0 Production on Sun Nov 23 15:31:11 2014
Copyright (c) 1982,
2009, Oracle. All rights reserved.
Connected to an idle
instance.
SQL> startup
ORACLE instance started.
Total System Global
Area 730714112 bytes
Fixed
Size
2216944 bytes
Variable
Size
557845520 bytes
Database Buffers
167772160 bytes
Redo
Buffers
2879488 bytes
Database mounted.
Database opened.
SQL> select status,instance_name from gv$instance;
--查询整个集群环境,可以看到两个节点都已经启动了
STATUS INSTANCE_NAME
------------ ----------------
OPEN xcky2
OPEN xcky1
至此,由于磁盘组处于dismount状态引起的单节点实例无法启动问题,解决。