oracle 11gR2 srvctl 命令启动数据库不成功处理总结

oracle 11gR2 srvctl 命令启动数据库不成功处理总结

客户所在主机4月15号下午19点钟后做相关维护,需要关闭数据库,维护主机任务完成后,用srvctl start database命令启动数据库不成功,用sqlplus方式数据库能正常打开,虽然数据库能打开,但ora.db.db资源offline,导致db service_name起不来,监听不到,外面应用连接失败。

问题报错如下:

CRS-2640: Required resource ‘ora.paulyitest.dg’ is missing

现把此次分析处理过程总结如下:


1   背景

我在2011-03-24针对db 数据库,创建paulyitest磁盘组来做测试,创建diskgroup方法是用命令方式创建,删除diskgroup方法也是命令方式删除。

2   分析过程

2.1 查看数据库日志

正常,没有与paulyitest 磁盘组相关报错信息。

2.2    查看集群日志

$ORACLE_HOME/log/nfzhdb下的日志

srvctl start database也是报

  CRS-2640: Required resource ‘ora.paulyitest.dg’ is missing

2.3    查看监听日志

正常,没有与paulyitest 磁盘组相关报错信息。

2.4 asmca图形工具检查

paulyitest 磁盘组不存在

2.5    检查asm实例参数

asm_diskgroups 参数

参数下面也没有paulyitest磁盘组

2.6    srvctl 启动数据库方式去掉丢失的磁盘组

srvctl modify database -d DB -a “DGsystem,dgrecover”

srvctl disable diskgroup -g paulyitest

  srvctl remove diskgroup -g paulyitest –f

srvctl start database –d DB

启动成功,查看监听状态可以监听到db服务,外面应用连接成功。

3          分析总结及建议

    删除磁盘组引起监听不到数据库service_name问题第一次遇到,好在及时发现问题和迅速解决问题,没有给生产带来什么影响,这是经验和教训,所以针对这个问题,提出以下两点建议:

1.  oracle 11gR2版本,建议添加与删除磁盘组用asmca图形工具来做。

2.  命令方式,建议参考以下解决方法:

第一:创建磁盘组

节点1创建

create diskgroup dgtest EXTERNAL REDUNDANCY ‘/dev/rhdisk1’ size 200G;

节点2加载

alter diskgroup dgtest mount;

如果节点2不加载,会在节点2日志中报相关这个磁盘组中数据文件不存在的错误信息。

第二:删除磁盘组

节点2 卸载

Alter diskgroup dgtest dismount;

节点1删除

       DROP DISKGROUP dgtest INCLUDING CONTENTS;

再用srvctl 命令做以下操作       

srvctl modify database -d MYDB -a “DATA1_DG”;

  -a 后面输入保留要的DG信息

srvctl disable diskgroup -g dgtest;

      srvctl remove diskgroup -g dgtest –f;

原文地址:https://www.cnblogs.com/yaoyangding/p/15615305.html