分类:
2010-12-06 17:25:50
XXXXoracle启动故障分析(2010.11.19)
接到故障时间:
故障现象:
XXXXoracle数据库无法启动
故障原因:
该故障是由于系统重启后,系统中的PV设备号发生变化引起的。PV设备号发生变化导致VG中的LV丢失,oracle数据库启动时无法找到该LV,因此无法正常启动。以下是oracle启动时的故障日志:
11月 29 22:03:18 - Node "nmdsdb1": Activating volume group vg07 with exclusive option.
vgchange: Warning: Couldn't attach to the volume group physical volume "/dev/dsk/c16t6d0":
Invalid argument
Activated volume group in Exclusive Mode.
Nov 29 22:04:50 nmdsdb1 cmcld: (nmdsdb2) Started package odspkg on node nmdsdb2.
Nov 29 22:04:52 nmdsdb1 cmcld: Service PKG*15873 terminated due to an exit(0).
Nov 29 22:04:52 nmdsdb1 cmcld: Started package oraclepkg on node nmdsdb1.
故障定位方法:
用ioscan –fnC disk 对系统中的现有磁盘进行了扫描,并且把扫描结果与以前保留的日志相比较,结果发现在nmdsdb1上原磁盘设备/dev/dsk/c16t6d0的设备名变成了/dev/dsk/c16t6d3 ;在nmdsdb2上原原磁盘设备/dev/dsk/c16t6d0的设备名变成了/dev/dsk/c16t6d2。因该设备是卷组vg07中的PV,所以该设备的丢失导致oracle无法找到逻辑卷/dev/vg01/lvol18,以下是oracle的报错日志:
Activated volume group in Exclusive Mode.
Volume group "vg07" has been successfully changed.
11月 29 22:03:22 - Node "nmdsdb1": Checking filesystems:
/dev/vg01/lvol18
故障解决思路:
1. 因为两台机器上的磁盘设备号发生了变化,设备号是由系统内核识别硬件时自动分配的,无法认为更改,所以考虑更新VG信息。
2. 将两台机器上的VG信息重新导出并导入。重导入时需要重新指定变更过的磁盘设备号。
3. 导入成功后重启数据库,确认导入PV中的数据是否正确恢复。
故障解决步骤:
1. 停止数据库
#cmhaltpkg odspkg
#cmhaltpkg orclpkg
2.停止各个VG
# vgchange -a n vg01
# vgchange -a n vg02
# vgchange -a n vg03
# vgchange -a n vg04
# vgchange -a n vg05
# vgchange -a n vg06
# vgchange -a n vg07
3.将VG07的配置信息导出
#vgexport -p -v -s -m /tmp/vg07.20101130.map /dev/vg07
#vgexport /dev/vg07
#mkdir /dev/vg07; mknod /dev/vg07/group c 64 0x01000000
4. 将VG07的配置信息重新导入并指定更新设备号
#vgimport -v -s -m /tmp/vg07.20101130.map /dev/vg07 /dev/dsk/c16t5d1 /dev/dsk/c16t5d2 /dev/dsk/c16t5d3 /dev/dsk/c16t5d4 /dev/dsk/c16t5d5 /dev/dsk/c16t6d3
4. 测试各个VG是否能脱离双机、被系统激活,然后恢复在加入双机
#vgchange -c n /dev/vg07
#vgchange -a y /dev/vg07
# vgchange -a n /dev/vg07
# vgchange -c y /dev/vg07
# vgchange -c n /dev/vg06
#vgchange -a y /dev/vg06
# vgchange -a n /dev/vg06
# vgchange -c y /dev/vg06
#vgchange -c n /dev/vg05
# vgchange -a y /dev/vg05
# vgchange -a n /dev/vg05
# vgchange -c y /dev/vg05
# vgchange -c n /dev/vg04
#vgchange -a y /dev/vg04
#vgchange -a n /dev/vg04
#vgchange -c y /dev/vg04
# vgchange -c n /dev/vg03
# vgchange -a y /dev/vg03
#vgchange -a n /dev/vg03
#vgchange -c y /dev/vg03
#vgchange -c n /dev/vg02
#vgchange -a y /dev/vg02
#vgchange -a n /dev/vg02
#vgchange -c y /dev/vg02
# vgchange -c n /dev/vg01
# vgchange -a y /dev/vg01
# vgchange -a n /dev/vg01
#vgchange -c y /dev/vg01
5.在nmdsdb2机器上:
#vgexport -v -p -s -m /tmp/vg07.20101129.map /dev/vg07
#vgexport vg07
#mkdir /dev/vg07; mknod /dev/vg07/group c 64 0x01000000
6. 将VG07的配置信息重新导入并指定更新设备号
#vgimport -v -s -m /tmp/vg07.20101129.map /dev/vg07 /dev/dsk/c16t5d0 /dev/dsk/c16t5d2 /dev/dsk/c16t5d4 /dev/dsk/c16t5d5 /dev/dsk/c16t6d2
7.重复第4步的操作进行测试
8.启动双机和oracle进行测试
#cmrunctl –v
#cmrunpkg -n nmdsdb1 oraclepkg
9.确认数据库启动正常,数据无丢失
避免类似故障的建议:
为了避免重启系统后,SecurePath中记录的EVA 5000的设备号发生改变,将EVA 5000上的LUN映射给主机后,务必在主机上执行以下步骤:
# ioscan -fCdisk
# spmgr update
Run kmadmin -L swspData
config -M swspData -u
for changes to persist across reboots.
# kmadmin -L swspData
kmadmin: Module swspData loaded, ID = 2
# config -M swspData -u
Generating module: swspData...
Requesting loadable module update...
Specified module(s) below is(are) activated successfully.
swspData
chinaunix网友2010-12-07 15:49:34
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com