# 在所有节点执行
# 扫描新磁盘
echo "- - -" > /sys/class/scsi_host/hostX/scan # 替换X为适当值
# 验证磁盘是否可见
fdisk -l
lsblk
multipath -ll # 如果使用多路径
# 在所有节点创建相同分区
fdisk /dev/sdX # 或相应设备名
-- 连接到ASM实例
sqlplus / as sysasm
-- 检查新磁盘是否可见
SELECT name, path, state, total_mb, free_mb FROM v$asm_disk;
-- 添加磁盘到现有磁盘组
ALTER DISKGROUP DATA ADD DISK '/dev/oracleasm/disks/DISK_NAME' NAME DISK_NAME;
-- 或者创建新磁盘组
CREATE DISKGROUP NEW_DG NORMAL REDUNDANCY
DISK '/dev/oracleasm/disks/DISK1', '/dev/oracleasm/disks/DISK2';
-- 检查ASM磁盘状态
SELECT name, path, state, total_mb, free_mb FROM v$asm_disk
WHERE state != 'NORMAL';
-- 确保有足够冗余
ALTER DISKGROUP DATA DROP DISK DISK_NAME;
-- 添加新磁盘到磁盘组
ALTER DISKGROUP DATA ADD DISK '/dev/oracleasm/disks/NEW_DISK' NAME NEW_DISK_NAME;
-- 监控重平衡进度
SELECT * FROM v$asm_operation;
操作顺序:确保在所有节点上完成物理操作后再进行ASM操作
冗余检查:在删除磁盘前确认磁盘组有足够冗余
I/O影响:重平衡操作可能影响性能,考虑在低峰期执行
备份:重要操作前建议备份ASM元数据
OCR/Voting Disk:如果涉及OCR或Voting磁盘,需要特殊处理
多路径配置:确保所有路径都正确配置且均衡
权限:确认新磁盘权限正确(通常为oracle:asmadmin)
磁盘未识别:
ASM无法识别磁盘:
dd if=/dev/zero of=/dev/sdX bs=1M count=100
重平衡缓慢:
ALTER DISKGROUP DATA REBALANCE POWER 11;