使用AFD(Oracle ASM Filter Driver)来配置共享磁盘

使用AFD(Oracle ASM Filter Driver)来配置共享磁盘

1、AFD特性
* ASM FILTER DRIVER 可以最大限度的限制磁盘的用户权限,即便是root用户,也无法删除AFD磁盘
* 在ASM 12.1之后支持,在12.2中,ASMFD在系统已经安装了ASMLIB的情况下无法使用安装AFD,也不支持扩展分区表;从19c以后的版本,AFD开始支持扩展分区
* 这就是ASMFD相比ASMLIB和udev的新特性,消除了在系统每次被重启后Oracle ASM需要重新绑定磁盘,简化了对磁盘的管理等
* AFD的功能强大,可以省略掉对路径绑定,规则文件授权等,可以直接使用afd完成磁盘的绑定和设置即可
* 在安装完成后,管理磁盘,磁盘识别,绑定与添加也非常方便
* 在没有使用multipath、udev等方法绑定磁盘的情况下,也可以直接使用AFD绑定磁盘即可

2、AFD 配置
要使用AFD来配置共享磁盘,必须以root用户设置环境变量,设置环境变量 $ORACLE_HOME 为Grid Home目录,设置环境变量$ORACLE_BASE为临时目录
# export ORACLE_HOME=/u01/app/19/grid
# export ORACLE_BASE=/tmp

# asmcmd afd_label DATA_1 /dev/sdd --init -- 初始化磁盘
# asmcmd afd_lslbl /dev/sdd  -- 查看已经初始化的磁盘

已安装的GRID软件重新配置AFD
# $ORACLE_HOME/bin/asmcmd dsget        -- 查看AFD磁盘路径
# asmcmd dsset '/dev/sd*','AFD:*'   -- 配置AFD磁盘路径

AFD常用操作
是否支持扩展分区表的测试,查看当前系统内核版本是否支持
# afdroot install
# acfsdriverstate -orahome $ORACLE_HOME supported
# uname -a       
# cat /etc/redhat-release 
不支持需要升级kmod版本
# rpm -qa|grep kmod
# yum install kmod
# rpm -qa|grep kmod
升级后查看afd驱动是否支持
# acfsdriverstate -orahome $ORACLE_HOME supported

3、

<think>好的,用户的问题是关于在Oracle RAC集群中使用ASM功能进行存储替换的配置教程和最佳实践。首先,我需要回忆一下ASM(自动存储管理)在Oracle RAC中的基本作用,它主要负责管理数据库文件,提供磁盘组的管理,支持在线添加和删除磁盘,以及数据迁移等操作。存储替换可能涉及到替换旧的存储设备,添加新的磁盘组,迁移数据,然后删除旧的磁盘组。 接下来,我需要考虑用户可能的场景。用户可能正在运行一个Oracle RAC环境,需要升级存储设备,或者替换故障的存储,同时保持数据库的高可用性和在线状态。因此,解决方案需要确保在迁移过程中数据库服务不中断,数据一致性得到保证,并且操作步骤安全可靠。 我需要参考提供的引用内容。例如,引用5提到了在线添加ASM磁盘组和迁移数据文件,使用ALTER DATABASE MOVE DATAFILE命令。这应该是关键步骤之一。此外,引用3和4涉及安装和配置Oracle RAC时的步骤,比如修改参数、打补丁等,但这些可能更多是安装阶段的操作,但可能也需要在存储替换时检查相关配置是否正确,比如互信设置、补丁是否应用等。 接下来,整理操作步骤的大纲。首先应该是准备工作,包括备份、检查当前ASM配置、确保新存储可用。然后是添加新磁盘到ASM,创建新的磁盘组,或者扩展现有磁盘组。之后迁移数据到新存储,验证数据完整性,最后删除旧存储。需要注意每个步骤的命令和可能的风险点,比如在迁移过程中要确保所有实例都正常,使用RMAN备份,以及监控迁移进度。 同时需要结合最佳实践,比如在业务低峰期操作,测试迁移步骤,确保有回滚计划。可能还需要考虑ASM的重平衡操作,确保数据均匀分布,避免性能问题。另外,要检查ASM数据库的版本兼容性,是否有必要的补丁,比如引用4中提到的补丁,可能需要应用相关补丁以避免已知问题。 用户可能还需要了解如何验证每个步骤是否成功,比如查询V$ASM_DISKGROUP视图确认新磁盘组的状态,检查数据文件的位置是否已经更改,以及如何监控迁移过程中的性能影响。 需要注意的是,在ASM中添加磁盘或磁盘组可能需要特定的权限,比如grid用户的操作,因此在执行命令时要注意用户上下文,如引用1中使用oracle用户解压安装包,可能需要切换到grid用户执行ASM相关的命令。 最后,确保提供的步骤清晰,结构合理,并包含相关命令示例,如创建磁盘组、迁移数据文件、删除旧磁盘组等,同时强调备份和验证的重要性,避免数据丢失。</think>### Oracle RAC ASM存储替换配置指南 #### 一、存储替换核心步骤 1. **准备阶段** - 确认新存储设备已完成LUN映射到所有RAC节点 - 检查新存储设备权限:`ls -l /dev/mapper/asm*` 确保grid用户有读写权限[^3] - 备份关键数据: ```sql RMAN> BACKUP CURRENT CONTROLFILE; RMAN> BACKUP AS COPY DATABASE FORMAT '/backup/full_%U'; ``` 2. **添加新存储到ASM** ```sql -- 所有节点执行 su - grid asmcmd afd_scan asmcmd volcreate -G data -s 100G ASM_VOL01 ``` 3. **创建新磁盘组** ```sql CREATE DISKGROUP DATA_NEW EXTERNAL REDUNDANCY DISK 'ORCL:ASM_VOL01' ATTRIBUTE 'compatible.asm'='19.0'; ``` 4. **在线数据迁移** ```sql -- 表空间级迁移 ALTER TABLESPACE users MOVE DATAFILE '+DATA_OLD' TO '+DATA_NEW'; -- 单数据文件迁移 ALTER DATABASE MOVE DATAFILE '+DATA_OLD/mydb/datafile/users01.dbf' TO '+DATA_NEW' REUSE; ``` 5. **验证与切换** ```sql SELECT name, bytes/1024/1024 "SIZE(MB)", status FROM V$DATAFILE WHERE tablespace_name = 'USERS'; ``` 6. **旧存储清理** ```sql ALTER DISKGROUP DATA_OLD DROP DISK DATA_OLD_0001 REBALANCE POWER 11; ``` #### 二、最佳实践要点 1. **滚动操作**:逐个节点执行存储变更,保持集群可用性 2. **性能监控**:实时观察重平衡进度 ```sql SELECT * FROM V$ASM_OPERATION; ``` 3. **版本兼容性**:确保ASM版本与存储设备兼容(19c建议使用AFD特性) 4. **回退方案**:保留旧存储在线至少24小时,确认业务稳定后再清理 #### 三、常见问题处理 1. **存储路径不一致**:使用UDEV规则统一设备命名 ```shell /etc/udev/rules.d/99-oracle-asm.rules: KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c293b7b8e971d4a4bf43a010027c", SYMLINK+="asm-disk01" ``` 2. **重平衡中断**:使用`ALTER DISKGROUP ... REBALANCE RESTART`恢复操作
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ahern_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值