Oracle ASM表决磁盘恢复实验
环境:
Oracle版本:11.2.0.4
OS: RHEL6.5
查看表决磁盘
[grid@rac1 ~]$ cat /etc/oracle/ocr.loc
ocrconfig_loc=+CRS
local_only=FALSE
[root@rac1 bin]# ./crsctl query css votedisk
STATE File Universal Id File Name Disk group
ONLINE 396718497fab4fb7bf8194eb573df1c3 (/dev/ASM-CRS) [CRS]
Located 1 voting disk(s).
查看OCR备份信息
[root@rac1 bin]# ./ocrconfig -manualbackup
注意:CRS磁盘组中包括OCR文件以及ASM参数文件
1、模拟表决磁盘损坏
dd if=/dev/zero of=/dev/ASM-CRS
mkfs.ext4 /dev/ASM-CRS
此时发现lsdg已经未能发现CRS磁盘组了
启动clusterware 发现无法启动了
[root@rac1 bin]# ./crsctl start has
CRS-4123: Oracle High Availability Services has been started.
[root@rac1 bin]# ./crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4530: Communications failure contacting Cluster Synchronization Services daemon
CRS-4534: Cannot communicate with Event Manager
2、停止CRS
[root@rac1 bin]# ./crsctl stop cluster -all ----如果CLUSTER仍运行,则停止。需要停止所有的节点
[root@rac1 bin]# ./crsctl stop crs -f ----如果CRS仍旧运行(ps -ef|grep crs),则停止。
3、启动到独占模式且不启动ora.crsd
[root@rac1 bin]# ./crsctl start crs -excl -nocrs
此时该节点ASM实例已经启动,但发现未能发现CRS磁盘组,可查看日志
tail -f /u01/app/11.2.0/grid/log/rac1/alertrac1.log
tail -f /u01/app/grid/diag/asm/+asm/+ASM1/trace/alert_+ASM1.log
4、创建磁盘组
[grid@rac1 ~]$ sqlplus / as sysasm
SQL> select * from v$asm_diskgroup; ----查看现有磁盘组的属性
SQL> create diskgroup CRS external redundancy disk '/dev/ASM-CRS' ATTRIBUTE 'compatible.asm'='11.2.0.0.0','au_size'='1M';
5、恢复OCR
[root@rac1 bin]# ./ocrconfig -showbackup
[root@rac1 bin]# ./ocrconfig -restore /u01/app/11.2.0/grid/cdata/rac-cluster/backup00.ocr
注意OCR文件,系统会每4小时自动备份,默认备份路径为$GRID_HOME/cdata…
6、恢复表决磁盘
[root@rac1 bin]# ./crsctl replace votedisk +CRS —此只要一个节点执行就可以了,其他节点重启CRS即可
7、重启CRS
[root@rac1 bin]# ./crsctl stop crs
[root@rac1 bin]# ./crsctl start crs
[root@rac1 bin]# ./crsctl start cluster -all
8、ASM参数文件还原
如未涉及到ASM参数文件,则可省略
[grid@rac1 dbs]$ cd $ORACLE_HOME/dbs --如未备份参数文件,则新增一份参数文件
[grid@rac1 dbs]$ vim init+ASM1.ora
+ASM1.asm_diskgroups='DATA','ARCH'#Manual Mount
+ASM2.asm_diskgroups='ARCH','DATA'#Manual Mount
*.asm_diskstring='/dev/ASM*'
*.asm_power_limit=1
*.diagnostic_dest='/u01/app/grid'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='EXCLUSIVE'
[grid@rac1 ~]$ sqlplus / as sysasm
create spfile='+CRS' from pfile; 然后重启ASM实例
其他节点会自动发现该参数文件