ASM 磁盘组基础知识
https://cloud.tencent.com/developer/article/1494403
ASM说明
ASM:存储自动管理的一种文件系统
磁盘组把磁盘全部打散,某种意义上实现了冗余的功能有限制,一个磁盘不能超过2T,一般是1.5t一个,8-14块磁盘组成一个磁盘组
ASM磁盘组最小单元是一个块,大小是1mb
Redundancy(冗余):
high:需要5块盘,针对gird磁盘组,如果是数据磁盘组:需要3块
normal:需要3块盘,针对gird磁盘组,如果是数据磁盘组:需要2块
external:需要1块盘,针对gird磁盘组,如果是数据磁盘组:需要1块
AU Size :asm最小磁盘单元,一般选4m/8m
ASM磁盘组维护
当涉及到Oracle ASM磁盘组的维护操作时,需要非常谨慎,因为这些操作会直接影响数据库的存储和性能。以下是每个操作的更详细解释以及相应的案例:
oracleasm工具使用
#创建 Oracle ASM 磁盘
oracleasm createdisk DISK_NAME /dev/sdb1
#删除 Oracle ASM 磁盘
oracleasm deletedisk DISK_NAME
#列出 Oracle ASM 磁盘
oracleasm listdisks
#标识 Oracle ASM 磁盘
oracleasm scandisks
oracleasm markdisk DISK_NAME
#查看 Oracle ASM 配置信息
oracleasm querydisk -p DISK_NAME
[root@testos ~]# oracleasm createdisk yaokang /dev/backvg/yaokang_lv
Writing disk header: done
Instantiating disk: done
创建磁盘组:
连接asm管理命令行
su - grid
sqlplus / as sysasm
创建一个名为"DATA_DISKGROUP"的磁盘组,使用磁盘 /dev/sdb1
和 /dev/sdc1
,并使用正常冗余:
CREATE DISKGROUP DATA_DISKGROUP NORMAL REDUNDANCY
FAILGROUP fg1 DISK '/dev/sdb1' NAME disk1,
DISK '/dev/sdc1' NAME disk2;
CREATE DISKGROUP YKDG NORMAL REDUNDANCY DISK '/dev/backvg/yaokang_lv1' NAME ykdisk;
在此案例中,我们创建了一个新的磁盘组,使用了正常冗余以保障数据的冗余性。
添加磁盘到磁盘组:
向已存在的磁盘组"DATA_DISKGROUP"添加一个新的磁盘 /dev/sdd1
:
ALTER DISKGROUP DATA_DISKGROUP ADD DISK '/dev/sdd1';
此操作可以在需要更多存储容量时扩展磁盘组。
移除磁盘:
从磁盘组中移除磁盘 /dev/sdd1
:
ALTER DISKGROUP DATA_DISKGROUP DROP DISK '/dev/sdd1';
这是在磁盘故障或替换磁盘时常见的操作。
重命名磁盘:
将磁盘 /dev/sdc1
重命名为 /dev/sdc2
:
ALTER DISKGROUP DATA_DISKGROUP RENAME DISK '/dev/sdc1' TO '/dev/sdc2';
这可以在替换磁盘或更改磁盘设备时使用。
监控磁盘组状态:
查看磁盘组"DATA_DISKGROUP"的状态:
SELECT name, state FROM V$ASM_DISKGROUP;
此操作可以帮助您监视磁盘组的健康状态。
重新平衡磁盘组:
重新平衡磁盘组以在成员磁盘之间重新分配数据:
ALTER DISKGROUP DATA_DISKGROUP REBALANCE POWER 5;
这可以帮助确保磁盘组中数据的平衡分布,以提高性能。
迁移数据:
将磁盘组"DATA_DISKGROUP"中的数据从磁盘 /dev/sdb1
移动到磁盘 /dev/sdd1
:
ALTER DISKGROUP DATA_DISKGROUP MOVE DISK '/dev/sdb1' TO '/dev/sdd1';
这可以在需要重新分布数据或平衡存储负载时使用。
更改磁盘组属性:
修改磁盘组"DATA_DISKGROUP"的属性,如更改AU(Allocation Unit)大小:
ALTER DISKGROUP DATA_DISKGROUP SET ATTRIBUTE 'au_size' = '4M';
这可以根据需要优化性能或存储效率。
备份和恢复磁盘组配置:
创建磁盘组"DATA_DISKGROUP"的配置备份:
ALTER DISKGROUP DATA_DISKGROUP UNDROP INCLUDING DATAFILES;
这是为了防止误操作删除磁盘组时的恢复手段。
删除磁盘组:
删除磁盘组"DATA_DISKGROUP"(谨慎使用):
DROP DISKGROUP DATA_DISKGROUP INCLUDING CONTENTS;
删除磁盘组会导致数据丢失,只有在确保不再需要该磁盘组时才应执行。
请务必在执行这些操作之前仔细阅读Oracle官方文档,了解每个操作的影响和最佳实践。在生产环境中,建议在非高峰时段进行操作,并确保已经进行了适当的备份和计划。