HBA卡无法真正在线更换,所谓“在线”实为最小停机窗口下的可控切换;必须先停CRS再执行powermt renamepseudo,否则触发ORA错误、设备忙或ASM挂载失败;需通过Logical device ID而非伪设备名或sdX序号确认LUN逻辑一致性;asm_diskstring须精确配置,扫描后需手动rescan并验证磁盘状态;OCR与Voting Disk迁移是强制前置动作,不可跳过。
不能直接在线更换 hba 卡——哪怕用了 powerpath 或 multipath,hba 物理层断连必然导致路径瞬时丢失,asm 会触发 disk heartbeat timeout,进而引发 voting disk 不可用、cssd 挂起、crs-0184 报错。所谓“在线”,实际是「最小停机窗口下的可控切换」,核心靠多路径重映射 + asm disk string 稳定性保障。
为什么 powermt renamepseudo 必须在 CRS 停止后执行
PowerPath 的伪设备名(如
)被 ASM 的
直接引用。CRS 运行时,
和
会持续监控底层设备状态;若此时用
强制修改正在被 ASM 使用的设备别名,会出现:
或
PowerPath 内部设备锁未释放,
失败并报
即使重命名成功,ASM 实例重启后仍可能因 disk discovery 顺序变化而挂载失败
必须先
(两节点依次执行),再操作重命名,否则所有后续步骤都不可靠。
如何确认新 HBA 扫描出的 LUN 与原设备逻辑一致
仅靠
看
不够,EMC 存储的
才是唯一标识。操作前必须比对两节点:
旧卡识别出的
对应 ID:
新卡扫描后,查
,确认其
完全一致
不一致说明 LUN 映射错位或存储端 zone 配置异常,此时绝不能继续 —— 否则 OCR/Voting Disk 可能写入错误设备
注意:
输出的
序号毫无意义,PowerPath 层已屏蔽底层 SCSI 路径变化。
ASM diskstring 配置与 scan 操作的关键细节
Oracle 12c RAC 中,
必须显式指向 PowerPath 设备,且不能含通配符风险:
oracle知识库
oracle知识库下载
下载
✅ 正确:
(限定字符范围,避免匹配到
这类分区设备)
❌ 危险:
(可能意外包含快照、临时分区,导致 ASM 启动失败)
扫描新设备后,必须在两节点分别执行:
→
,而非依赖自动 discovery
执行
验证所有盘显示
且无
状态残留
Rescan 不等于重发现:它只刷新已有 diskstring 范围内的设备状态,不会改变 ASM 磁盘组成员关系。
OCR 和 Voting Disk 迁移不是可选项,而是强制前置动作
即使你只想换 HBA 卡,只要设备名(
)发生变更,就必须检查 OCR 和 Voting Disk 所在磁盘组是否仍可访问。常见疏漏点:
OCR 位置可通过
查看,但 Voting Disk 位置需运行
若它们位于外部冗余磁盘组(
),且该磁盘组仅由一个
设备组成,则设备名变更后 CSSD 将无法读取 voting disk,直接 hang 住
稳妥做法:提前将 OCR/Voting Disk 迁移至多盘组成的 normal/redundant 磁盘组,命令为
和
这一步常被跳过,直到重启 CRS 时卡在
才意识到问题,但那时已无法回退。
emcpowerxasm_diskstringohasdcssdemcpadm renamepseudoORA-15032: not all alterations performedORA-15027: active use of diskgroup precludes relocation or droppowermt savedevice is busycrsctl stop crs -fpowermt display dev=allPseudo nameLogical device IDdata_center_1660060160F7303500ACF6E88706A1E811powermt display dev=all | grep -A5 'data_center_16'Logical device IDfdisk -l/dev/sdXasm_diskstringasm_diskstring = '/dev/emcpower[a-z]'emcpowera1asm_diskstring = '/dev/emcpower*'sqlplus / as sysasmALTER SYSTEM RESCAN DISKS;SELECT path, header_status FROM v$asm_disk;MEMBERPROVISIONEDemcpowerxocrcheck -configcrsctl query css votediskEXTERNAL REDUNDANCYemcpowerocrconfig -add +DG_NAMEcrsctl replace votedisk +DG_NAMEWaiting for CSS daemon to start