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方法也是命令方式删除。
[size=15pt]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 –fsrvctl 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