rac_第二个节点重启后无法启动实例:磁盘组dismount问题

来源:互联网 发布:js 解压缩 编辑:程序博客网 时间:2024/05/01 00:20

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明以下出处,否则追究版权法律责任。

深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/41480075

 

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状态引起的单节点实例无法启动问题,解决。

 

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明以下出处,否则追究版权法律责任。

深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/41480075

1 0