在上次安装Oracle10g 10.2.0.5后发现在节点2主机重启HACMP后datavg的vg permission会被制成passive-only。
详细处理过程请参看我之前的博客http://blog.itpub.net/29047826/viewspace-1265183/
主机工程师给出的解决方案是重做datavg,不能通过程序或是脚本来修复该问题。看来之前创建的ASM和database要牺牲了,为了减少重建的时间,脑海里快速的计划着需要备份的步骤:
导出ocr
导出votedisk
导出asm的pfile
导出数据库的spfile
备份rman备份数据库
不幸的是我们没来得及做完以上所有的步骤,就不允许再操作了。在有限的时间内只完成了ocr的导出,votedisk的导出,其它重要文件都没有备份。
1, 导出ocr到本地/home目录下
# /u01/app/oracle/product/10.2.0/crs_1/bin/ocrconfig -export /home/ocr.dmp
2,导出votedisk到/home目录下。votedisk的冗余策略是3,只对其中的一个裸设备进行dd就可以了。
# ./crsctl query css votedisk
0. 0 /dev/rora_raw8_1gb
1. 0 /dev/rora_raw9_1gb
2. 0 /dev/rora_raw10_1gb
located 3 votedisk(s).
# dd if=/dev/rora_raw8_1gb of=/home/rora_raw8_1gb.dd
下面开始进入重建环节:
3,确认hacmp状态,datavg已经是concurrent
# lspv
hdisk0 00f7639d21b0aa23 rootvg active
hdisk1 00f7639d2c96d3d8 rootvg active
hdisk2 00f7639d2d5c93ec datavg concurrent
hdisk3 00f7639d2d5c94b3 datavg concurrent
hdisk4 00f7639d2d5c9590 datavg concurrent
hdisk5 00f7639d2d5c9657 datavg concurrent
hdisk6 00f763952d23f51e hbvg
hdisk7 00f7639d2d6b75a3 backupvg active
4,确认所有的裸设备
# ls -l /dev/ora*
brw-rw---- 1 root system 41, 10 Sep 12 11:47 ora_raw10_1gb
brw-rw---- 1 root system 41, 1 Sep 11 21:44 ora_raw1_100gb
brw-rw---- 1 root system 41, 2 Sep 11 21:44 ora_raw2_100gb
brw-rw---- 1 root system 41, 3 Sep 11 21:44 ora_raw3_100gb
brw-rw---- 1 root system 41, 4 Sep 11 21:44 ora_raw4_100gb
brw-rw---- 1 root system 41, 5 Sep 11 21:44 ora_raw5_100gb
brw-rw---- 1 root system 41, 6 Sep 12 11:58 ora_raw6_1gb
brw-rw---- 1 root system 41, 7 Sep 12 11:46 ora_raw7_1gb
brw-rw---- 1 root system 41, 8 Sep 12 11:47 ora_raw8_1gb
brw-rw---- 1 root system 41, 9 Sep 12 11:47 ora_raw9_1gb
ASM磁盘组—DATA :ora_raw1_100gb、ora_raw2_100gb、ora_raw3_100gb、ora_raw4_100gb
ASM磁盘组—ARCH :ora_raw5_100gb
用于存储OCR :ora_raw6_1gb、ora_raw7_1gb
用于存储VOTE DISK :ora_raw8_1gb、ora_raw9_1gb、ora_raw10_1gb
5,导入ocr
ocr.dmp为ocr的备份
# /u01/app/oracle/product/10.2.0/crs_1/bin/ocrconfig -import /home/ocr.dmp
6,导入votedisk
root用户下执行,rora_raw8_1gb.dd为VOTE DISK的备份
dd if=/home/rora_raw8_1gb.dd of=/dev/ora_raw8_1gb bs=1M count=1024
dd if=/home/rora_raw8_1gb.dd of=/dev/ora_raw9_1gb bs=1M count=1024
dd if=/home/rora_raw8_1gb.dd of=/dev/ora_raw10_1gb bs=1M count=1024
7,在两个节点分别启动集群
root用户下执行
/u01/app/oracle/product/10.2.0/crs_1/bin/crsctl start crd
查看启动状态
/u01/app/oracle/product/10.2.0/crs_1/bin/crsctl check crd
查看集群资源状态
/u01/app/oracle/product/10.2.0/crs_1/bin/crs_stat -t
可喜的是数据库资源和连个实例的资源offline,其它的资源全部online,包括asm。
asmcmd> lsdg 会发现+DATA完好保留,+ARCH磁盘组被删除了。
现在需要创建一个pfile尝试启动数据库,如果数据库可以正常启动损失就降到最低了。
8,通过pfile创建spfile至指定共享磁盘组
8.1 利用pfile启动实例
由于之前没有备份pfile,从其它实验环境中复制过来一个类似的pfile文件,经过修改临时启动数据库
*.db_block_size=8192
*.cluster_database_instances=2
*.open_cursors=1000
*.db_domain=''
*.db_name='max'
*.background_dump_dest='/u01/app/oracle/admin/max/bdump'
*.core_dump_dest='/u01/app/oracle/admin/max/cdump'
*.user_dump_dest='/u01/app/oracle/admin/max/udump'
*.db_create_file_dest='+DATA'
*.job_queue_processes=10
*.compatible=10.2.0.5.0
*.processes=2500
*.sessions=2755
*.sga_target=4244635648
*.log_archive_format='%t_%s_%r.dbf'
*.audit_file_dest='/u01/app/oracle/admin/maximo/adump'
*.remote_login_passwordfile='exclusive'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=maximoXDB)'
*.pga_aggregate_target=2210739712
*.undo_management=AUTO
*.control_files=('+DATA/maximo/controlfile/current.272.857574347')
*.cluster_database=true
max1.instance_number=1
max2.instance_number=2
max1.thread=1
max2.thread=2
max2.undo_tablespace='UNDOTBS2'
max1.undo_tablespace=‘UNDOTBS1’
sqlplus / as sysdba
startup pfile='/home/mypfile.ora'
启动数据库成功,+DATA没有损坏
8.2 创建spfile到+DATA目录下
create spfile='+DATA' from pfile='/home/mypfile.ora'
8.3 编辑$ORACLE_HOME/dbs下的init.ora,指定其路径至共享磁盘里的spfile文件
$ cat initmax.ora
SPFILE='+DATA/max/parameterfile/spfile.263.858088849'
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/90618/viewspace-1269946/
,如需转载,请注明出处,否则将追究法律责任。