1、检查当前的磁盘的情况
--检查并确定需要替换的crsdg
State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 4096 1048576 102398 102308 0 102308 0 N ARCHDG/
MOUNTED NORMAL N 512 4096 1048576 15342 14416 5114 4651 0 Y CRSDG/
MOUNTED EXTERN N 512 4096 1048576 204797 19872 0 19872 0 N DATADG/
MOUNTED EXTERN N 512 4096 1048576 102398 102272 0 102272 0 N RECODG/
MOUNTED EXTERN N 512 4096 1048576 30718 26555 0 26555 0 N REDO1/
MOUNTED EXTERN N 512 4096 1048576 30718 22416 0 22416 0 N REDODG1/
MOUNTED EXTERN N 512 4096 1048576 30718 30623 0 30623 0 N REDODG2/
在这里可以看到crsdg,这个dg就是需要我们替换其中的盘的
[oracle@ecc-prddb1 bin]$ ./ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 3
Total space (kbytes) : 262120
Used space (kbytes) : 2912
Available space (kbytes) : 259208
ID : 151943686
Device/File Name : +CRSDG
Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check bypassed due to non-privileged user
通过这两步可以确定crsdg就是我需要替换的集群dg
--确定具体dg具体的盘
SQL> select name,group_number from v$asm_diskgroup;
NAME GROUP_NUMBER
------------------------------ ------------
ARCHDG 1
CRSDG 2
DATADG 3
RECODG 4
REDO1 5
REDODG1 6
REDODG2 7
PATH
--------------------------------------------------------------------------------
/dev/asm-disk1
/dev/asm-disk3
/dev/asm-disk2
--确定对应的物理盘
此步可以通过udev的配置文件获取
[oracle@ecc-prddb1 rules.d]$ more 99-oracle-asmdevices.rules
KERNEL=="sdb1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="36000c29883f322a11c7b78d1cb537fb9",NAME="asm-disk1",OWNER="oracle",GROUP="oinstall",MODE="0660"
KERNEL=="sdc1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="36000c290f7420f49693713ee4a8d8965",NAME="asm-disk2",OWNER="oracle",GROUP="oinstall",MODE="0660"
KERNEL=="sdd1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="36000c298291180106cb2a79963a50dc4",NAME="asm-disk3",OWNER="oracle",GROUP="oinstall",MODE="0660"
操作系统中,可以看盘的情况
[root@ecc-prddb1 ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd5237e4e
Device Boot Start End Blocks Id System
/dev/sdb1 1 652 5237158+ 83 Linux
[root@ecc-prddb1 ~]# fdisk -l /dev/sdc
Disk /dev/sdc: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4b723f55
Device Boot Start End Blocks Id System
/dev/sdc1 1 652 5237158+ 83 Linux
[root@ecc-prddb1 ~]# fdisk -l /dev/sdd
Disk /dev/sdd: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x123cff91
Device Boot Start End Blocks Id System
/dev/sdd1 1 652 5237158+ 83 Linux
每个盘的大小为5g,那么我们相应的也划分3个5g的盘进行替换
2、划分存储磁盘
--由于是虚拟机,所划分的盘的大小、个数与原来的相同
--属性配置与其它盘完全一致
3、配置asm盘操作
--扫描磁盘并分区
echo "- - -" > /sys/class/scsi_host/host0/scan
说明,可能有多个host+数字的情况,我们一次扫描不到,要多次,如下:
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
echo "- - -" > /sys/class/scsi_host/host3/scan
然后使用
[root@ecc-prddb1 ~]# fdisk -l
这样,如果盘未分区,就会在后面显示出来,我们找到对应的sd*,对其进行分区
[root@ecc-prddb1 ~]# fdisk /dev/sd* 根据扫描的结果,查看*所代表的字母
--获取磁盘id
[root@ecc-prddb1 ~]# scsi_id -g -u -d /dev/sd* *代表新加入的盘
记下显示出来的字符串
--编辑udev文件
vi 99-oracle-asmdevices.rules
KERNEL=="sdb1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="36000c29883f322a11c7b78d1cb537fb9",NAME="asm-disk1",OWNER="oracle",GROUP="oinstall",MODE="0660"
注意要修改的地方:
KERNEL=="sdb1":此处要修改为对应的磁盘及分区,如扫描出来的是m,并且只做了一个分区,则国sdm1
RESULT=="36000c29883f322a11c7b78d1cb537fb9":上面扫描出来的磁盘id
NAME="asm-disk1":修改为我们命名,如我们上一个是11,为保持一致,我们修改为asm-disk12
修改保存后,重启udev即可
4、创建新的crsdg
要以采用图形界面asmca,或者使用命令也可以
create diskgroup ocrdg normal redundancy disk '/dev/asm-disk12','/dev/asm-disk13','/dev/asm-disk14' attribute 'compatible.asm'='11.2';
创建成功以后,可以在v$asm_diskgroup中看到该dg的名称和大小
5、替换原来的crsdg
--备份参数文件
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +CRSDG/ecc-prddb-scan/asmparam
eterfile/registry.253.86406398
1
SQL> create pfile='/tmp/spfilebak0716.ora' from spfile;
File created.
这一步一定不少,否则会跟后续的工作带来很大的麻烦。在11g中,spfile是放在crsdg中的
--创建
[root@ecc-prddb1 bin]# ./ocrconfig -add +OCRDG 刚才建的dg上面
创建成功后,可以通过以方式查看
[root@ecc-prddb1 ~]# ./ocrcheck -config
Oracle Cluster Registry configuration is :
Device/File Name : +CRSDG
Device/File Name : +OCRDG
[root@ecc-prddb1 ~]# more /etc/oracle/ocr.loc
#Device/file getting replaced by device +OCRNEW
ocrconfig_loc=+CRSDG
ocrmirrorconfig_loc=+OCRDG
local_only=false
注意使用root用户执行的
--替换crsdg
检查当前crsdg磁盘情况
[oracle@ecc-prddb1 bin]$ ./crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 27d6c944f29b4fe1bfcb1c77b21a104b (/dev/asm-disk2) [CRSDG]
2. ONLINE 626f61e4d8484f01bf53cc7bcbf12883 (/dev/asm-disk1) [CRSDG]
3. ONLINE 595747f50d5f4f4abff80ba505a0db12 (/dev/asm-disk3) [CRSDG]
Located 3 voting disk(s).
备份当前crs信息
ocrconfig -export /tmp/ocr_20150716.dmp --手动备份
ocrconfig -showbackup --自动备份
[oracle@ecc-prddb1 bin]$ ./ocrconfig -showbackup
ecc-prddb1 2015/07/16 07:39:26 /oracle/GRID/112/cdata/ecc-prddb-scan/backup00.ocr
ecc-prddb1 2015/07/16 03:36:58 /oracle/GRID/112/cdata/ecc-prddb-scan/backup01.ocr
ecc-prddb1 2015/07/15 23:33:07 /oracle/GRID/112/cdata/ecc-prddb-scan/backup02.ocr
ecc-prddb1 2015/07/15 23:33:07 /oracle/GRID/112/cdata/ecc-prddb-scan/day.ocr
ecc-prddb1 2015/07/08 16:14:26 /oracle/GRID/112/cdata/ecc-prddb-scan/week.ocr
执行替换
[oracle@ecc-prddb1 bin]$ crsctl replace votedisk +CRSDG
这条命令执行后,有一系列提示,最后会出现以下的提示
CRS-4266: Voting file(s) successfully replaced
完成以后,可以通过
./ocrcheck -config
./crsctl query css votedisk
more /etc/oracle/ocr.loc
进行再次验证。本次替换主要完成的是镜像转换,可以看到ocrdg为主要的了
创建asm参数文件
SQL> create spfile = '+OCRDG' FROM pfile='/tmp/spfilebak0716.ora';
6、删除旧的crsdg
[root@ecc-prddb1 bin]$ ./ocrconfig -delete +CRSDG
最后使用如下命令检查
./ocrcheck && ./crsctl query css votedisk
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29371470/viewspace-1742921/,如需转载,请注明出处,否则将追究法律责任。