RAC维护手记05-ASM磁盘组管理

本文详细介绍了Oracle ASM(Automatic Storage Management)的磁盘组管理,包括创建、添加、删除磁盘,调整磁盘组大小,挂载与卸载,以及在rebalance过程中的功率调整等关键操作。通过具体的SQL命令示例,阐述了如何高效管理ASM磁盘组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1           磁盘组管理

1.1.1        创建磁盘组

如存在磁盘LUNs:

/dev/rhdisk11

/dev/rhdisk12

/dev/rhdisk13

/dev/rhdisk14

创建一个EXTERNAL REDUNDANCY的磁盘组DGDATA:

SQL>CREATE DISKGROUP DATA EXTERNAL REDUNDANCY

DISK  '/dev/rhdisk11',

'/dev/rhdisk12',

'/dev/rhdisk13',

'/dev/rhdisk14'

ATTRIBUTE 'au_size'='4M',        <-仅11gR2有效

'compatible.asm' = '11.2',

'compatible.rdbms' = '11.2',

'compatible.advm' = '11.2';              <-仅11gR2有效

在创建磁盘组中的示例时,显式设置下列磁盘组属性的值:

l  AU_SIZE

指定磁盘组的分配单元的大小。 您可以在视图V$ASM_DISKGROUP的ALLOCATION_UNIT_SIZE列查看磁盘组属性的AU_SIZE值。仅11gR2版本有效,在分配大的存储空间时指占大的分配单元大小。

l  COMPATIBLE.ASM

指定使用磁盘组的Oracle ASM实例软件的最低版本。

l  COMPATIBLE.RDBMS

指定使用磁盘组数据库实例RDBMS软件的最低版本

l  COMPATIBLE.ADVM

磁盘组COMPATIBLE.ADVM属性确定磁盘组可以包含Oracle ASM卷的版本。 该值必须设置为11.2或更高。 设置该属性之前,COMPATIBLE.ASM值必须为11.2或更高。

1.1.2        向磁盘组添加新的磁盘

假定/dev目录中发现以下磁盘的磁盘标识:

/dev/rhdisk13 -- member of DISKGROUP DATA

/dev/rhdisk14 -- member of DISKGROUP DATA

/dev/rhdisk3 -- member of DISKGROUP DATA

/dev/rhdisk4 -- member of DISKGROUP DATA

/dev/rhdisk5 -- candidate disk

/dev/rhdisk6 -- candidate disk

/dev/rhdisk7 -- candidate disk

/dev/rhdisk8 -- candidate disk

/dev/rhdisk9 -- member of DISKGROUP DATA

/dev/rhdisk10 -- member of DISKGROUP DATA

/dev/rhdisk11 -- member of DISKGROUP DATA

/dev/rhdisk12 -- member of DISKGROUP DATA

用下列命令将rhdisk5~8添加到磁盘组DISKGROUP DATA:

SQL>ALTER DISKGROUP DATA ADD DISK

'/dev/rhdisk5',

'/dev/rhdisk6',

'/dev/rhdisk7',

'/dev/rhdisk8'

REBALANCE POWER 5 WAIT;

 

1.1.3        从磁盘组删除磁盘

 从磁盘组DISKGROUP DATA中删除/dev/rdisk5:

Select name from v$asm_disk_stat where path=’ /dev/rdisk5’;

Name

------------------

disk5

SQL> ALTER DISKGROUP DATA DROP DISK disk5;

ALTER DISKGROUP..DROP DISK命令在drop和rebalance操作完成之前返回SQL提示符。 在已删除的磁盘在V$ASM_DISK/ v$asm_disk_stat的HEADER_STATUS列状态为FORMER前不能重复使用、再删除或从操作系统删除此磁盘。 你可以查询V$ASM_OPERATION视图确定drop rebalance操作完成剩余时间量。

1.1.4        删除磁盘组

默认只能删除没有存放任何文件的磁盘组,如果磁盘组包今任何文件,会报如下错:

SQL> drop diskgroup data;

drop diskgroup data

*

ERROR at line 1:

ORA-15039: diskgroup not dropped

ORA-15053: diskgroup "DATA" containsexisting files

1.1.5        Resize磁盘大小

ALTER DISKGROUP RESIZE语句允许执行以下操作:

l  Resize all disks in the disk group

l  Resize specific disks

l  Resize all of the disks in a specified failure group

如果您没有在SIZE子句中指定一个新的大小,那么Oracle ASM使用操作系统返回的大小作为磁盘的大小。 如果磁盘的大小增加,新增的大小信息写入到Oracle ASM磁盘头后,新的空间则立即可供分配。 如果大小减少,必须重新定位文件rebalance区的新大小以外的可用空间。 如果rebalance操作可以成功地重新定位所有的区,然后新的大小更改是生效的,否则调整将失败。

下面的示例中的调整磁盘组DATA磁盘data002。 如果新的大小大于磁盘容量,该语句将失败。

SQL>ALTER DISKGROUP DATA RESIZE DISKS data002 SIZE 100G REBALANCE POWER 8;

1.1.6        Undropping Disks in Disk Groups

ALTER DISKGROUP UNDROP DISKS语句允许取消磁盘组的未决删除磁盘操作(磁盘状态在droping)。如果一个磁盘删除操作已完成,则此语句不能用于还原它。 此语句不能用于恢复被Drop DISKGROUP语句删除的磁盘,或被删除的磁盘使用了force子句。但可以对force删除的磁盘,其名称显示为类似_DROPPED_000_SYS,磁盘头具体信息已经清除的磁盘,其对应记录已经能够正常显示(即有两条记录,一条为_DROPPED_000_SYS,一条正常),使用下面命令可以清除其错误显示。 下面的示例取消DISKGROUP DATA从磁盘组中删除的磁盘:

ALTER DISKGROUP DISKGROUP DATA UNDROP DISKS;

 

1.1.7        挂载和卸载磁盘组

ASM_DISKGROUPS初始化参数中指定的磁盘组在Oracle ASM实例启动时自动装载。 这使它们可用于在同一节点上运行Oracle ASM的所有数据库实例在。 在Oracle ASM实例关闭磁盘组被卸载。 Oracle ASM也在创建时自动挂载新创建的磁盘组;如果你删除磁盘组,Oracle ASM实例自动卸载磁盘组。

你还可以通过ALTERDISKGROUP  MOUNT或ALTER DISKGROUPDISMOUNT手工挂载或卸载磁盘组,你可以指定磁盘组的名字或用ALL指定所有磁盘组。

将当前所有的磁盘组DISMOUNT:

ALTER DISKGROUP ALL DISMOUNT;

MOUNT磁盘组DISKGROUP DATA:

ALTER DISKGROUP DISKGROUP DATA MOUNT;

1.1.8        在磁盘组rebalance开始之后更改rebalancing power

ASM rebalance power初始化参数ASM_POWER_LIMIT缺省值为1。设置为较高的值可以更快地完成磁盘组的rebalance,但为占用更多的I/O和CPU资源;设置为较低的值需要更长时间来完成rebalance操作,但是可以占用较少的I/O和CPU资源。

你可以动态地修改这个参数,但是他只影响修改参数值以后的rebalance操作,而不能影响正在进行的rebalance操作。已经开始的rebalance操作要修改rebalance power进程数量,可以能过以下命令:

SQL> ALTER DISKGROUP <disk group name> REBALANCE[POWER n];

例如:

SQL> ALTER DISKGROUP DATA ADD DISK

   '/dev/rhdisk10',

   '/dev/rhdisk11',

'/dev/rhdisk12';

 

Diskgroup altered.

       查看v$asm_operation视图:

SQL> select * from v$asm_operation;

    

查看ASM alert.log日志:

Fri Dec 12 16:55:08 2012

NOTE: starting rebalance of group 1/0x8c6014a7(DATA) at power 1

Starting background process ARB0

ARB0 started with pid=14, OS id=316

Fri Dec 12 16:55:08 2012

NOTE: assigning ARB0 to group 1/0x8c6014a7(DATA)

接着执行:

SQL> ALTER DISKGROUP DATA REBALANCE POWER 8;

 

Diskgroup altered.

 

运行上行命令后,正在执行的rebalance进程将停止,接着会根据power子句指定的进程数创建新的rebalance进程。

查看v$asm_operation

可以查看到在做rebalance时变成了power 8。

在ASM alert.log也有新的提示:

NOTE: stopping process ARB0

Fri Dec 12 16:55:11 2012

NOTE: rebalance interrupted for group 1/0x8c6014a7(DATA)

Fri Dec 12 16:55:11 2012

NOTE: PST update: grp = 1

NOTE: requesting all-instance PST refresh for group=1

Fri Dec 12 16:55:11 2012

NOTE: PST refresh pending for group 1/0x8c6014a7(DATA)

SUCCESS: refreshed PST for 1/0x8c6014a7(DATA)

Fri Dec 12 16:55:14 2012

NOTE: starting rebalance of group 1/0x8c6014a7(DATA) at power 8

Starting background process ARB0

Starting background process ARB1

ARB0 started with pid=14, OS id=1628

Fri Dec 12 16:55:15 2012

Starting background process ARB2

ARB1 started with pid=15, OS id=1920

Fri Dec 12 16:55:15 2012

Starting background process ARB3

ARB2 started with pid=16, OS id=1964

Fri Dec 12 16:55:15 2012

Starting background process ARB4

ARB3 started with pid=17, OS id=1664

Fri Dec 12 16:55:15 2012

Starting background process ARB5

ARB4 started with pid=18, OS id=1836

Fri Dec 12 16:55:15 2012

Starting background process ARB6

ARB5 started with pid=19, OS id=1972

Fri Dec 12 16:55:15 2012

Starting background process ARB7

ARB6 started with pid=20, OS id=1800

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值