1、检查当前的磁盘的情况
MOUNTED EXTERN N 512 4096 1048576 102398 102222 0 102222 0 N ARCHDG/
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/
注意,重做日志、归档日志已经替换,只需替换datadg便可以了
SQL> select GROUP_NUMBER,name from v$asm_diskgroup;
GROUP_NUMBER NAME
------------ ------------------------------
1 ARCHDG
0 CRSDG
3 DATADG ---此盘需要替换,磁盘组号为3
4 RECODG
0 REDODG2
0 REDODG1
7 REDO1
通过确认,盘为:/dev/asm-disk4
[oracle@ecc-prddb1 rules.d]$ more 99-oracle-asmdevices.rules
KERNEL=="sde1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="36000c29a5e6738762b229b31b4f8052a",NAME="asm-disk4",OWNER="oracle",GROUP="oinstall",MODE="0660"
Disk /dev/sde: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 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: 0xbec85102
Device Boot Start End Blocks Id System
/dev/sde1 1 26108 209712478+ 83 Linux
SQL> select name,total_mb,free_mb from v$asm_diskgroup;
NAME TOTAL_MB FREE_MB
------------------------------ ---------- ----------
ARCHDG 102398 102339
CRSDG 0 0
DATADG 204797 19872
RECODG 102398 102272
REDODG2 0 0
REDODG1 0 0
REDO1 30718 26555
要替换的盘确实是/dev/sde1,大小为200g
[oracle@ecc-prddb1 bin]$ ./ocrcheck -config
Oracle Cluster Registry configuration is :
Device/File Name : +CRSDG
此命令是检查crs是否是datadg上面,因为有些不规范的磁盘规划,会与数据盘放在一起,此次不在一起。
2、划磁盘到该机器
注意:
--要求所划盘为sas盘
--所划盘的大小不得小于替换的磁盘
--磁盘的属性配置,与其它盘相同
3、操作系统对此盘进行处理
--分区
fdisk /dev/sd* 注意,当时划出来的编号是什么就是什么,可能会sdn\sdm模式
--扫描磁盘
echo "- - -" > /sys/class/scsi_host/host0/scan
在此目录下,查看有多少个host+数据的目录,可能第一个不正确,需要继续执行下面的
依次执行,由此获取到ssid
或者使用如下命令
scsi_id -g -u -d /dev/sdb
--编辑udev里的配置文件
99-oracle-asmdevices.rules
其格式如下:
KERNEL=="sde1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="36000c29a5e6738762b229b31b4f8052a",NAME="asm-disk4",OWNER="oracle",GROUP="oinstall",MODE="0660"
注意:
--36000c29a5e6738762b229b31b4f8052a这一串要更改为上面扫描出来的结果
--KERNEL=="sde1",这个需要根据磁盘进行更改
--NAME="asm-disk4",需要根据磁盘命名进行更改
4、添加磁盘到磁盘组
SQL> select GROUP_NUMBER,DISK_NUMBER,STATE,REDUNDANCY,TOTAL_MB,FREE_MB,name,path,failgroup from v$asm_disk order by GROUP_NUMBER;
GROUP_NUMBER DISK_NUMBER STATE REDUNDA TOTAL_MB FREE_MB NAME PATHFAILGROUP
------------ ----------- -------- ------- ---------- ---------- ------------------------------ --------------------------------
1 0 NORMAL UNKNOWN 102398 102339 ARCHDG_0000 /dev/asm-disk8ARCHDG_0000
3 0 NORMAL UNKNOWN 204797 19872 DATADG_0000 /dev/asm-disk4DATADG_0000
4 0 NORMAL UNKNOWN 102398 102272 RECODG_0000 /dev/asm-disk5RECODG_0000
7 0 NORMAL UNKNOWN 30718 26555 REDO1_0000 /dev/asm-disk9REDO1_0000
10 rows selected.
找到刚才加入的磁盘。刚刚加入的,是没有磁盘组的
--执行添加盘的操作
SQL> alter diskgroup DATADG add disk '/dev/asm-disk11' rebalance power 11;
--rebalance power 11,
说的是并行度,需要考虑当时的性能确定,本次操作建议在4或者5就行了,不必太大
通过以下语句来查看完成的进度
SQL> select * from V$ASM_OPERATION;
如果仍有数据在上面跑,不可对原磁盘进行删除。此语句可以查看进度
5、删除磁盘操作
SQL> alter diskgroup DATADG drop disk 'DATADG_0000' rebalance power 11;
SQL> select * from V$ASM_OPERATION;
查看进度
如果上述查询没有了,就证明已经完成,按如下语句进行查看添加是否成功。
SQL> select a.NAME GROUP_NAME,a.TOTAL_MB,a.FREE_MB GROUP_FREE_MB,b.OS_MB,b.FREE_MB,b.name,b.path from v$asm_diskgroup a,v$asm_disk b where a.GROUP_NUMBER=b.GROUP_NUMBER;
MOUNTED EXTERN N 512 4096 1048576 102398 102222 0 102222 0 N ARCHDG/
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/
注意,重做日志、归档日志已经替换,只需替换datadg便可以了
SQL> select GROUP_NUMBER,name from v$asm_diskgroup;
GROUP_NUMBER NAME
------------ ------------------------------
1 ARCHDG
0 CRSDG
3 DATADG ---此盘需要替换,磁盘组号为3
4 RECODG
0 REDODG2
0 REDODG1
7 REDO1
通过确认,盘为:/dev/asm-disk4
[oracle@ecc-prddb1 rules.d]$ more 99-oracle-asmdevices.rules
KERNEL=="sde1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="36000c29a5e6738762b229b31b4f8052a",NAME="asm-disk4",OWNER="oracle",GROUP="oinstall",MODE="0660"
Disk /dev/sde: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 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: 0xbec85102
Device Boot Start End Blocks Id System
/dev/sde1 1 26108 209712478+ 83 Linux
SQL> select name,total_mb,free_mb from v$asm_diskgroup;
NAME TOTAL_MB FREE_MB
------------------------------ ---------- ----------
ARCHDG 102398 102339
CRSDG 0 0
DATADG 204797 19872
RECODG 102398 102272
REDODG2 0 0
REDODG1 0 0
REDO1 30718 26555
要替换的盘确实是/dev/sde1,大小为200g
[oracle@ecc-prddb1 bin]$ ./ocrcheck -config
Oracle Cluster Registry configuration is :
Device/File Name : +CRSDG
此命令是检查crs是否是datadg上面,因为有些不规范的磁盘规划,会与数据盘放在一起,此次不在一起。
2、划磁盘到该机器
注意:
--要求所划盘为sas盘
--所划盘的大小不得小于替换的磁盘
--磁盘的属性配置,与其它盘相同
3、操作系统对此盘进行处理
--分区
fdisk /dev/sd* 注意,当时划出来的编号是什么就是什么,可能会sdn\sdm模式
--扫描磁盘
echo "- - -" > /sys/class/scsi_host/host0/scan
在此目录下,查看有多少个host+数据的目录,可能第一个不正确,需要继续执行下面的
依次执行,由此获取到ssid
或者使用如下命令
scsi_id -g -u -d /dev/sdb
--编辑udev里的配置文件
99-oracle-asmdevices.rules
其格式如下:
KERNEL=="sde1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -g -u -d /dev/$parent",RESULT=="36000c29a5e6738762b229b31b4f8052a",NAME="asm-disk4",OWNER="oracle",GROUP="oinstall",MODE="0660"
注意:
--36000c29a5e6738762b229b31b4f8052a这一串要更改为上面扫描出来的结果
--KERNEL=="sde1",这个需要根据磁盘进行更改
--NAME="asm-disk4",需要根据磁盘命名进行更改
4、添加磁盘到磁盘组
SQL> select GROUP_NUMBER,DISK_NUMBER,STATE,REDUNDANCY,TOTAL_MB,FREE_MB,name,path,failgroup from v$asm_disk order by GROUP_NUMBER;
GROUP_NUMBER DISK_NUMBER STATE REDUNDA TOTAL_MB FREE_MB NAME PATHFAILGROUP
------------ ----------- -------- ------- ---------- ---------- ------------------------------ --------------------------------
1 0 NORMAL UNKNOWN 102398 102339 ARCHDG_0000 /dev/asm-disk8ARCHDG_0000
3 0 NORMAL UNKNOWN 204797 19872 DATADG_0000 /dev/asm-disk4DATADG_0000
4 0 NORMAL UNKNOWN 102398 102272 RECODG_0000 /dev/asm-disk5RECODG_0000
7 0 NORMAL UNKNOWN 30718 26555 REDO1_0000 /dev/asm-disk9REDO1_0000
10 rows selected.
找到刚才加入的磁盘。刚刚加入的,是没有磁盘组的
--执行添加盘的操作
SQL> alter diskgroup DATADG add disk '/dev/asm-disk11' rebalance power 11;
--rebalance power 11,
说的是并行度,需要考虑当时的性能确定,本次操作建议在4或者5就行了,不必太大
通过以下语句来查看完成的进度
SQL> select * from V$ASM_OPERATION;
如果仍有数据在上面跑,不可对原磁盘进行删除。此语句可以查看进度
5、删除磁盘操作
SQL> alter diskgroup DATADG drop disk 'DATADG_0000' rebalance power 11;
SQL> select * from V$ASM_OPERATION;
查看进度
如果上述查询没有了,就证明已经完成,按如下语句进行查看添加是否成功。
SQL> select a.NAME GROUP_NAME,a.TOTAL_MB,a.FREE_MB GROUP_FREE_MB,b.OS_MB,b.FREE_MB,b.name,b.path from v$asm_diskgroup a,v$asm_disk b where a.GROUP_NUMBER=b.GROUP_NUMBER;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29371470/viewspace-1734152/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29371470/viewspace-1734152/