实战案例如下:
1 添加disk,删除disk
#################迁移votedisk###################################
[grid@ydrac02 ~]$ crsctl replace votedisk +dgocr
Successful addition of voting disk 82458f4f58e74f20bf5134a13a737493.
Successful addition of voting disk 64652783db334f1dbf9a069af0e0d800.
Successful addition of voting disk 06e92ea0cec54f03bf1100868b84ba2a.
Successful deletion of voting disk 3d0e572d49a04ffebf1b1dcbae5e8546.
Successful deletion of voting disk c9e44161aeac4f41bf0bc4fa47db49f3.
Successful deletion of voting disk 5ba3b86e86784fffbf2d348071eac3b9.
Successfully replaced voting disk group with +dgocr.
CRS-4266: Voting file(s) successfully replaced
[grid@ydrac02 ~]$ crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 82458f4f58e74f20bf5134a13a737493 (/dev/oracleasm/disks/OCR1) [DGOCR]
2. ONLINE 64652783db334f1dbf9a069af0e0d800 (/dev/oracleasm/disks/OCR2) [DGOCR]
3. ONLINE 06e92ea0cec54f03bf1100868b84ba2a (/dev/oracleasm/disks/OCR3) [DGOCR]
Located 3 voting disk(s).
[grid@ydrac02 ~]$
################迁移ocr文件#######################################
[root@ydrac01 bin]# ./ocrconfig -add +dgocr
[root@ydrac01 bin]# ./ocrconfig -delete +ocr
[root@ydrac01 bin]# cat /etc/oracle/ocr.loc
#Device/file +OCR/ydrac/OCRFILE/registry.255.1020080481 getting replaced by device +DGOCR/ydrac/OCRFILE/registry.255.1028650863
ocrconfig_loc=+DGOCR/ydrac/OCRFILE/registry.255.1028650863
######################迁移arch#####################################################3
SQL> alter system set log_archive_dest_1='localtion=+DGARCH' scope=spfile sid='*';
srvctl stop database -d monidb
srvctl start database -d monidb
SQL> /
PATH NAME STATE
------------------------------ ---------------------------------------- --------
/dev/oracleasm/disks/FRA03 NORMAL
/dev/oracleasm/disks/FRA02 NORMAL
/dev/oracleasm/disks/DATA04 REDO_0000 NORMAL
/dev/oracleasm/disks/DATA03 DATA02_0001 NORMAL
/dev/oracleasm/disks/DATA02 DATA02_0000 NORMAL
/dev/oracleasm/disks/DATA01 DATA01_0000 NORMAL
/dev/oracleasm/disks/OCR03 OCR_0000 NORMAL
/dev/oracleasm/disks/OCR02 OCR_0001 NORMAL
/dev/oracleasm/disks/FRA01 MGMT_0000 NORMAL
/dev/oracleasm/disks/OCR01 OCR_0002 NORMAL
PATH NAME STATE
------------------------------ ---------------------------------------- --------
/dev/oracleasm/disks/DATA9 DGDATA2_0001 NORMAL
/dev/oracleasm/disks/DATA8 DGDATA2_0000 NORMAL
/dev/oracleasm/disks/DATA7 DGDATA1_0001 NORMAL
/dev/oracleasm/disks/DATA6 DGDATA1_0000 NORMAL
/dev/oracleasm/disks/ARCH DGARCH_0000 NORMAL
/dev/oracleasm/disks/OCR3 DGOCR_0002 NORMAL
/dev/oracleasm/disks/OCR2 DGOCR_0001 NORMAL
/dev/oracleasm/disks/OCR1 DGOCR_0000 NORMAL
18 rows selected.
set lines 120
col name for a10
col path for a50
select a.name,a.state,b.path from v$asm_diskgroup a,v$asm_disk b where a.GROUP_NUMBER=b.group_number;
NAME STATE PATH
---------- ----------- --------------------------------------------------
DATA01 MOUNTED /dev/oracleasm/disks/DATA01
DATA02 MOUNTED /dev/oracleasm/disks/DATA03
DATA02 MOUNTED /dev/oracleasm/disks/DATA02
MGMT MOUNTED /dev/oracleasm/disks/FRA01
OCR MOUNTED /dev/oracleasm/disks/OCR03
OCR MOUNTED /dev/oracleasm/disks/OCR02
OCR MOUNTED /dev/oracleasm/disks/OCR01
REDO MOUNTED /dev/oracleasm/disks/DATA04
NAME STATE PATH
---------- ----------- --------------------------------------------------
DGARCH MOUNTED /dev/oracleasm/disks/ARCH
DGOCR MOUNTED /dev/oracleasm/disks/OCR2
DGOCR MOUNTED /dev/oracleasm/disks/OCR3
DGOCR MOUNTED /dev/oracleasm/disks/OCR1
DGDATA1 MOUNTED /dev/oracleasm/disks/DATA7
DGDATA1 MOUNTED /dev/oracleasm/disks/DATA6
DGDATA2 MOUNTED /dev/oracleasm/disks/DATA9
DGDATA2 MOUNTED /dev/oracleasm/disks/DATA8
16 rows selected.
SQL>
[root@ydrac02 ~]# oracleasm querydisk /dev/sdk2
Device "/dev/sdk2" is marked an ASM disk with the label "DATA01"
[root@ydrac02 ~]# oracleasm querydisk /dev/sdl1
Device "/dev/sdl1" is marked an ASM disk with the label "DATA02"
[root@ydrac02 ~]# oracleasm querydisk /dev/sdl2
Device "/dev/sdl2" is marked an ASM disk with the label "DATA03"
[root@ydrac02 ~]# oracleasm querydisk /dev/sdl3
Device "/dev/sdl3" is marked an ASM disk with the label "DATA04"
[root@ydrac02 ~]# oracleasm querydisk /dev/sdj1
Device "/dev/sdj1" is marked an ASM disk with the label "OCR03"
[root@ydrac02 ~]# oracleasm querydisk /dev/sdi1
Device "/dev/sdi1" is marked an ASM disk with the label "OCR02"
[root@ydrac02 ~]# oracleasm querydisk /dev/sdh1
Device "/dev/sdh1" is marked an ASM disk with the label "OCR01"
[root@ydrac02 ~]# oracleasm querydisk /dev/sdh2
Device "/dev/sdh2" is marked an ASM disk with the label "FRA01" redo磁盘组。
[root@ydrac02 ~]#
[root@ydrac02 ~]# oracleasm querydisk /dev/sdb1
Device "/dev/sdb1" is marked an ASM disk with the label "OCR1"
[root@ydrac02 ~]# oracleasm querydisk /dev/sdb2
Device "/dev/sdb2" is marked an ASM disk with the label "OCR2"
[root@ydrac02 ~]# oracleasm querydisk /dev/sdb3
Device "/dev/sdb3" is marked an ASM disk with the label "OCR3"
[root@ydrac02 ~]#
[root@ydrac02 ~]# oracleasm querydisk /dev/sdc1
Device "/dev/sdc1" is marked an ASM disk with the label "ARCH"
[root@ydrac01 ~]# oracleasm querydisk /dev/sdf1
Device "/dev/sdf1" is marked an ASM disk with the label "DATA6"
[root@ydrac01 ~]# oracleasm querydisk /dev/sdf2
Device "/dev/sdf2" is marked an ASM disk with the label "DATA7"
[root@ydrac01 ~]# oracleasm querydisk /dev/sdg1
Device "/dev/sdg1" is marked an ASM disk with the label "DATA8"
[root@ydrac01 ~]# oracleasm querydisk /dev/sdg2
Device "/dev/sdg2" is marked an ASM disk with the label "DATA9"
1 ocr和votedisk已经迁移完成。
1 迁移ASM密码文件。
ASMCMD> cp +OCR/ASM/PASSWORD/pwdasm.256.1020080481 +dgocr/ASM/PASSWORD/pwdasm
copying +OCR/ASM/PASSWORD/pwdasm.256.1020080481 -> +dgocr/ASM/PASSWORD/pwdasm
[grid@ydrac01 ~]$ srvctl modify asm -pwfile '+dgocr/ASM/PASSWORD/pwdasm'
[grid@ydrac01 ~]$ srvctl config asm
ASM home: <CRS home>
Password file: +dgocr/ASM/PASSWORD/pwdasm
Backup of Password file: +MGMT/orapwASM_backup
ASM listener:
ASM instance count: 3
Cluster ASM listener: ASMNET1LSNR_ASM
[grid@ydrac01 ~]$
2 参数文件已经迁移。
3 删除ocr磁盘组。
节点1
SQL> alter diskgroup ocr dismount;
Diskgroup altered.
节点2
SQL> drop diskgroup ocr including contents;
Diskgroup dropped.
删除ASM磁盘
[root@ydrac02 ~]# oracleasm deletedisk ocr01
Clearing disk header: done
Dropping disk: done
[root@ydrac02 ~]# oracleasm deletedisk ocr02
Clearing disk header: done
Dropping disk: done
[root@ydrac02 ~]# oracleasm deletedisk ocr03
Clearing disk header: done
Dropping disk: done
[root@ydrac02 ~]#
迁移DATA磁盘组
alter database move datafile 69 to '+dgdata1';
alter database move datafile 70 to '+dgdata1';
alter database move datafile 71 to '+dgdata1';
alter database move datafile 72 to '+dgdata1';
alter database move datafile 73 to '+dgdata1';
alter database move datafile 74 to '+dgdata1';
alter database move datafile 75 to '+dgdata1';
alter database move datafile 76 to '+dgdata1';
alter database move datafile 77 to '+dgdata1';
alter database move datafile 78 to '+dgdata1';
alter database move datafile 79 to '+dgdata1';
alter database move datafile 80 to '+dgdata1';
alter database move datafile 81 to '+dgdata1';
alter database move datafile 82 to '+dgdata1';
alter database move datafile 83 to '+dgdata1';
alter database move datafile 84 to '+dgdata1';
alter database move datafile 85 to '+dgdata1';
alter database move datafile 86 to '+dgdata1';
~
~
srvctl modify database -d monidb -diskgroup 'dgdata1,data01,redo'
alter system set control_files='+dgdata1/monidb/CONTROLFILE/controlfile01.ctl','+dgdata1/monidb/CONTROLFILE/controlfile02.ctl';
####################################################################################################现在阶段。
[root@ydrac01 ~]# upadmin
UltraPath CLI #0 >show vlun
[array_id=?] [disk=?] [id=?] [type=?]
Command is executable now.
[root@ydrac02 ~]# oracleasm querydisk /dev/sdb1
Device "/dev/sdb1" is marked an ASM disk with the label "OCR1"
[root@ydrac02 ~]# oracleasm querydisk /dev/sdb2
Device "/dev/sdb2" is marked an ASM disk with the label "OCR2"
[root@ydrac02 ~]# oracleasm querydisk /dev/sdb3
Device "/dev/sdb3" is marked an ASM disk with the label "OCR3"
[root@ydrac02 ~]#
[root@ydrac02 ~]# oracleasm querydisk /dev/sdc1
Device "/dev/sdc1" is marked an ASM disk with the label "ARCH"
[root@ydrac01 ~]# oracleasm querydisk /dev/sdf1
Device "/dev/sdf1" is marked an ASM disk with the label "DATA6"
[root@ydrac01 ~]# oracleasm querydisk /dev/sdf2
Device "/dev/sdf2" is marked an ASM disk with the label "DATA7"
[root@ydrac01 ~]# oracleasm querydisk /dev/sdg1
Device "/dev/sdg1" is marked an ASM disk with the label "DATA8"
[root@ydrac01 ~]# oracleasm querydisk /dev/sdg2
Device "/dev/sdg2" is marked an ASM disk with the label "DATA9"
SQL> col path for a50
SQL> col name for a30
SQL> /
PATH NAME STATE
-------------------------------------------------- ------------------------------ --------
/dev/oracleasm/disks/MGMT01 MGMT_0001 NORMAL
/dev/oracleasm/disks/REDO01 REDO_0001 NORMAL
/dev/oracleasm/disks/ARCH DGARCH_0000 NORMAL
/dev/oracleasm/disks/DATA9 DGDATA2_0001 NORMAL
/dev/oracleasm/disks/DATA8 DGDATA2_0000 NORMAL
/dev/oracleasm/disks/DATA7 DGDATA1_0001 NORMAL
/dev/oracleasm/disks/DATA6 DGDATA1_0000 NORMAL
/dev/oracleasm/disks/OCR3 DGOCR_0002 NORMAL
/dev/oracleasm/disks/OCR2 DGOCR_0001 NORMAL
/dev/oracleasm/disks/OCR1 DGOCR_0000 NORMAL
10 rows selected.
SQL>
SQL> set lines 120
SQL> col name for a10
SQL> col path for a50
SQL> select a.name,a.state,b.path from v$asm_diskgroup a,v$asm_disk b where a.GROUP_NUMBER=b.group_number;
NAME STATE PATH
---------- ----------- --------------------------------------------------
DGARCH MOUNTED /dev/oracleasm/disks/ARCH
MGMT MOUNTED /dev/oracleasm/disks/MGMT01
REDO MOUNTED /dev/oracleasm/disks/REDO01
DGOCR MOUNTED /dev/oracleasm/disks/OCR2
DGOCR MOUNTED /dev/oracleasm/disks/OCR1
DGOCR MOUNTED /dev/oracleasm/disks/OCR3
DGDATA1 MOUNTED /dev/oracleasm/disks/DATA7
DGDATA1 MOUNTED /dev/oracleasm/disks/DATA6
DGDATA2 MOUNTED /dev/oracleasm/disks/DATA9
DGDATA2 MOUNTED /dev/oracleasm/disks/DATA8
[root@ydrac01 ~]# oracleasm listdisks
ARCH
DATA6
DATA7
DATA8
DATA9
MGMT01
OCR1
OCR2
OCR3
REDO01
ASMCMD> lsdsk
Path
/dev/oracleasm/disks/ARCH
/dev/oracleasm/disks/DATA6
/dev/oracleasm/disks/DATA7
/dev/oracleasm/disks/DATA8
/dev/oracleasm/disks/DATA9
/dev/oracleasm/disks/MGMT01
/dev/oracleasm/disks/OCR1
/dev/oracleasm/disks/OCR2
/dev/oracleasm/disks/OCR3
/dev/oracleasm/disks/REDO01
ASMCMD>
目标:Oracle RAC系统更换共享存储,由HUAWEI存储更换为IBM存储。
计划步骤:
1.根据现有的LUN的数量及大小,从IBM新分配LUN;
2.使用Oracle的工具(asmca或OEM),从磁盘组层面替换磁盘;
遇到的问题:
在给磁盘组添加磁盘时,系统报错,不能添加磁盘。于是测试使用新的IBM磁盘创建磁盘组,报错,alert.log中的内容如下:
SQL> CREATE DISKGROUP testgroup EXTERNAL REDUNDANCY DISK '/dev/mapper/asmdisk_0a' SIZE 307200M ATTRIBUTE 'compatible.asm'='11.2.0.0.0','au_size'='1M' /* ASMCA */
NOTE: Assigning number (2,0) to disk (/dev/mapper/asmdisk_0a)
NOTE: initializing header on grp 2 disk TESTGROUP_0000
WARNING: detected duplicate paths to the same disk:
'/dev/mapper/asmdisk_0a' and
'/dev/dm-2'
More trace information dumped to '/oracle/app/oracle/diag/asm/+asm/+ASM1/trace/+ASM1_ora_60504.trc'
NOTE: erasing header on grp 2 disk TESTGROUP_0000
GMON dismounting group 2 at 40 for pid 37, osid 60504
NOTE: Disk in mode 0x8 marked for de-assignment
ERROR: diskgroup TESTGROUP was not created
ORA-15018: diskgroup cannot be created
ORA-15020: discovered duplicate ASM disk "TESTGROUP_0000"
ERROR: CREATE DISKGROUP testgroup EXTERNAL REDUNDANCY DISK '/dev/mapper/asmdisk_0a' SIZE 307200M ATTRIBUTE 'compatible.asm'='11.2.0.0.0','au_size'='1M' /* ASMCA */
由此可知由于系统检查到 '/dev/mapper/asmdisk_0a' 和 '/dev/dm-2'时相同的磁盘,从而导致不能创建磁盘组。
原因在于ASM数据库的asm_diskstring的值时/dev/*,/dev/mapper/*,所以能搜索到'/dev/mapper/asmdisk_0a' 和 '/dev/dm-2'
处理方法:指定asm_diskstring的值为/dev/mapper/*,使系统只能搜索到/dev/mapper/下的磁盘。
处理步骤:
1.检查原华为磁盘的路径,建立链接连接到/dev/mapper/下。
ASMCMD> lsdsk
Path
/dev/sdan1
/dev/sdao1
/dev/sdap1
/dev/sdaq1
/dev/sdar1
/dev/sdas1
/dev/sdat1
/dev/sdau1
/dev/sdav1
/dev/sdaw1
/dev/sdax1
/dev/sday1
/dev/sdaz1
/dev/sdba1
/dev/sdbb1
/dev/sdbc1
/dev/sdbd1
/dev/sdbe1
/dev/sdbf1
#建立链接
ln /dev/sdan1 /dev/mapper/huawei_sdan1
ln /dev/sdao1 /dev/mapper/huawei_sdao1
ln /dev/sdap1 /dev/mapper/huawei_sdap1
ln /dev/sdaq1 /dev/mapper/huawei_sdaq1
ln /dev/sdar1 /dev/mapper/huawei_sdar1
ln /dev/sdas1 /dev/mapper/huawei_sdas1
ln /dev/sdat1 /dev/mapper/huawei_sdat1
ln /dev/sdau1 /dev/mapper/huawei_sdau1
ln /dev/sdav1 /dev/mapper/huawei_sdav1
ln /dev/sdaw1 /dev/mapper/huawei_sdaw1
ln /dev/sdax1 /dev/mapper/huawei_sdax1
ln /dev/sday1 /dev/mapper/huawei_sday1
ln /dev/sdaz1 /dev/mapper/huawei_sdaz1
ln /dev/sdba1 /dev/mapper/huawei_sdba1
ln /dev/sdbb1 /dev/mapper/huawei_sdbb1
ln /dev/sdbc1 /dev/mapper/huawei_sdbc1
ln /dev/sdbd1 /dev/mapper/huawei_sdbd1
ln /dev/sdbe1 /dev/mapper/huawei_sdbe1
ln /dev/sdbf1 /dev/mapper/huawei_sdbf12.
修改asm实例的参数asm_diskstring使只搜索/dev/mapper目录。alter system set asm_diskstring="/dev/mapper/*" scope=spfile;
3.重新启动集群,系统自动变更磁盘的路径。
4.使用em或asmca或脚本添加IBM磁盘,移去华为磁盘。
————————————————
版权声明:本文为CSDN博主「wangqingxun」的原创文章,遵循CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wangqingxun/article/details/42098149