ASM笔记3--磁盘组管理的操作



2.4.2 如何创建ASM Disk Groups?
2.4.2.1 创建语法说明
可以使用CREATE DISKGROUP语句来创建diskgroup。
在使用sql 创建的时候,还可以指定如下属性:
(1) 指定disk group 的唯一名称
disk group 的名称不区分大小写,并且在内部存储的时候,总是转换成大写。
oracle 不建议对disk group 名称中使用标识符,如果要使用,就必须使用引号括起来。这样在创建的时候是有效的,但是可能用其他工具来管理时,名称就会无效了。

(2)指定disk group 的冗余级别
对于ASM 的镜像冗余,可以指定3种类型:
normal redundancy: 2-way mirroring
high redundancy:3-way mirroring
external redundancy: 使用外部的冗余

(3)指定哪些disk 属于我们的创建的disk group

以上三个选项是必须写的

(4)指定哪些disk 属于failure group
我们在创建disk group 的时候也不指定failure group,那么就是disk 作为自己的failure。

(5)指定disk group 的一些属性,如软件兼容性或者AU_SIZE 等。
Oracle ASM 会计算每个disk 的大小。 如果某些原因不能计算,或者我们想限制asm 对disk上空间的使用,可以通过SIZE 参数来指定每个disk 的大小。

(6) quorum 属性
A quorum failure group is a special type of failure group and disks in these failure groups do not contain user data and are not considered when determining redundancy requirements.
勾选了就不能存放用户数据了
quorum 属性是在oracle 11gR2 中才有的,因此如果想启动这个属性,必须设置compatible.asm 大于11.2.
我们也可以通过v$asm,v$asm_disk,v$asm_disk_stat 视图来查看磁盘组的FAILGROUP_TYPE属性,该属性就有QUORUM和 REGULAR 2个关键字。

2.4.2.2 创建disk group 示例
show parameter asm_diskstring
[root@asm ~]# ll /dev/asm*
--手动创建
create diskgroup dave normal redundancy
  failgroup fg1 disk
'/dev/asm-disko' name dave_fg1
  failgroup fg2 disk
    '/dev/asm-diskm' name dave_fg2
  attribute 'au_size'='4M',
    'compatible.asm' = '11.2',
'compatible.rdbms' = '11.2';

2.4.2.3 验证Normal 冗余的disk group extent是如何存放的?
Oracle 有一个数据字典可以查看到数据的分布情况:x$kffxp。 通过这个数据字典,可以确定ASM中每个文件的每个extent在disk上的mapping关系。
我们关系x$kffxp 这个数据字典的如下字段:
NUMBER_KFFXP:对应v$asm_file.FILE_NUMBER
XNUM_KFFXP:   ASM文件的extent号。如果我们设定normal redundancy,那么一个extent会出现两份。high则出现三份。
DISK_KFFXP:对应v$asm_disk.DISK_NUMBER
LXN_KFFXP:0-&get;primary extent,
 1-&get;mirror extent,
2-&get;2nd mirror copy (high redundancy and metadata)
--
oracle 用户的sqlplus 下执行
create tablespace dave  datafile '+dave' size 24M;
grid 用户
asmcmd lsof

select number_kffxp,disk_kffxp disk#,
xnum_kffxp extent#,
case lxn_kffxp
  when 0 then 'Primary Copy'
  when 1 then 'Mirrored Copy'
  when 2 then '2nd Mirrored Copy or metadata'
  else 'Unknown' end type
from x$kffxp
where
number_kffxp=256
and xnum_kffxp!=65534
and disk_kffxp!=65534
and group_kffxp = 3
order by 3,4;

--其中
number_kffxp=256  (256是文件类型)
and group_kffxp = 3 (3是磁盘组号)

select group_number,disk_number,total_mb,name,failgroup,path from v$asm_disk where group_number=3;

2.4.3 如何修改Disk Groups 配置?
在创建完diskgroup之后,我么可以使用alter diskgroup 与来修改disk group的配置。我们可以在数据库online的状态下add,resize, drop disk。

2.4.3.1 如何向disk group中添加disk?
create diskgroup anqing normal redundancy  disk '/dev/asm-diskp', '/dev/asm-diskn';
alter diskgroup anqing add disk  '/dev/asm-diskl';   --不指定failgroup
2.4.3.1.2 向DAVE diskgroup 中添加disk
alter diskgroup dave add FAILGROUP FG1 disk '/dev/asm-diskj';  --指定failgroup

2.4.3.1.3 指定rebalance 速度并等待rebalance 操作
--rebalance
alter diskgroup anqing add disk  '/dev/asm-diskl' rebalance power 5 wait; --加wait就是等操作完成才能执行下一个命令,不加wait就是后台操作

2.4.3.1.4 将drop 的disk 添加到diskgroup中
alter diskgroup dave offline disk DAVE_0002 drop after 0m;  --0m代表不等待rebalance
alter diskgroup FRA add disk '/dev/asm-diskk' force;

2.4.3.2 如何从disk group中drop disk?
2.4.3.2.1 理论知识说明
可以直接drop 掉diskgroup中的disk或者failgroup中的disk。
当我们drop disk的时候,disk group会执行rebalance的操作,把待drop disk上的数据移动到其他的disk上。
如果在移动的过程中没有足够的空间来转移数据,那么drop 操作就会失败。
alter diskgroup drop disk 语句在drop 和rebalance 操作完成之前就会返回到SQL 界面。 但实际上我们的整个操作还没有完成。 我们必须等待整个操作完成以后才可以reuse,remove,disconnect drop disk。
--查磁盘情况看rebalance有没有完成,v$asm_disk的HEADER_STATUS 变成former说明成功了
select header_status,group_number,disk_number,path from v$asm_disk;
或者查看v$asm_operation 视图,确定drop 或者rebalance 操作的剩余时间。
如果我们在drop disk时指定force 选项,那么即使ORACLE ASM 不能访问这个disk,也可以把这个disk 删除掉。 但是force 只能只能争对normal 和high 冗余的disk group。 如果是external 冗余的,是使用不了的。

2.4.3.2.2 drop 掉DAVE  这个diskgroup Failure group 下的DAVE_0003 这个disk
alter diskgroup dave drop disk dave_0003;
--跟踪状态:
select * from v$asm_operation;
select header_status,group_number,disk_number,path from v$asm_disk;

2.4.3.2.3 drop掉anqing 这个disk的ANQING_0003 和ANQING_0002 disk
alter diskgroup anqing drop disk anqing_0003,anqing_0002;
--确认操作完成:
select header_status,group_number,disk_number,path from v$asm_disk;

2.4.3.2.4 在drop 的同时添加disk

alter diskgroup fra add disk '/dev/asm-diskj' drop disk '/dev/asm-diskk'; --错误
alter diskgroup fra add disk '/dev/asm-diskj' drop disk FRA_0002;   --正确

---总结-----
1. 创建disk groups
2. 加disk
3. drop disk

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值