管理ASM磁盘组-2

向磁盘组添加磁盘
当发生添加/删除磁盘组中的磁盘操作时,ASM能够自动平衡。
普通的删除操作(无FORCE)选项,被删除的磁盘上面的数据在被有效处理前并不会立即释放。
新增磁盘时,在重新平衡完成前,该盘也不会比承担I/O的负载。  添加磁盘在数据库不忙的时候添加
使用V$ASM_OPERATION视图查询相关状态。
ALTER DISKGROUP语句附加REBALANCE WAIT子句,这样该语句会等再平衡操作,直至所有操作完成才返回结果,在等待期间,使用CTRL+C可以取消终端的等待,平衡操作不受影响,在后台继续进行。

向磁盘组添加磁盘
使用搜索通配符可以使ASM在提供的路径及通配符规则下自动搜索可用磁盘(具有读取权限的RAW),并将该磁盘添加到目标磁盘组。
ASM会自动检测出符合通配符,且没有包含在任何一个磁盘组的可用磁盘(每个已经加入磁盘组的磁盘的标头都有ASM元数据信息)。

ASM确保磁盘是可寻址,可用的之后,对磁盘进行格式化的重新平衡。
在平衡期间,会将所有的文件的区移至新磁盘。
在平衡不会阻止任何数据库操作。在平衡过程主要影响系统的I/O负载。
在平衡能力越高,对系统的I/O施加的负载越多,可用于数据库的I/O带宽就越少
加磁盘 选择数据库负载较低的时间操作
SQL> alter diskgroup test add disk     添加磁盘组
  2  '/dev/raw/raw15';

Diskgroup altered.

其它ALTER命令
ALTER DISKGROUP droupA DROP DISK  ;
从磁盘组中删除磁盘
命令执行后,会自动执行在平衡
当删除磁盘时,ASM发现平衡不过来时(比如剩下的磁盘空间不足以存放所有数据)删除操作会失败。这种情况要么先删除数据在删除磁盘,要么取消磁盘删除的操作。

ALTER DISKGROUP dgroupA UNDROP DISKS;
取消磁盘删除操作
只要删除操作还没有真正完成,就可以取消删除磁盘组的操作
UNDROP命令仅对磁盘暂挂删除操作起作用,对已经完成的删除操作没有影响。
SQL> alter diskgroup test              
  2  drop disk 'test_0004'                    删除一块磁盘组
  3  add disk '/dev/raw/raw16';               添加一块磁盘组

Diskgroup altered.

创建新目录
alter diskgroup asmdisk2 add directory'+ASMDISK2/JSS1';
修改目录名
alter diskgroup asmdisk2 rename directory '+ASMDISK2/JSS1' to '+ASMDISK2/JSS2';
删除目录名
alter diskgroup asmdisk2 drop directory '+ASMDISK2/JSS2';
也可以使用ASMCMD命令行方式进行。
OEM管理ASM  
ASM的兼容性
防止不同版本的数据库使用同一组磁盘 造成的不兼容
ASM兼容性控制磁盘上ASM元数据结构
ASM实例  数据库 磁盘组 都有一个兼容性 三者存在一定的关系才能保证数据库的正常
ASM磁盘组属性
ATTRIBUTE 'compatible.asm'='11.2'  代表使用的ASM实例版本必须大于11.2
用ASMCMD 查询更方便
ASM磁盘离线了  哪个盘离线了把哪个盘DROP掉新建新磁盘

SQL> select name,compatibility,database_compatibility from v$asm_diskgroup where name='TEST';

NAME                           COMPATIBILITY                                                DATABASE_COMPATIBILITY
------------------------------ ------------------------------------------------------------ ------------------------------------------------------------
TEST                           10.1.0.0.0                                                   10.1.0.0.0

SQL> alter diskgroup test set attribute 'compatible.asm'='11.2.0.0.0';   修改兼容性版本

Diskgroup altered.

SQL> alter diskgroup test set attribute 'compatible.rdbms'='11.2.0.0.0';

Diskgroup altered.

SQL> select name,compatibility,database_compatibility from v$asm_diskgroup where name='TEST';

NAME                           COMPATIBILITY                                                DATABASE_COMPATIBILITY
------------------------------ ------------------------------------------------------------ ------------------------------------------------------------
TEST                           11.2.0.0.0                                                   11.2.0.0.0

模拟离线  no repair time  offline  

SQL> select  name,path from v$asm_disk order by 1,2;

NAME                           PATH
------------------------------ ------------------------------
DATA_0000                      /dev/raw/raw1
DATA_0001                      /dev/raw/raw2
DATA_0002                      /dev/raw/raw3
DATA_0003                      /dev/raw/raw4
FLA_0000                       /dev/raw/raw5
FLA_0001                       /dev/raw/raw6
FLA_0002                       /dev/raw/raw7
FLA_0003                       /dev/raw/raw8
TEST_0005                      /dev/raw/raw16
TEST_1                         /dev/raw/raw11
TEST_2                         /dev/raw/raw12

NAME                           PATH
------------------------------ ------------------------------
TEST_3                         /dev/raw/raw13
TEST_4                         /dev/raw/raw14
                               /dev/raw/raw15
                               /dev/raw/raw17
                               /dev/raw/raw18

16 rows selected.

SQL> alter diskgroup test  offline disk TEST_0005 drop after 0 h;   只是从磁盘组里删除,磁盘里的数据没有被删除,磁盘里还有磁盘组的元数据,加不回来这个磁盘了

Diskgroup altered.

SQL> select name,repair_timer,state from v$asm_disk_stat;    查看磁盘的状态

NAME                           REPAIR_TIMER STATE
------------------------------ ------------ --------
DATA_0001                                 0 NORMAL
DATA_0003                                 0 NORMAL
FLA_0001                                  0 NORMAL
DATA_0000                                 0 NORMAL
FLA_0000                                  0 NORMAL
FLA_0002                                  0 NORMAL
DATA_0002                                 0 NORMAL
FLA_0003                                  0 NORMAL
TEST_2                                    0 NORMAL
TEST_4                                    0 NORMAL
TEST_1                                    0 NORMAL

NAME                           REPAIR_TIMER STATE
------------------------------ ------------ --------
TEST_3                                    0 NORMAL

12 rows selected.
SQL> !
[oracle@oel ~]$ dd if=/dev/zero of=/dev/raw/raw16 bs=1M count=10;  把其格式化
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.0278082 seconds, 377 MB/s

exit

SQL> alter diskgroup test add disk '/dev/raw/raw16' name test_0005;

Diskgroup altered.

raw16这块盘只要一离线就加不回来了,离线后无法在直接回归。
离线在平衡  加回来还需要在平衡

模拟oralce 11g
SQL> alter diskgroup test offline disk test_0005 drop after 3.6h;

Diskgroup altered.

SQL> select name,path from v$asm_disk  order by 1,2;

NAME                           PATH
------------------------------ ------------------------------
DATA_0000                      /dev/raw/raw1
DATA_0001                      /dev/raw/raw2
DATA_0002                      /dev/raw/raw3
DATA_0003                      /dev/raw/raw4
FLA_0000                       /dev/raw/raw5
FLA_0001                       /dev/raw/raw6
FLA_0002                       /dev/raw/raw7
FLA_0003                       /dev/raw/raw8
TEST_0005
TEST_1                         /dev/raw/raw11
TEST_2                         /dev/raw/raw12

NAME                           PATH
------------------------------ ------------------------------
TEST_3                         /dev/raw/raw13
TEST_4                         /dev/raw/raw14
                               /dev/raw/raw15
                               /dev/raw/raw16
                               /dev/raw/raw17
                               /dev/raw/raw18

17 rows selected.

SQL> alter diskgroup test online disk test_0005;

Diskgroup altered.

可以直接把临时离线的文件加回来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值