2 DISK ‘/dev/sdb1’, ‘/dev/sdc1’, ‘/dev/sdd1’
3 ATTRIBUTE ‘compatible.asm’ = ‘19.0.0’, ‘compatible.rdbms’ = ‘19.0.0’;Diskgroup created.
SQL> SELECT name, state, type, total_mb, free_mb FROM v$asm_diskgroup;NAME STATE TYPE TOTAL_MB FREE_MB
—————————— ———– —— ———- ———-
DATA_DG MOUNTED EXTERN 30720 30720
3.2 ASM磁盘组管理
ASM磁盘组管理操作:
SELECT name, state, type, total_mb, free_mb, required_mirror_free_mb, usable_file_mb FROM v$asm_diskgroup;– 2. 向磁盘组添加磁盘
ALTER DISKGROUP data_dg ADD DISK ‘/dev/sde1’;– 3. 从磁盘组移除磁盘
ALTER DISKGROUP data_dg DROP DISK ‘/dev/sde1’;– 4. 重命名磁盘
ALTER DISKGROUP data_dg RENAME DISK ‘/dev/sdb1’ TO ‘data_disk1’;– 5. 调整磁盘组属性
ALTER DISKGROUP data_dg SET ATTRIBUTE ‘au_size’ = ‘4M’;– 6. 卸载磁盘组
ALTER DISKGROUP data_dg DISMOUNT;– 7. 挂载磁盘组
ALTER DISKGROUP data_dg MOUNT;– 8. 删除磁盘组
DROP DISKGROUP data_dg INCLUDING CONTENTS;
3.3 ASM文件管理
ASM文件管理操作:
SELECT name, type, bytes FROM v$asm_file;– 2. 创建ASM目录
ALTER DISKGROUP data_dg ADD DIRECTORY ‘+dgdata/fgedudb/datafile’;– 3. 重命名ASM目录
ALTER DISKGROUP data_dg RENAME DIRECTORY ‘+dgdata/fgedudb/datafile’ TO ‘+dgdata/fgedudb/data’;– 4. 删除ASM目录
ALTER DISKGROUP data_dg DROP DIRECTORY ‘+dgdata/fgedudb/data’;– 5. 在ASM中创建表空间
CREATE TABLESPACE users
DATAFILE ‘+dgdata/fgedudb/datafile/users01.dbf’ SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE 1000M;– 6. 向ASM中的表空间添加数据文件
ALTER TABLESPACE users
ADD DATAFILE ‘+dgdata/fgedudb/datafile/users02.dbf’ SIZE 100M
AUTOEXTEND ON NEXT 10M MAXSIZE 1000M;– 7. 查看ASM文件的详细信息
SELECT af.name, af.type, af.bytes, adg.name AS diskgroup_name
FROM v$asm_file af, v$asm_diskgroup adg
WHERE af.group_number = adg.group_number;
Part04-生产案例与实战讲解
4.1 Oracle数据库ASM管理案例
以下是一个ASM管理的实际案例:
— 1. 检查ASM实例状态
SELECT instance_name, status FROM v$instance;– 2. 创建数据磁盘组
CREATE DISKGROUP data_dg NORMAL REDUNDANCY
FAILGROUP fg1 DISK ‘/dev/sdb1’, ‘/dev/sdc1’
FAILGROUP fg2 DISK ‘/dev/sdd1’, ‘/dev/sde1’
ATTRIBUTE ‘compatible.asm’ = ‘19.0.0’, ‘compatible.rdbms’ = ‘19.0.0’;– 3. 创建日志磁盘组
CREATE DISKGROUP log_dg NORMAL REDUNDANCY
FAILGROUP fg1 DISK ‘/dev/sdf1’, ‘/dev/sdg1’
FAILGROUP fg2 DISK ‘/dev/sdh1’, ‘/dev/sdi1’
ATTRIBUTE ‘compatible.asm’ = ‘19.0.0’, ‘compatible.rdbms’ = ‘19.0.0’;– 4. 创建归档磁盘组
CREATE DISKGROUP arch_dg EXTERNAL REDUNDANCY
DISK ‘/dev/sdj1’, ‘/dev/sdk1’
ATTRIBUTE ‘compatible.asm’ = ‘19.0.0’, ‘compatible.rdbms’ = ‘19.0.0’;– 5. 查看磁盘组信息
SELECT name, state, type, total_mb, free_mb FROM v$asm_diskgroup;– 6. 在ASM中创建表空间
CREATE TABLESPACE user_data
DATAFILE ‘+dgdata/fgedudb/datafile/user_data01.dbf’ SIZE 1000M
AUTOEXTEND ON NEXT 100M MAXSIZE 10000M;CREATE TABLESPACE index_data
DATAFILE ‘+dgdata/fgedudb/datafile/index_data01.dbf’ SIZE 500M
AUTOEXTEND ON NEXT 50M MAXSIZE 5000M;– 7. 配置数据库使用ASM存储
ALTER SYSTEM SET control_files = ‘+dgdata/fgedudb/controlfile/control01.ctl’, ‘+log_dg/fgedudb/controlfile/control02.ctl’ SCOPE=SPFILE;ALTER SYSTEM SET db_create_file_dest = ‘+dgdata’ SCOPE=SPFILE;ALTER SYSTEM SET db_create_online_log_dest_1 = ‘+log_dg’ SCOPE=SPFILE;ALTER SYSTEM SET db_recovery_file_dest = ‘+arch_dg’ SCOPE=SPFILE;– 8. 监控ASM性能
SELECT name, state, type, total_mb, free_mb, required_mirror_free_mb, usable_file_mb FROM v$asm_diskgroup;– 9. 向磁盘组添加磁盘
ALTER DISKGROUP data_dg ADD DISK ‘/dev/sdl1’;
4.2 ASM问题诊断与解决
ASM问题诊断与解决:
— 查看磁盘组状态
SELECT name, state, type, total_mb, free_mb FROM v$asm_diskgroup;– 解决方案:检查磁盘状态,确保磁盘可访问
SELECT group_number, disk_number, mount_status, header_status, state FROM v$asm_disk;– 2. ASM磁盘故障问题
— 查看磁盘状态
SELECT group_number, disk_number, mount_status, header_status, state, total_mb, free_mb FROM v$asm_disk;– 解决方案:替换故障磁盘
ALTER DISKGROUP data_dg DROP DISK ‘/dev/sdb1’;ALTER DISKGROUP data_dg ADD DISK ‘/dev/sdm1’;– 3. ASM空间不足问题
— 查看磁盘组空间使用情况
SELECT name, state, type, total_mb, free_mb, required_mirror_free_mb, usable_file_mb FROM v$asm_diskgroup;– 解决方案:添加磁盘或清理空间
ALTER DISKGROUP data_dg ADD DISK ‘/dev/sdm1’;– 4. ASM性能问题
— 查看ASM性能指标
SELECT * FROM v$asm_perfstat;– 解决方案:优化磁盘组配置,增加磁盘数量
— 5. ASM实例启动失败问题
— 查看ASM告警日志
SELECT * FROM v$diag_info;– 解决方案:检查ASM配置,确保磁盘可访问
4.3 故障排除
ASM故障排除:
— 检查磁盘状态
SELECT group_number, disk_number, mount_status, header_status, state FROM v$asm_disk;– 解决方案:修复磁盘头,重新挂载磁盘组
ALTER DISKGROUP data_dg MOUNT FORCE;– 2. ASM磁盘故障
— 查看故障磁盘
SELECT group_number, disk_number, mount_status, header_status, state FROM v$asm_disk WHERE state = ‘FAILED’;– 解决方案:删除故障磁盘,添加新磁盘
ALTER DISKGROUP data_dg DROP DISK ‘/dev/sdb1’ FORCE;ALTER DISKGROUP data_dg ADD DISK ‘/dev/sdm1’;– 3. ASM空间不足
— 查看磁盘组空间
SELECT name, total_mb, free_mb, usable_file_mb FROM v$asm_diskgroup;– 解决方案:添加磁盘或清理空间
ALTER DISKGROUP data_dg ADD DISK ‘/dev/sdm1’;– 4. ASM实例无法启动
— 启动ASM实例到nomount状态
STARTUP NOMOUNT;– 查看告警日志
SELECT * FROM v$diag_info;– 解决方案:检查ASM配置文件,确保磁盘可访问
— 5. ASM重平衡失败
— 查看重平衡状态
SELECT group_number, operation, state, power, sofar, est_work, est_rate, est_minutes FROM v$asm_operation;– 解决方案:调整重平衡功率,监控重平衡过程
ALTER DISKGROUP data_dg REBALANCE POWER 10;
Part05-风哥经验总结与分享
5.1 ASM管理最佳实践
- 根据业务需求规划合理的ASM磁盘组结构
- 使用适当的冗余级别,平衡性能和可靠性
- 定期监控ASM磁盘组的空间使用情况
- 及时添加磁盘,避免空间不足
- 定期检查ASM磁盘的健康状态
- 备份ASM配置和元数据
- 使用ASMCMD工具管理ASM文件和目录
5.2 常见问题与解决方案
- ASM磁盘组挂载失败:检查磁盘状态,确保磁盘可访问,使用FORCE选项重新挂载
- ASM磁盘故障:删除故障磁盘,添加新磁盘,启动重平衡
- ASM空间不足:添加磁盘或清理空间,监控空间使用趋势
- ASM性能问题:优化磁盘组配置,增加磁盘数量,调整重平衡功率
- ASM实例启动失败:检查ASM配置文件,确保磁盘可访问
5.3 性能优化建议
- 使用多个磁盘组,分离不同类型的数据
- 合理设置AU(Allocation Unit)大小,根据数据文件大小调整
- 使用适当的冗余级别,平衡性能和可靠性
- 定期监控ASM性能指标,及时调整配置
- 使用ASM的条带化功能,提高I/O性能
- 合理规划故障组,确保数据冗余
- 使用ASM的存储分层功能,优化存储资源利用
更多视频教程www.fgedu.net.cn
学习交流加群风哥微信: itpux-com
from oracle:www.itpux.com
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
