oracle11gR2 ASM添加和删除磁盘

实验环境:
OS:Oracle Linux Server release 5.9
DB:Oracle 11.2.0.1.0
为了安全起见,操作之前,需要停掉数据库,ASM实例。
1.节点1磁盘信息如下(节点2相同)
[root@11grac1 ~]# ls -l /dev/asm*
brw-rw---- 1  asmadmin 8,  16 Mar 25 03:31 /dev/asm-diskb
brw-rw---- 1 grid asmadmin 8,  32 Mar 25 03:31 /dev/asm-diskc
brw-rw---- 1 grid asmadmin 8,  48 Mar 25 03:31 /dev/asm-diskd
brw-rw---- 1 grid asmadmin 8,  64 Mar 24 21:03 /dev/asm-diske
brw-rw---- 1 grid asmadmin 8,  80 Mar 25 03:31 /dev/asm-diskf
brw-rw---- 1 grid asmadmin 8,  96 Mar 25 03:31 /dev/asm-diskg
brw-rw---- 1 grid asmadmin 8, 128 Mar 25 03:31 /dev/asm-diski
[root@11grac1 ~]# ls -l /dev/sd*
brw-r----- 1 root disk 8,   0 Mar 24 20:46 /dev/sda
brw-r----- 1 root disk 8,   1 Mar 24 20:47 /dev/sda1
brw-r----- 1 root disk 8,   2 Mar 24 20:46 /dev/sda2
brw-rw---- 1 root root 8,  16 Mar 24 20:46 /dev/sdb
brw-rw---- 1 root root 8,  32 Mar 24 20:46 /dev/sdc
brw-rw---- 1 root root 8,  48 Mar 24 20:46 /dev/sdd
brw-rw---- 1 root root 8,  64 Mar 24 20:46 /dev/sde
brw-rw---- 1 root root 8,  80 Mar 24 20:46 /dev/sdf
brw-rw---- 1 root root 8,  96 Mar 24 20:46 /dev/sdg
brw-r----- 1 root disk 8, 112 Mar 24 20:46 /dev/sdh
brw-rw---- 1 root root 8, 128 Mar 24 20:46 /dev/sdi
现在要将新添加的磁盘/dev/sdh设置为ASM共享磁盘,并且添加到磁盘组中。
2.[root@11grac1 rules.d]# pwd
/etc/udev/rules.d
[root@11grac1 rules.d]# for i in h; do echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id -g -u -s %p\", RESULT==\"`scsi_id     -g -u -s /block/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""; done
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s p",RESULT=="SATA_VBOX_HARDDISK_VBfeab29eb-3b887e7b_", NAME="asm-diskh", OWNER="grid", GROUP="asmadmin", MODE="0660"
[root@11grac1 rules.d]# vi 99-oracle-asmdevices.rules
添加如上一行信息到文件中
[root@11grac1 rules.d]# vi 99-oracle-asmdevices.rules
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p",RESULT=="SATA_VBOX_HARDDISK_VB132c7b61-b9c9f7fe_", NAME="asm-diskg",OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p",RESULT=="SATA_VBOX_HARDDISK_VBa246668a-4855c053_", NAME="asm-diski",OWNER="grid", GROUP="asmadmin", MODE="0660"

KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="SATA_VBOX_HARDDISK_VBfeab29eb-3b887e7b_", NAME="asmdiskh",OWNER="grid",GROUP="asmadmin", MODE="0660"
用udev进行绑定
[root@11grac1 rules.d]# start_udev
节点2上做同样的修改
[root@11grac2 rules.d]# start_udev
在两个节点上查看磁盘信息
root@11grac2 rules.d]# ls -l /dev/asm*
brw-rw---- 1 grid asmadmin 8,  16 Mar 25 03:39 /dev/asm-diskb
brw-rw---- 1 grid asmadmin 8,  32 Mar 25 03:39 /dev/asm-diskc
brw-rw---- 1 grid asmadmin 8,  48 Mar 25 03:39 /dev/asm-diskd
brw-rw---- 1 grid asmadmin 8,  64 Mar 24 20:46 /dev/asm-diske
brw-rw---- 1 grid asmadmin 8,  80 Mar 25 03:37 /dev/asm-diskf
brw-rw---- 1 grid asmadmin 8,  96 Mar 25 03:37 /dev/asm-diskg
brw-rw---- 1 grid asmadmin 8, 112 Mar 25 03:39 /dev/asm-diskh  --新添加的ASM磁盘
brw-rw---- 1 grid asmadmin 8, 128 Mar 25 03:35 /dev/asm-diski
2.向磁盘组中添加磁盘/dev/asm-diskh
SQL> select GROUP_NUMBER,DISK_NUMBER, MODE_STATUS,HEADER_STATUS, MODE_STATUS,state,TOTAL_MB,FREE_MB,name,PATH from v$asm_disk;
GROUP_NUMBER DISK_NUMBER MODE_ST HEADER_STATU MODE_ST STATE  TOTAL_MB FREE_MB

NAME                 PATH
------------ ----------- ------- ------------ ------- -------- ---------- ---------- -------------------- --------------
           0           0 ONLINE  CANDIDATE    ONLINE  NORMAL            0          0                      /dev/asm-diskh
           1           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       3406 BACKUP_DG_0000       /dev/asm-diskg
           2           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       1929 DATA_DG_0000         /dev/asm-diskf
           3           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       4812 SYS_DG_0000          /dev/asm-diskb
           1           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       3400 BACKUP_DG_0001       /dev/asm-diski
           2           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       5118 DATA_DG_0001         /dev/asm-diske
           3           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       4812 SYS_DG_0001          /dev/asm-diskc
           3           2 ONLINE  MEMBER       ONLINE  NORMAL         5120       4810 SYS_DG_0002          /dev/asm-diskd
SQL> alter diskgroup data_dg add disk '/dev/asm-diskh';
Diskgroup altered.
SQL> select GROUP_NUMBER,DISK_NUMBER, MODE_STATUS,HEADER_STATUS,MODE_STATUS,state,TOTAL_MB,FREE_MB,name,PATH from v$asm_disk;
GROUP_NUMBER DISK_NUMBER MODE_ST HEADER_STATU MODE_ST STATE      TOTAL_MB    FREE_MB NAME                 PATH
------------ ----------- ------- ------------ ------- -------- ---------- ---------- 
           2           2 ONLINE  MEMBER       ONLINE  NORMAL         5120       3525 DATA_DG_0002         /dev/asm-diskh
           1           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       3406 BACKUP_DG_0000       /dev/asm-diskg
           2           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       2513 DATA_DG_0000         /dev/asm-diskf
           3           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       4812 SYS_DG_0000          /dev/asm-diskb
           1           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       3400 BACKUP_DG_0001       /dev/asm-diski
           2           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       5118 DATA_DG_0001         /dev/asm-diske
           3           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       4812 SYS_DG_0001          /dev/asm-diskc
           3           2 ONLINE  MEMBER       ONLINE  NORMAL         5120       4810 SYS_DG_0002          /dev/asm-diskd
添加完磁盘之后,oracle会自动做重平衡rebalance操作,可以通过视图查看
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES ERROR_CODE
------------ ----- ---- ---------- ---------- ---------- ---------- ---------- ----------- -------
           2 REBAL RUN                    1       1593       1601        320           0
说明还在做重平衡的操作,重平衡的过程就是从其他的磁盘向新磁盘挪动数据的过程,如果数据量很大,这个时间会很长。
SOFAR:就是目前为止挪动的AU数量1593
EST_WORK:估计要挪动的AU数量1601
实际挪动5120-3525=1595MB,即1595个AU,即重平衡过程中需要大概挪到1595MB的数据。而且POWER默认是POWER
SQL> show parameter asm_power_limit
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
asm_power_limit                      integer     1
如果存储比较高端,可以将这个值设置大一点(power取值0-11),alter diskgroup data_dg rebalance power 11; power=0就是停止rebalance操作。
EST_RATE:估计每分钟挪动的AU数量
EST_MINUTES:估计挪动多少分钟
Oracle执行重平衡的进程是ASMB,可以查看一下:
[grid@11grac1 ~]$ ps -ef|grep asmb
grid     21701     1  0 03:50 ?        00:00:05 asm_asmb_+ASM1
grid     21706     1  0 03:50 ?        00:00:12 oracle+ASM1_asmb_+asm1 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
过段时间查看,重平衡操作结束。
SQL> select * from v$asm_operation;
no rows selected
3.删除磁盘组
SQL> alter diskgroup data_dg drop disk 'DATA_DG_0002'; --按照name来删除
Diskgroup altered.
SQL> select GROUP_NUMBER,DISK_NUMBER, MODE_STATUS,HEADER_STATUS, MODE_STATUS,state,TOTAL_MB,FREE_MB,name,PATH from v$asm_disk;
GROUP_NUMBER DISK_NUMBER MODE_ST HEADER_STATU MODE_ST STATE      TOTAL_MB    FREE_MB NAME                 PATH
------------ ----------- ------- ------------ ------- -------- ---------- ---------- -------------
           2           2 ONLINE  MEMBER       ONLINE  DROPPING       5120       3555 DATA_DG_0002         /dev/asm-diskh
           1           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       3406 BACKUP_DG_0000       /dev/asm-diskg
           2           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       3492 DATA_DG_0000         /dev/asm-diskf
           3           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       4812 SYS_DG_0000          /dev/asm-diskb
           1           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       3400 BACKUP_DG_0001       /dev/asm-diski
           2           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       5118 DATA_DG_0001         /dev/asm-diske
           3           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       4812 SYS_DG_0001          /dev/asm-diskc
           3           2 ONLINE  MEMBER       ONLINE  NORMAL         5120       4810 SYS_DG_0002          /dev/asm-diskd
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES ERROR_CODE
------------ ----- ---- ---------- ---------- ---------- ---------- ---------- ----------- -------
           2 REBAL RUN           1          1        168       1601        204           7
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES ERROR_CODE
------------ ----- ---- ---------- ---------- ---------- ---------- ---------- ----------- -------
           2 REBAL RUN           1          1        288       1601        239           5
SQL> select * from v$asm_operation;、
GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES ERROR_CODE
------------ ----- ---- ---------- ---------- ---------- ---------- ---------- ----------- -
           2 REBAL RUN           1          1       1275       1601        292           1
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES ERROR_CODE
------------ ----- ---- ---------- ---------- ---------- ---------- ---------- -----------            2 REBAL RUN           1          1       1326      1601        290           0
SQL> select * from v$asm_operation;
no rows selected
大概需要挪动1601个AU才能完成重平衡。
SQL> select GROUP_NUMBER,DISK_NUMBER, MODE_STATUS,HEADER_STATUS, MODE_STATUS,state,TOTAL_MB,FREE_MB,name,PATH from v$asm_disk;
GROUP_NUMBER DISK_NUMBER MODE_ST HEADER_STATU MODE_ST STATE      TOTAL_MB    FREE_MB NAME                 PATH
------------ ----------- ------- ------------ ------- -------- ---------- ---------- -------------
           0           0 ONLINE  FORMER       ONLINE  NORMAL                     0                      /dev/asm-diskh
           1           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       3406 BACKUP_DG_0000       /dev/asm-diskg
           2           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       1929 DATA_DG_0000         /dev/asm-diskf
           3           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       4812 SYS_DG_0000          /dev/asm-diskb
           1           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       3400 BACKUP_DG_0001       /dev/asm-diski
           2           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       5118 DATA_DG_0001         /dev/asm-diske
           3           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       4812 SYS_DG_0001          /dev/asm-diskc
           3           2 ONLINE  MEMBER       ONLINE  NORMAL         5120       4810 SYS_DG_0002          /dev/asm-diskd
FORMER - Disk was once part of a disk group but has been dropped cleanly from the group. It may be added to a new disk group with the ALTER DISKGROUP statement.
4.重新添加该磁盘
SQL> alter diskgroup data_dg add disk '/dev/asm-diskh';
Diskgroup altered.
如果这步添加有错误,可以使用dd命令将磁盘头信息清除掉,通过如下方式:
dd if=/dev/zero of=/dev/sdd bs=4096 count=256  磁盘头信息大小一般是1M。
SQL> select GROUP_NUMBER,DISK_NUMBER, MODE_STATUS,HEADER_STATUS, MODE_STATUS,state,TOTAL_MB,FREE_MB,name,PATH from v$asm_disk;

GROUP_NUMBER DISK_NUMBER MODE_ST HEADER_STATU MODE_ST STATE      TOTAL_MB    FREE_MB NAME                 PATH
------------ ----------- ------- ------------ ------- -------- ---------- ---------- -------------------- ---------------
           2           2 ONLINE  MEMBER       ONLINE  NORMAL         5120       5070 DATA_DG_0002         /dev/asm-diskh
           1           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       3406 BACKUP_DG_0000       /dev/asm-diskg
           2           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       1977 DATA_DG_0000         /dev/asm-diskf
           3           0 ONLINE  MEMBER       ONLINE  NORMAL         5120       4812 SYS_DG_0000          /dev/asm-diskb
           1           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       3400 BACKUP_DG_0001       /dev/asm-diski
           2           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       5118 DATA_DG_0001         /dev/asm-diske
           3           1 ONLINE  MEMBER       ONLINE  NORMAL         5120       4812 SYS_DG_0001          /dev/asm-diskc
           3           2 ONLINE  MEMBER       ONLINE  NORMAL         5120       4810 SYS_DG_0002          /dev/asm-diskd
手动执行重平衡操作
SQL> alter diskgroup data_dg rebalance power 8;
Diskgroup altered.
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERA STAT      POWER     ACTUAL      SOFAR   EST_WORK   EST_RATE EST_MINUTES ERROR_CODE
------------ ----- ---- ---------- ---------- ---------- ---------- ---------- ----------- --------------------------------------------
           2 REBAL RUN           8          8        113       1379        626           2
SQL> select * from v$asm_operation;
no rows selected
之前power=1时候,AU/min大概是300不到,power=8的时候,AU/min达到600多,明显快了一点。

总结:向磁盘组加盘减盘是一个IO繁忙的操作,建议放在业务空闲时间来做,可以通过设置power并行来加快rebalance的速度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值