[Oracle ASM全解析]更改ASM磁盘组

2020-08-19 15:02:33 浏览数 (2)

这节讲如何修改磁盘组,主要包括:

  1. 向磁盘组增加磁盘
  2. 从磁盘组删除磁盘
  3. 调整磁盘组中磁盘的大小
  4. 取消删除磁盘组磁盘
  5. 手动重新平衡磁盘

我们可以使用alter命令来修改磁盘组,例如新增,删除,修改大小磁盘等操作,Oracle建议同一个语句中同时进行多个操作

1. 向磁盘组增加磁盘

可使用alter diskgroup的ADD子句新增磁盘

注意:新增加的磁盘不能属于其他磁盘组

1.1 使用通配符进行添加

ALTER DISKGROUP dgroup1 ADD DISK '/devices/diskd*' REBALANCE POWER 5 WAIT;

1.2 手动指定各个磁盘

ALTER DISKGROUP dgroup1 ADD DISK '/devices/diska5' NAME diska5, '/devices/diska6' NAME diska6, '/devices/diska7' NAME diska7, '/devices/diska8' NAME diska8,

1.3 使用force强制增加磁盘

force参数在如下情形使用:

  • 新增加的磁盘属于一个已经不存在的磁盘组时
  • 如新磁盘在正常的磁盘组,则增加后该磁盘组将无法mount

ALTER DISKGROUP dgroup2 ADD DISK '/devices/diskc3' FORCE;

1.4 指定故障组

默认情况下会将每个磁盘划入各自的故障组

alter diskgroup DG2 add failgroup FG1 disk '/dev/oracleasm/disks/VOL7' add failgroup FG2 disk '/dev/oracleasm/disks/VOL8' add failgroup FG3 disk '/dev/oracleasm/disks/VOL9';


2. 删除磁盘组的磁盘

可使用alter diskgroup的DROP 子句新增磁盘

使用force参数强制删除磁盘,即使ASM不能识别或写入该磁盘

2.1 删除磁盘组磁盘

ALTER DISKGROUP dgroup1 DROP DISK diska5;

2.2 删除并新增另外一个磁盘

ALTER DISKGROUP dgroup1 DROP DISK diska5 ADD FAILGROUP failgrp1 DISK '/devices/diska9' NAME diska9;

3. 修改磁盘组磁盘大小

可使用alter diskgroup的resize子句做如下操作:

  • 更改磁盘组中所有磁盘的大小
  • 更改制定磁盘的的大小
  • 更改制定故障组内所有磁盘的大小

ALTER DISKGROUP dgroup1 RESIZE DISKS IN FAILGROUP failgrp1 SIZE 100G;

如果不指定size参数,将设置为系统识别到的大小

上面的语句修改dgroup1磁盘组的failgrp1故障组所有磁盘的大小为100G

4. 取消删除磁盘

可以使用ALTER DISKGROUP 的 UNDROP DISKS 字句来取消挂起状态的删除磁盘动作

如果drop动作已经完成或者使用了force命令删除磁盘,则无法使用取消

ALTER DISKGROUP dgroup1 UNDROP DISKS;

5. 手动磁盘重平衡操作

ASM会在磁盘组配置更改后自动进行平衡,默认情况下更改命令会立即返回成功

我们可以使用wait参数使其等到重新平衡完成后才返回成功,这个在脚本中会比较有用

如果在ALTER DISKGROUP 没有指定POWER参数,则POWER值由ASM_POWER_LIMIT参数指定

其取值范围从0到11

为0表示不会自动平衡,需要手动输入命令平衡

越高重平衡速度越快但也越耗资源

我们可以使用如下语句手动进行平衡

ALTER DISKGROUP dgroup2 REBALANCE POWER 5 WAIT;

如指定wait参数则可以使用ctrl c组合键取消

可以通过V$ASM_OPERATION 视图查看平衡操作

好了,这节讲了磁盘组的更改命令,下节ASM 磁盘的发现

0 人点赞