重启RAC集群后,oracle数据库实例没有启动
[grid@rac2 ~]$ crs_stat -t|grep OFFLINE
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora.rac.db ora....se.type OFFLINE OFFLINE --这个应该是ONLINE
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac2.gsd application OFFLINE OFFLINE
试着用srvctl命令启动,但是起不来
[grid@rac2 ~]$ srvctl start database -d rac
PRCR-1079 : 无法启动资源 ora.rac.db
CRS-2640: 缺少必需的资源 'ora.DATA.dg'。
查看数据库的配置,发现DATA磁盘组不存在
[grid@rac2 ~]$ srvctl config database -d rac
数据库唯一名称: rac
数据库名: rac
Oracle 主目录: /u01/app/oracle/11.2.0/db
Oracle 用户: oracle
Spfile: +DATA/rac/spfilerac.ora
域:
启动选项: open
停止选项: immediate
数据库角色: PRIMARY
管理策略: AUTOMATIC
服务器池: rac
数据库实例: rac1,rac2
PRCD-1012 : 无法检索数据库 rac 的磁盘组列表。
PRCR-1035 : 无法查找 rac 的 CRS 资源 ora.DATA.dg
PRCA-1000 : ASM 磁盘组 DATA 不存在
PRCR-1001 : 资源 ora.DATA.dg 不存在
日志中同样能看到DATA磁盘组不存在的提示
su - grid
cd $ORACLE_HOME/log/rac1/crsd
vi crsd.log
根据上面的信息,推断是ASM中的DATA磁盘组出了问题
su - grid
$ srvctl status diskgroup -g DATA
PRCA-1000 : ASM 磁盘组 DATA 不存在
PRCR-1001 : 资源 ora.DATA.dg 不存在
进入asmcmd中查看到底是否存在
su - grid
$ asmcmd
ASMCMD>ls
DATA/ --明明存在啊
FRA/
ORC_VOTING_DISK/
而后查询了很多资料,都是删除ASM中的磁盘组才出现的这个问题。
但是我并没有删除DATA磁盘组,最后感觉无望了,试着用在ASMCMD中umount和mount DATA磁盘组,然后使用srvctl命令重启DATA磁盘组
$ asmcmd
ASMCMD> umount data
ASMCMD> mount data
$ srvctl stop diskgroup -g data -n rac1,rac2
$ srvctl start diskgroup -g data -n rac1,rac2
$ srvctl status diskgroup -g DATA
磁盘组 data 正在rac2,rac1 上运行
启动database
$ srvctl start database -d rac
查看resource状态,正常了,问题解决。
[grid@rac2 ~]$ crs_stat -t|grep OFFLINE
ora.gsd ora.gsd.type OFFLINE OFFLINE
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac2.gsd application OFFLINE OFFLINE