udev下oracle 11g RAC asm在线扩盘和删盘操作

我们都知道ORACLE在RAC的部署和安装的时候非常推荐我们使用ASM来管理存储,而非之前的裸设备和本地文件系统。原因有很多,我觉得最主要的还是ASM的易用性、性能、容错机制相对其他方式都要更优秀。
但是生产系统使用一段时间之后,经常回出现ASM没有可扩展的存储的情况,这个时候就需要在线给数据库扩存储的情况,这样的情况相信也是经常困扰dba的一项工作。
本文重点介绍使用UDEV方式在线扩ASM存储的方法和注意事项,供大家参考

1、需要存储工程师划共享磁盘到两台RAC主机

/home/oracle/Skillset/questions/Skillset3/Skillset3.html
[root@rac1 by-path]# fdisk -l
Disk /dev/sdh: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 32768 bytes / 32768 bytes
Disk identifier: 0x00000000
我这里只显示了我新加的磁盘
两个节点查看uuid
[root@rac1 by-path]# ll /dev/disk/by-id
lrwxrwxrwx 1 root root 9 Apr 11 09:51 scsi-3600507680c808021b800000000000424 -> ../../sdc
lrwxrwxrwx 1 root root 9 Apr 11 09:51 scsi-3600507680c808021b800000000000425 -> ../../sdd
lrwxrwxrwx 1 root root 9 Apr 11 09:51 scsi-3600507680c808021b800000000000426 -> ../../sde
lrwxrwxrwx 1 root root 9 Apr 11 09:51 scsi-3600507680c808021b800000000000427 -> ../../sdf
lrwxrwxrwx 1 root root 9 Apr 11 09:51 scsi-3600507680c808021b800000000000428 -> ../../sdg
lrwxrwxrwx 1 root root 9 Apr 11 09:51 scsi-3600507680c808021b800000000000429 -> ../../sdh
查看rac2节点uuid
[root@rac2 ~]# ll /dev/disk/by-id
lrwxrwxrwx 1 root root 9 Apr 11 10:46 scsi-3600507680c808021b800000000000424 -> ../../sdc
lrwxrwxrwx 1 root root 9 Apr 11 10:46 scsi-3600507680c808021b800000000000425 -> ../../sdd
lrwxrwxrwx 1 root root 9 Apr 11 10:46 scsi-3600507680c808021b800000000000426 -> ../../sde
lrwxrwxrwx 1 root root 9 Apr 11 10:46 scsi-3600507680c808021b800000000000427 -> ../../sdf
lrwxrwxrwx 1 root root 9 Apr 11 10:46 scsi-3600507680c808021b800000000000428 -> ../../sdg
lrwxrwxrwx 1 root root 9 Apr 11 10:46 scsi-3600507680c808021b800000000000429 -> ../../sdh

对比是否一致,如果一致的话,说明这个盘是共享的,没有问题。
2、配置udev
下面是添加磁盘的udev文件
vi /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="3600507680c808021b800000000000429", NAME="asm-diskh", OWNER="oracle", GROUP="dba", MODE="0660"
在两个节点分别增加这么一行
然后在两个节点分别重启udev
start_udev
检查两个节点共享磁盘是否添加到ASM里面
[root@rac1 ~]# ll /dev/asm*
brw-rw---- 1 oracle dba 8, 112 Apr 23 15:55 /dev/asm-diskh
3、在线为ASM扩磁盘
rac2:/home/oracle@grid> sqlplus / as sysasm
SQL> set lines 200 pages 1000
SQL> col PATH for a30
SQL> select group_number,path,state,total_mb,free_mb from v$asm_disk;
GROUP_NUMBER PATH STATE TOTAL_MB FREE_MB
------------ ------------------------------ ---------------- ---------- ----------
1 /dev/asm-diskg NORMAL 102400 97445
2 /dev/asm-diskh NORMAL 0 0
2 /dev/asm-diskf NORMAL 102400 38788
3 /dev/asm-diske NORMAL 10240 9932
3 /dev/asm-diskd NORMAL 10240 9930
3 /dev/asm-diskc NORMAL 10240 9932
SQL> select name,state,type,total_mb,free_mb,round(((total_mb-free_mb)/total_mb)*100,2) tbs_used from v$asm_diskgroup;
NAME STATE TYPE TOTAL_MB FREE_MB TBS_USED
------------------------------------------------------------ ---------------------- ------------ ---------- ---------- ----------
ARCH MOUNTED EXTERN 102400 97445 4.84
DATA MOUNTED EXTERN 102400 29535 71.16
OCR MOUNTED NORMAL 30720 29794 3.01

SQL> alter system set asm_power_limit=10;
System altered.
SQL> alter diskgroup data add disk '/dev/asm-diskh';
Diskgroup altered.
SQL> alter system set asm_power_limit=1;
System altered.
扩完之后,查看asm是否在动态平衡
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERATION STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES ERROR_CODE
------------ ---------- -------- ---------- ---------- ---------- ---------- ---------- ----------- ----------------------------------------------------------------------------------------
2 REBAL RUN 10 10 36430 36430 0 0
SQL> select group_number,path,state,total_mb,free_mb from v$asm_disk;
GROUP_NUMBER PATH STATE TOTAL_MB FREE_MB
------------ ------------------------------ ---------------- ---------- ----------
1 /dev/asm-diskg NORMAL 102400 97445
2 /dev/asm-diskh NORMAL 102400 65968
2 /dev/asm-diskf NORMAL 102400 65965
3 /dev/asm-diske NORMAL 10240 9932
3 /dev/asm-diskd NORMAL 10240 9930
3 /dev/asm-diskc NORMAL 10240 9932

这里有几个概念需要解释一下
ASM 实例的SGA 需要的内存很小。
当在磁盘组中添加删除磁盘时,磁盘组会自动对数据在新旧磁盘间重新分配,从而实现分散IO, 这个过程就叫再平衡(Rebalance)。在磁盘组中添加删除磁盘会在磁盘间移动数据,因此虽然是联机操作,仍然会影响部分性能,所以要在系统空闲的时候进行。
asm_power_limit 参数控制Rebalance速度, 取值范围0-11. 最小值0,代表不做Rebalance, 最大值11 代表最快的速度,也意味着严重影响性能, 1 代表最慢的速度和最小的性能影响。 其中1是默认值。
4、在线为ASM删磁盘
生产中虽然轻易对生产的磁盘做调整,但是也存在在线删ASM磁盘的需求。那么我们来测试一下,删盘是否会影响数据库的使用呢?
创建测试表 crm.obj表
rac2:/home/oracle@db> . gdenv
rac2:/home/oracle@grid> sqlplus / as sysasm
SQL> select group_number,name,path,state,total_mb,free_mb from v$asm_disk;
GROUP_NUMBER NAME PATH STATE TOTAL_MB FREE_MB
------------ ------------------------------------------------------------ ------------------------------ ---------------- ---------- ----------
1 ARCH_0000 /dev/asm-diskg NORMAL 102400 97445
2 DATA_0001 /dev/asm-diskh NORMAL 102400 65968
2 DATA_0000 /dev/asm-diskf NORMAL 102400 65965
3 OCR_0002 /dev/asm-diske NORMAL 10240 9932
3 OCR_0001 /dev/asm-diskd NORMAL 10240 9930
3 OCR_0000 /dev/asm-diskc NORMAL 10240 9932
SQL> alter diskgroup data drop disk DATA_0001;
Diskgroup altered.
这里需要注意的是要填name,不能填具体哪个磁盘。
SQL> select GROUP_NUMBER,name,state,type,total_mb,free_mb,round(((total_mb-free_mb)/total_mb)*100,2) tbs_used from v$asm_diskgroup;
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB TBS_USED
------------ ------------------------------------------------------------ ---------------------- ------------ ---------- ---------- ----------
1 ARCH MOUNTED EXTERN 102400 97445 4.84
2 DATA MOUNTED EXTERN 102400 29533 71.16
3 OCR MOUNTED NORMAL 30720 29794 3.01
SQL> select disk_number, state, name, total_mb, free_mb from v$asm_disk where group_number = 2;
DISK_NUMBER STATE NAME TOTAL_MB FREE_MB
----------- ---------------- ------------------------------------------------------------ ---------- ----------
1 DROPPING DATA_0001 102400 72948
0 NORMAL DATA_0000 102400 58985
我们可以看到这个磁盘正在被删除,因为要做动态平衡嘛,所以可以看到底下的动态平衡的过程。
SQL> select * from v$asm_operation;
GROUP_NUMBER OPERATION STATE POWER ACTUAL SOFAR EST_WORK EST_RATE EST_MINUTES ERROR_CODE
------------ ---------- -------- ---------- ---------- ---------- ---------- ---------- ----------- ----------------------------------------------------------------------------------------
2 REBAL RUN 1 1 8172 36430 3897 7
而这个过程是完全不影响用户使用数据库的,这个我在我的测试库上做了测试。
本次关于udev下扩盘和删盘的操作,我就先写这么多,希望大家补充吧!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31358702/viewspace-2153245/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31358702/viewspace-2153245/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值