Oracle数据库 ASM磁盘在线扩容

来源:这里教程网 时间:2026-03-03 18:24:14 作者:

1、背景: 本文主要记录Oracle数据库的asm磁盘组DATADG扩容步骤 不需要停数据库 2、ASM扩容前检查以及备份 (grid用户)

2.1 检查集群状态
crsctl stat res -t
crsctl query css votedisk
ocrcheck
asmcmd lsdg
2.2 ASM元数据备份
asm元数据备份
ASMCMD > md_backup /tmp/dgbackup20230224  ---备份全部磁盘元数据
2.3 检查系统网卡参数
---系统网卡配置文件
HOSTPLUG= "no"
未配置HOSTPLUG参数或者HOSTPLUG =YES的情况下,磁盘激活会导致集群服务切换。
注意:如果是使用网卡绑定,比如绑定后的网卡为bond0,则要在bond0的配置文件里添加hotplug配置信息,
在eth0里添加不起作用。
备注:如果这里网卡没有这个参数也没关系,不过后面udev 用在线生效就行

3、ASM扩容

3.1系统层面磁盘检查
在两个节点扫描磁盘命令
# for i in `find /sys/class/scsi_host/host*`; do echo '- - - ' > $i/scan; done
# ll /dev/disk/by-id  ---multipath.conf的wwid值取该命令输出scsi-的后缀值
确认2个节点都能识别到新添加的硬盘
3.2 multipath修改(2个节点)
#备份multipath.conf
cp /etc/multipath.conf  /etc/multipath.conf.bak20230224
#添加磁盘多路径 /etc/multipath.conf 
multipath {
                wwid                 14f504e46494c455246746c6c34302d61754e422d78454d36
                alias                    asmdata07
                path_grouping_policy    multibus
                path_selector           "round-robin 0"
                failback                immediate
        }
        
        
3.3 udev修改(2节点)
---备份udev配置文件
cp /etc/udev/rules.d/12-dm-permissions.rules /etc/udev/rules.d/12-dm-permissions.rules.bak20230224
---添加磁盘对应权限条目
# vi /etc/udev/rules.d/12-dm-permissions.rules
ENV{DM_NAME}=="asmdata07", OWNER:="grid", GROUP:="asmadmin", MODE:="660"
3.4 multipath和udev生效
---IO空闲时间操作
# service multipathd status
# service multipathd reload
Or
# service multipathd restart
udev在线生效
udevadm trigger --subsystem-match=block --action=add
3.5验证权限
ls -l /dev/dm*
ls -l /dev/mapper/*
3.6确认ASM实例是否识别
grid用户   sqlplus / as sysasm
#查看磁盘识别路径
show parameter asm_diskstring
#查看磁盘情况
alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';
set linesize 200
col path for a25
col name for a15
select  ad.group_number,ad.name,type,a.name,ad.total_mb d_total_mb,a.path,a.os_mb,a.total_mb,a.free_mb,a.header_status,a.create_date
from v$asm_diskgroup ad,v$asm_disk a
where ad.group_number(+)=a.group_number;
SQL> set pagesize 9999;
SQL> /
GROUP_NUMBER NAME            TYPE   NAME            D_TOTAL_MB PATH                           OS_MB   TOTAL_MB    FREE_MB HEADER_STATU CREATE_DATE
------------ --------------- ------ --------------- ---------- ------------------------- ---------- ---------- ---------- ------------ -------------------
                                                               /dev/mapper/asmdata07          20480          0          0 CANDIDATE
           1 DATADG          EXTERN DATADG_0003         122880 /dev/mapper/asmdata04          20480      20480      19680 MEMBER       2023-02-22 17:29:04
           1 DATADG          EXTERN DATADG_0004         122880 /dev/mapper/asmdata05          20480      20480      19696 MEMBER       2023-02-23 16:53:18
           1 DATADG          EXTERN DATADG_0002         122880 /dev/mapper/asmdata03          20480      20480      19696 MEMBER       2021-09-25 09:26:34
           1 DATADG          EXTERN DATADG_0000         122880 /dev/mapper/asmdata01          20480      20480      19704 MEMBER       2021-09-25 09:26:34
           1 DATADG          EXTERN DATADG_0001         122880 /dev/mapper/asmdata02          20480      20480      19696 MEMBER       2021-09-25 09:26:34
           1 DATADG          EXTERN DATADG_0005         122880 /dev/mapper/asmdata06          20480      20480      19704 MEMBER       2023-02-23 17:43:53
           2 FRADG           EXTERN FRADG_0000           10240 /dev/mapper/asmfra01           10240      10240      10108 MEMBER       2021-09-25 09:27:16
           3 MGMTDG          EXTERN MGMTDG_0000          30720 /dev/mapper/asmmgmt01          30720      30720       7056 MEMBER       2021-09-25 08:53:56
           4 OCRDG           NORMAL OCRDG_0001            3072 /dev/mapper/asmvote02           1024       1024        716 MEMBER       2021-09-25 08:48:40
           4 OCRDG           NORMAL OCRDG_0000            3072 /dev/mapper/asmvote01           1024       1024        720 MEMBER       2021-09-25 08:48:40
           4 OCRDG           NORMAL OCRDG_0002            3072 /dev/mapper/asmvote03           1024       1024        720 MEMBER       2021-09-25 08:48:40
12 rows selected.
SQL>
3.7检查ASM剩余可用空间
asmcmd lsdg
#确认磁盘有多余空间做rebalance操作
3.8 ASM扩容
grid  sqlplus / as sysasm
alter diskgroup DATADG add disk '/dev/mapper/asmdata07' rebalance power 8;
3.9检查rebalance
select * from gv$asm_operation;

4、扩容后检查

4.1检查磁盘大小
select name,total_mb,free_mb from v$asm_diskgroup_stat;
4.2检查集群状态
crsctl stat res -t
crsctl query css votedisk
ocrcheck
asmcmd lsdg
4.3检查日志

相关推荐