生产需求:ORACLE ASM磁盘组磁盘添加和替换

发布时间 2023-07-27 09:42:51作者: 寻梦99

一、背景

日常生产过程中,随着时间的推移和数据库数据量的增长,我们会遇到数据库磁盘组空间不足或者存储时间过长需要更换存储的问题,那么这篇文章就给大家介绍一下,对磁盘组进行加盘和替换的操作。如有不足欢迎大家指正。asm磁盘添加前,需要存储工程师在存储上划分好需要添加的盘,然后操作系统扫描后能识别到并写进udev配置文件里重新加载udev才能进行添加。

二、操作步骤

1.查看 ASM 磁盘使用情况

set linesize 600;
col NAME for a20;
col PCT_FREE for a30;
select GROUP_NUMBER,NAME,TYPE,STATE,total_mb/1024 total_gb,free_mb/1024 free_gb,round((free_mb/total_mb)*100,2)||'%' pct_free from v$asm_diskgroup;

image-20230727091842351

2.查看 ASM 磁盘组和 操作系统对应的磁盘名称

set  linesize 999 pagesize 100
col PATH for a33
col NAME for a15
col FAILGROUP for a15
select GROUP_NUMBER,free_mb,total_mb,FAILGROUP,disk_number,MOUNT_STATUS,mode_status,STATE,HEADER_STATUS,name,PATH from v$asm_disk order by 4,5;

image-20230727092016543

3.对磁盘组操作

(1)添加磁盘并指定平衡度命令

注意:对asm磁盘进行操作,需要使用grid的 sqlplus / as sysasm登录操作,添加的磁盘要在以上查询要能查询出来,即GROUP_NUMBER为0为系统添加的新盘。

alter diskgroup DATA add disk '/dev/mapper/data15','/dev/mapper/data16' rebalance power 10; --给磁盘组DATA 加两块儿盘,平衡度为10。

(2)查看平衡时间命令

select *  from  v$asm_operation;--无返回记录说明平衡完成。

(3)删除磁盘命令

alter diskgroup DATA  drop disk 'DATA_0000','DATA_0001','DATA_0011' rebalance power 10;

注意:删除磁盘组磁盘要写FAILGROUP名字不能写路径。

(4)磁盘组替换命令

alter diskgroup DATA  add disk '/dev/mapper/data15','/dev/mapper/data16'  drop disk 'DATA_0000','DATA_0001' rebalance power 10;--操作步骤其实就是先把盘都加进去平衡后,然后删除掉原来的盘,达到磁盘组替换的目的。

注意:根据磁盘的冗余模式(External、Normal、High)外部冗余 External 无镜像、普通冗余 Normal 1路镜像、高度冗余 High 2路镜像。判断需要添加磁盘的大小,添加磁盘总大小在冗余后要大于数据库数据量的大小。替换过程时间根据存储性能,平衡度,数据量不同,时间也不同。ocr磁盘组替换也可以如此操作。

(5)其它磁盘组操作命令

create diskgroup ARCH EXTERNAL REDUNDANCY disk '/dev/mapper/data15';--创建磁盘组
ALTER DISKGROUP DATA REBALANCE POWER 11;--调整 ASM 磁盘均衡级别