一、概述
1.环境介绍:
服务器:2台IBM Power 740小型机,CPU:8*3550 MHz POWER7,内存:95488
存储:DS5020 à V7000
操作系统:6100-01-09-1015
数据库:Oracle 10.2.0.4.0 RAC
2.V7000驱动SDDPCM安装
安装devices.fcp.disk.ibm.mpio.rte和devices.sddpcm.61.rte
3.磁盘用途介绍:
原OCR盘:
ocrcheck
/dev/rhdisk5
/dev/rhdisk6
原VOTING盘:
crsctl query css votedisk
/dev/rhdisk7
/dev/rhdisk8
/dev/rhdisk9
查询磁盘组信息:
select group_number, failgroup ,name,path from v$asm_disk order by 1
GROUP_NUMBER FAILGROUP NAME PATH
------------ ------------ ----------- ----------------
0 /dev/rhdisk5
0 /dev/rhdisk6
0 /dev/rhdisk7
0 /dev/rhdisk8
0 /dev/rhdisk9
1 ARCH_0000 ARCH_0000 /dev/rhdisk10
1 ARCH_0001 ARCH_0001 /dev/rhdisk11
2 DATA_0000 DATA_0000 /dev/rhdisk2
2 DATA_0001 DATA_0001 /dev/rhdisk3
2 DATA_0002 DATA_0002 /dev/rhdisk4
原ASM_DATA盘:
/dev/rhdisk2
/dev/rhdisk3
/dev/rhdisk4
原ASM_ARCH盘:
/dev/rhdisk10
/dev/rhdisk11
新OCR盘:
/dev/rhdisk15
/dev/rhdisk16
新VOTING盘:
/dev/rhdisk12
/dev/rhdisk13
/dev/rhdisk14
新ASM_DATA盘:
/dev/rhdisk21
/dev/rhdisk22
/dev/rhdisk23
/dev/rhdisk24
新ASM_FRA盘:
/dev/rhdisk17
/dev/rhdisk18
/dev/rhdisk19
/dev/rhdisk20
4.注意事项:
1.OCR和ASM磁盘都可以在线迁移,但是要删除ASM磁盘时,需要重启CRS服务。
2.VOTING必须离线迁移。
二、准备工作(在YCBUS01和YCBUS02上都需要执行)
1.赋予hdisk权限
i=12; while [ $i -le 24 ]
do
chown oracle:dba /dev/rhdisk$i; ((i=i+1))
done
2.修改hdisk属性
i=12; while [ $i -le 24 ]
do
chdev -l hdisk$i -a reserve_policy=no_reserve; ((i=i+1))
done
3.修改hdisk权限
i=12; while [ $i -le 24 ]
do
chmod 660 /dev/rhdisk$i; ((i=i+1))
done
4.检查磁盘属性
i=12; while [ $i -le 24 ]
do
lsattr -El hdisk$i -a reserve_policy; ((i=i+1))
done
三、迁移OCR(在线)
1.查看OCR信息
$ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 511764
Used space (kbytes) : 8612
Available space (kbytes) : 503152
ID : 1142741480
Device/File Name : /dev/rhdisk5
Device/File integrity check succeeded
Device/File Name : /dev/rhdisk6
Device/File integrity check succeeded
Cluster registry integrity check succeeded
$ocrconfig -showbackup
ycbus01 2017/08/06 13:15:16 /oracle/app/crs/cdata/ycbus
ycbus01 2017/08/06 09:15:16 /oracle/app/crs/cdata/ycbus
ycbus01 2017/08/06 05:15:16 /oracle/app/crs/cdata/ycbus
ycbus01 2017/08/05 09:15:14 /oracle/app/crs/cdata/ycbus
ycbus01 2017/07/29 09:15:05 /oracle/app/crs/cdata/ycbus
2.CRS健康检查(在所有节点上)
$crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy
3.迁移普通OCR(耗时:2秒)
# /oracle/app/crs/bin/ocrconfig -replace ocr /dev/rhdisk15
#/oracle/app/crs/bin/ocrcheck
4.迁移镜像OCR(耗时:2秒)
#/oracle/app/crs/bin/ocrconfig -replace ocrmirror /dev/rhdisk16
#/oracle/app/crs/bin/ocrcheck
5.检验CRS健康检查和服务状态(在所有节点上)
#/oracle/app/crs/bin/crsctl check crs
#/oracle/app/crs/bin/crs_stat -t
四、迁移VOTING(离线)
1.检查VOTING信息
#/oracle/app/crs/bin/crsctl query css votedisk
2.备份Votedisk信息
dd if=/dev/rhdisk7 of=/oracle/app/crs/cdata/ycbus/votedisk.bak
2.停止CRS服务
#/oracle/app/crs/bin/crsctl stop crs
3.添加VOTING (耗时:1分30秒)
#/oracle/app/crs/bin/crsctl add css votedisk /dev/rhdisk12 -force
(耗时:30S)
#/oracle/app/crs/bin/crsctl add css votedisk /dev/rhdisk13 -force
(耗时:30S)
#/oracle/app/crs/bin/crsctl add css votedisk /dev/rhdisk14 -force
4.查看当前VOTING信息
#/oracle/app/crs/bin/crsctl query css votedisk
5.删除原VOTING
(耗时:1S)
#/oracle/app/crs/bin/crsctl delete css votedisk /dev/rhdisk7 -force
#/oracle/app/crs/bin/crsctl delete css votedisk /dev/rhdisk8 -force
#/oracle/app/crs/bin/crsctl delete css votedisk /dev/rhdisk9 -force
6.验证是否替换成功
#/oracle/app/crs/bin/crsctl query css votedisk
7.启动CRS
#/oracle/app/crs/bin/crsctl start crs
观察crs日志
#tail -f /oracle/app/crs/log/ycbus01/alertycbus01.log
#tail -f /oracle/app/crs/log/ycbus02/alertycbus02.log
五、迁移ASM磁盘组(在线)(耗时:198分钟)
1.查看ASM磁盘信息
$export ORACLE_SID=+ASM1
$sqlplus / as sysdba
col name for a10
col path for a15
SQL>select name,path,GROUP_NUMBER,HEADER_STATUS,MOUNT_STATUS from v$asm_disk;

SQL>select name,total_mb,free_mb from v$asm_disk;
SQL> select name,group_number,state,type,total_mb,free_mb from v$asm_diskgroup;

2.迁移ARCH磁盘组
$export ORACLE_SID=+ASM1
$sqlplus / as sysdba
(1)增加磁盘
SQL> alter diskgroup ARCH add disk '/dev/rhdisk17' rebalance power 5;
SQL> alter diskgroup ARCH add disk '/dev/rhdisk18' rebalance power 5;
SQL> alter diskgroup ARCH add disk '/dev/rhdisk19' rebalance power 5;
SQL> alter diskgroup ARCH add disk '/dev/rhdisk20' rebalance power 5;
(2)检查新加磁盘信息
$export ORACLE_SID=+ASM1
$sqlplus / as sysdba
SQL>select name,path,GROUP_NUMBER,HEADER_STATUS,MOUNT_STATUS from v$asm_disk;

SQL> select name,group_number,state,type,total_mb,free_mb from v$asm_diskgroup;

(3)删除原磁盘
$export ORACLE_SID=+ASM1
$sqlplus / as sysdba
SQL> alter diskgroup ARCH drop disk ARCH_0000 rebalance power 5;
Diskgroup altered.
SQL> alter diskgroup ARCH drop disk ARCH_0001 rebalance power 5;
Diskgroup altered.
(4)检查状态
$export ORACLE_SID=+ASM1
$sqlplus / as sysdba
SQL>select group_number,operation,state,power,est_work,est_minutes from v$asm_operation;
SQL>select group_number,operation,state,power,est_work,est_minutes from v$asm_operation;
SQL>select name,path,GROUP_NUMBER,HEADER_STATUS,MOUNT_STATUS from v$asm_disk;
SQL> select name,group_number,state,type,total_mb,free_mb from v$asm_diskgroup;
3.迁移DATA磁盘组
$export ORACLE_SID=+ASM1
$sqlplus / as sysdba
(1)检查磁盘信息
$export ORACLE_SID=+ASM1
$sqlplus / as sysdba
col name for a10
col path for a15
SQL>select name,path,GROUP_NUMBER,HEADER_STATUS,MOUNT_STATUS from v$asm_disk;
SQL>select name,total_mb,free_mb from v$asm_disk;

SQL> select name,group_number,state,type,total_mb,free_mb from v$asm_diskgroup;
(2)增加磁盘
SQL> alter diskgroup DATA add disk '/dev/rhdisk21' rebalance power 8;
SQL> alter diskgroup DATA add disk '/dev/rhdisk22' rebalance power 8;
SQL> alter diskgroup DATA add disk '/dev/rhdisk23' rebalance power 8;
SQL> alter diskgroup DATA add disk '/dev/rhdisk24' rebalance power 8;
(3)检查新增加磁盘信息
$export ORACLE_SID=+ASM1
$sqlplus / as sysdba
col name for a10
col path for a15
SQL>select name,path,GROUP_NUMBER,HEADER_STATUS,MOUNT_STATUS from v$asm_disk;
SQL>select name,total_mb,free_mb from v$asm_disk;
SQL> select name,group_number,state,type,total_mb,free_mb from v$asm_diskgroup;
(4)删除原磁盘
$export ORACLE_SID=+ASM1
$sqlplus / as sysdba
SQL> alter diskgroup DATA drop disk DATA_0000 rebalance power 8;
SQL> alter diskgroup DATA drop disk DATA_0001 rebalance power 8;
SQL> alter diskgroup DATA drop disk DATA_0002 rebalance power 8;
(5)检查状态
$export ORACLE_SID=+ASM1
$sqlplus / as sysdba
SQL>select group_number,operation,state,power,est_work,est_minutes from v$asm_operation;
SQL>select name,total_mb,free_mb from v$asm_disk;
SQL>select group_number,operation,state,power,est_work,est_minutes from v$asm_operation;
SQL>select name,path,GROUP_NUMBER,HEADER_STATUS,MOUNT_STATUS from v$asm_disk;
SQL> select name,group_number,state,type,total_mb,free_mb from v$asm_diskgroup;
修改rebalace速度
alter diskgroup DATA rebalance power 10;
六、删除原磁盘
#i=2; while [ $i -le 11 ]
do
rmdev -Rdl hdisk$i; ((i=i+1))
done
如果删除PV时报错如下错误,可以使用odmdelete删除
Method error (/usr/lib/methods/ucfgdevice):
0514-062 Cannot perform the requested function because the
specified device is busy.
odmget -q "hdisk2" CuDv
odmget -q "name=hdisk2" CuAt
odmdelete -q "name=hdisk2" -o CuDv
odmdelete -q "name=hdisk2" -o CuAt




