影评周公子 2026-04-14 21:15 采纳率: 98.9%
浏览 0
已采纳

Oracle RAC 19c静默安装时OCR磁盘组无法识别如何解决?

在Oracle RAC 19c静默安装(`runInstaller -silent`)过程中,常因ASM磁盘发现路径配置不当导致OCR磁盘组无法识别,典型报错如“ORA-15042: ASM disk ‘X’ is missing from the system”或安装界面/日志中OCR候选磁盘为空。根本原因多为:① `asm_diskstring` 参数未在静默响应文件(`response.rsp`)中正确设置(如遗漏`/dev/oracleasm/disks/*`或`/dev/mapper/*`等实际路径);② udev规则或ASMLib未就绪,致使节点间磁盘可见性不一致;③ `gridSetup.sh` 执行前未以root运行`/opt/grid/oraInstRoot.sh`及`/opt/grid/root.sh`完成环境初始化。解决需严格校验磁盘权限(`oracle:oinstall`、660)、多节点`ls -l /dev/asm*`一致性,并在响应文件中显式指定`oracle.install.asm.diskGroup.name=OCR`与`oracle.install.asm.diskGroup.disks=/dev/asm-ocr1,/dev/asm-ocr2`(推荐使用udev稳定路径)。静默前务必执行`/opt/grid/bin/asmcmd lsdsk -k`验证磁盘可发现性。
  • 写回答

1条回答 默认 最新

  • 祁圆圆 2026-04-14 21:15
    关注
    ```html

    一、现象层:静默安装中OCR磁盘组“不可见”的典型表征

    • 运行 runInstaller -silent -responseFile response.rsp 后,安装日志($ORACLE_HOME/cfgtoollogs/oui/installActions*.log)反复报错:ORA-15042: ASM disk 'OCR_0001' is missing from the system
    • Grid Setup Wizard 图形界面(即使临时启用)在“Specify ASM Disk Groups”步骤中,OCR候选磁盘列表为空或仅显示“No disks found
    • asmca -silent -configureASM 手动调用亦失败,提示 ORA-15035: no diskgroups found
    • 节点间 ls -l /dev/asm* 输出不一致:Node1 显示 /dev/asm-ocr1,Node2 仅显示 /dev/sdb1 —— 暴露底层设备可见性割裂

    二、配置层:响应文件(response.rsp)中ASM发现路径的三大致命疏漏

    静默安装高度依赖响应文件的精确性。以下为 response.rsp 中与ASM磁盘发现强相关的关键参数及常见错误:

    参数名正确示例高频错误后果
    oracle.install.asm.diskGroup.nameOCR留空或拼写成 ocr(大小写敏感)ASM实例启动后无OCR磁盘组
    oracle.install.asm.diskGroup.disks/dev/asm-ocr1,/dev/asm-ocr2误填为 /dev/oracleasm/disks/OCR1(ASMLib已弃用)或遗漏逗号分隔仅识别首个磁盘,或解析失败
    oracle.install.asm.diskGroup.redundancyEXTERNAL设为 NORMAL 但仅提供2块盘(OCR最低需3块)ASMCA校验失败,中断安装

    三、系统层:udev规则与设备持久化——跨节点磁盘一致性基石

    Oracle RAC 19c 强烈推荐使用 udev(而非 ASMLib)管理 ASM 磁盘。以下是生产级 udev 规则验证清单:

    1. 确认 /etc/udev/rules.d/99-oracle-asmdevices.rules 存在且内容规范(含 SYMLINK+="asm-ocr1"
    2. 执行 udevadm control --reload-rules && udevadm trigger 并验证:ls -l /dev/asm-ocr* 在所有节点返回相同 major:minor 及权限 brw-rw---- 1 oracle oinstall
    3. 检查 scsi_id -g -u -d /dev/sdX 输出是否全局唯一(避免多路径LUN ID冲突)

    四、权限与初始化层:root.sh 与 oraInstRoot.sh 的执行时序陷阱

    未按标准顺序执行 root 脚本将导致 ASM 权限上下文缺失。完整初始化流程如下(必须在 gridSetup.sh 前完成):

    # Node1 & Node2 均需执行(顺序不可逆)
    /opt/grid/oraInstRoot.sh          # 创建 /etc/oraInst.loc & 设置 inventory 权限
    /opt/grid/root.sh                 # 配置 CRS、设置 /dev/asm* 权限、启动 orarootagent
    

    若跳过此步,asmcmd lsdsk -k 将返回空,因 orarootagent 未注册设备扫描服务。

    五、验证层:静默前必须通过的四大黄金检查点

    graph LR A[执行 asmcmd lsdsk -k] --> B{是否列出所有OCR磁盘?} B -->|是| C[检查 ls -l /dev/asm-ocr* 权限] B -->|否| D[回溯udev规则与multipath状态] C --> E{权限=brw-rw----, owner=oracle:oinstall?} E -->|是| F[确认 response.rsp 中 diskGroup.disks 路径完全匹配] E -->|否| G[运行 chmod 660 /dev/asm-ocr* & chown oracle:oinstall] F --> H[启动 asmca -silent -configureASM 预演]

    六、进阶实践:RAC 19c ASM 磁盘发现路径最佳组合策略

    • 首选路径asm_diskstring='/dev/asm-*'(udev稳定别名),规避 /dev/sdX 设备名漂移风险
    • 次选路径(FC/iSCSI环境):'/dev/mapper/mpath[a-z]*',需配合 dm-multipath 正确配置 WWID
    • 绝对禁用/dev/oracleasm/disks/*(ASMLib 自 Oracle 18c 起已废弃,19c 完全不兼容)
    • 建议在 response.rsp 中显式覆盖默认值:oracle.install.asm.diskString=/dev/asm-*

    七、故障复盘:从 ORA-15042 到根因定位的诊断树

    当出现 OCR 磁盘丢失报错时,按以下优先级逐层排查:

    1. 节点级:运行 su - grid -c "/opt/grid/bin/asmcmd lsdsk -k" —— 若单节点无输出,立即检查 udev + root.sh
    2. 集群级:执行 crsctl check cluster -all,确认 ora.asm 资源状态为 ONLINE;若为 OFFLINE,查看 crsctl stat res -t | grep asm
    3. 内核级:验证 lsmod | grep oracleasm 应为空(ASMLib 冲突),而 lsmod | grep dm_multipath 应存在
    4. 存储级:登录存储阵列,确认 LUN 是否被所有节点同时映射(HBA WWPN 与 Zone 配置双检)
    ```
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 4月15日
  • 创建了问题 4月14日