创建磁盘组
Create diskgroup

使用create diskgroup语句创建磁盘组,在创建ASM磁盘组时:

1、需要指定磁盘组的名字,大小写不敏感,小写自动转为大写,但是注意最好不要使用双引号。

2、设置冗余级别NORMAL REDUNDANCY、HIGH REDUNDANCY、 EXTERNAL REDUNDANCY

默认为NORMAL,因此需要指定至少2块磁盘,多于2块也是NORMAL。

3、指定的磁盘必须在asm_diskstring指定的路径内,另外,可以使用NAME设置磁盘名称

4、可选的,设置AU、secto_size等

5、不能添加正被其他磁盘组使用的磁盘,曾经被其他磁盘组使用过并force drop的磁盘必须使用FORCE选项添加到新的磁盘组,并且会导致原来的磁盘组不可用。

6、自动更新SPFILE的ASM_DISKGROUPS参数,如果使用pfile,则需要手工更新。

Ø 举例:

CREATE DISKGROUP data NORMAL REDUNDANCY

FAILGROUP data1 DISK

‘/dev/diska1′ NAME diska1,

‘/dev/diska2′ NAME diska2,

FAILGROUP data2 DISK

‘/dev/diskb1′ NAME diskb1,

‘/dev/diskb2′ NAME diskb2,

ATTRIBUTE ‘au_size’='4M’,

‘compatible.asm’ = ‘11.2′,

‘compatible.rdbms’ = ‘11.2′,

‘compatible.advm’ = ‘11.2′;

设置allocation unit(AU)

ASM的内容存放在一组extents里,一个extent的大小时AU的1倍、4倍、16倍。

11.1以上兼容性的ASM磁盘组里,extent的大小分配规则为:

第1-19999个extent的大小等于AU的大小;

第20000-39999个extent的大小等于4倍的AU的大小;

第40000+的extent的大小等于16倍的AU的大小;

AU的大小默认为1M,对于大型数据库,Oracle建议将AU的大小设置为4M,这要求操作系统的IO设置的要足够大,设置AU为4M有以下优点:

1、增大IO

2、降低用于管理extent map的数据库实例的SGA大小

3、在创建数据文件时,速度加快

4、增加文件的最大限制

5、降低数据库打开时间

为了充分利用4M au的优势,需要调整 数据库实例的DB_FILE_MULTIBLOCK_READ_COUNT初始化参数,默认为1M,调整到4M,在生产系统调整该参数前需要充分的测试。

DB_FILE_MULTIBLOCK_READ_COUNT是动态参数。

FAILGROUP_TYPE

1、FAILGROUP有两种类型,默认是regular,另外一种是quorum

2、quorum类型的FAILGROUP不能存放数据库相关文件,一般用于存放OCR和voting files。

3、quorum类型的FAILGROUP不计入冗余

4、在CREATE\ALTER DISKGROUP语句中使用quorum关键词指定失败组的类型,在使用FAILGROUP关键词时,放在FAILGROUP之前,未使用FAILGROUP关键词时,放在DISK关键词之前。

5、v$asm_disk和v$asm_disk_stat中得FAILGROUP_TYPE显示失败组的类型

ALTER 磁盘组
Rebalance

磁盘组在保持ONLINE状态下可以进行ADD、DROP、RESIZE操作,而不影响数据库运行,自动的rebalance会再后台运行,可以使用v$asm_operation检查状态。默认情况下,执行ALTER语句不会等待rebalance完成就返回信息,需要使用rebalance wait子句使SQL命令等待rebalance完成再返回成功信息,在等待时可以使用crtl+c取消等待,但是这并不会取消后台的rebalance。

使用rebalance power子句设置rebalance的级别,0-11,如果不显示指定rebalance power,则使用初始化参数 ASM_POWER_LIMIT的值,该参数默认为1.

除了磁盘组配置改变引起的自动rebalance外,还可以手动rebalance,使用如下语句:

Ø alter diskgroup DATA rebalance [power n];

power级别可以动态修改,改为0则挂起当前rebalance。

关闭ASM实例不会停止rebalance。

Add disk

Ø alter diskgroup xue2 add failgroup fail1 disk ‘/dev/sdl11′;

Ø alter diskgroup xue2 add disk ‘/dev/sdl*’;

Ø alter diskgroup xue2 add disk ‘/dev/sdl11′ force;

1、磁盘必须在asm_diskstring的路径下,如果不在,则需要将磁盘所在路径添加到asm_diskstring中,例如:

alter system set asm_diskstring=’/ocrvote3*’,'/dev/asm*’,'/dev/sdl*’;

2、磁盘不能被其他磁盘组使用,否则会添加失败,如果磁盘属于一个dismount的磁盘组,那么可以使用force子句强制将该磁盘添加到其他磁盘组,但是这会导致原属的磁盘组无法再mount。

3、确保磁盘的权限正确,一般为grid:asmdba和660

Drop disk

Ø alter diskgroup XUE2 drop disk XUE2_0002;

Ø alter diskgroup XUE2 drop disk XUE2_0002 force;

1、如果没有使用wait子句,那么drop磁盘后,语句直接返回‘Diskgroup altered’,这时不应该马上移动这个磁盘,因为后台还在rebalance,需要监控v$asm_operation视图确定rebalance完成后再处理磁盘。

2、external级别的磁盘组不允许drop disk

Resize disk

Ø alter diskgroup xue2 resize disk XUE2_0004 SIZE 100M;

Ø alter diskgroup xue2 resize disks in failgroup XUE2_0001;

1、如果是减小磁盘大小,需要保证减小后的磁盘空间能够完成rebalance。

Undrop disk

取消drop一个磁盘组中所有正被drop或等待drop的磁盘

Ø alter diskgroup xue2 undrop disks;

1、无法取消force drop的磁盘

2、无法取消通过drop diskgroup语句drop的磁盘




Related posts

coded by nessus
分享:  DeliciousGReader鲜果豆瓣CSDN网摘
Trackback

no comment untill now

Add your comment now

无觅相关文章插件