暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Every Day of a DBA,第157期: 从未遇见过的诡异报错!RHEL8.2+Oracle 19.31 RAC 部署终极踩坑复盘

原创 ByteHouse 3天前
18

近期部署一套RHEL 8.2 + Oracle 19c 19.31 RU RAC环境,直接把我折腾到差点放弃!

全程报错杂乱无章、毫无头绪,手工核查所有配置均正常,但Oracle安装就是持续报错。今天完整复盘排错全过程,帮大家彻底避开这个深坑!

一、故障环境说明

本次部署为企业标准生产架构,软硬件规划如下:

  • 操作系统:RHEL 8.2
  • 数据库版本:Oracle 19c RAC (19.31最新RU补丁)
  • 存储架构:IPSAN存储 + Multipath多路径 + UDEV磁盘权限固化 + ASM磁盘管理
  • 网络架构:双公网业务网卡 + 私网心跳网卡,标准VIP/SCAN集群网络规划

二、诡异故障现象:全程逻辑矛盾,无从下手

643ea5eda6abb030ed58e32074686bbc.jpg

本以为是一遍过的常规部署,结果在GI(集群网格)安装阶段,接连爆出各种从未见过的奇葩报错,线索杂乱、毫无规律:

✅ 手工核查:磁盘权限、属主、软链接全部正常

❌ Oracle安装校验:持续权限异常、设备识别失败

除此之外,还伴随多个随机故障:

  • 安装界面随机弹出 INS-08101、DBT-30012 异常报错,无固定复现规律
  • 节点重启后ASM磁盘权限随机错乱,时而root权限、时而grid权限
  • 多路径设备识别不稳定,磁盘时而可见、时而消失
  • CRS集群资源间歇性启动失败,日志报错碎片化、无有效定位线索

初期排查误区:先后怀疑多路径配置、存储LUN掩码、系统依赖包、Grid用户权限、安装介质损坏,逐项排查后全部排除,故障依旧!

三、根因定位:RHEL8专属UDEV隐性大坑

折腾数小时后,终于找到核心问题:RHEL8 与 RHEL7 的 UDEV+Multipath 联动逻辑完全不同

本次故障的罪魁祸首:直接复用了RHEL7的UDEV规则脚本,导致底层设备规则重复触发、权限反复覆盖。

致命问题点详解

  1. 设备匹配逻辑错误

旧脚本混用 KERNELS 底层物理磁盘匹配 + DM_NAME 多路径设备匹配。Multipath环境下,一块逻辑磁盘对应多条底层物理路径,匹配底层sd设备会导致同一块磁盘反复触发UDEV规则,权限持续刷新错乱。

  1. 无设备过滤条件

缺少 ENV{DM_UDEV_RULES_VSN}!="?" 过滤参数,底层子设备、物理路径全部命中规则,重复执行授权命令,导致权限随机漂移。

  1. RHEL8语法兼容性失效

RHEL8对UDEV规则执行时序、语法做了重构,RHEL7通用的旧规则在RHEL8中无法稳定生效,重启后配置直接失效。

最迷惑人的核心矛盾:手工执行 udevadm trigger 临时生效,肉眼查看权限完全正常;但节点重启、多路径重新扫描后,权限被底层设备反复刷新覆盖,Oracle校验读取到异常权限!

四、RHEL8.2+Multipath UDEV规则

核心原则:只匹配顶层Multipath逻辑设备(DM_NAME),彻底过滤底层物理SD设备,杜绝规则重复触发!

1. 最终标准规则文件

路径:/etc/udev/rules.d/99-oracle-asmdevices.rules

ENV{DM_UDEV_RULES_VSN}!="?",ENV{DM_NAME}=="mpath_asm_disk01",SYMLINK+="oracleasm/asm_disk01",OWNER="grid",GROUP="asmadmin",MODE="0660" ENV{DM_UDEV_RULES_VSN}!="?",ENV{DM_NAME}=="mpath_asm_disk02",SYMLINK+="oracleasm/asm_disk02",OWNER="grid",GROUP="asmadmin",MODE="0660"

2. 规则核心说明

  • ENV{DM_UDEV_RULES_VSN}!="?":核心过滤参数,仅匹配多路径顶层逻辑设备,屏蔽所有底层物理子设备
  • DM_NAME 精准匹配多路径别名,摒弃老旧的KERNELS物理磁盘匹配方式
  • 固定属主 grid:asmadmin、权限 0660,生成独立稳定的ASM磁盘软链接

3. 生效校验命令(双节点执行)

# 重载UDEV规则 udevadm control --reload-rules udevadm trigger # 校验磁盘权限与软链接 ls -l /dev/oracleasm/ lsblk

✅ 双节点配置完全一致,重启节点后磁盘权限稳定不变,彻底解决随机权限错乱问题。

五、19.31 RAC+RHEL8 踩坑总结

除核心UDEV故障外,本次部署还汇总4个高兼容坑点,全覆盖避坑:

1. AFD驱动兼容问题

Oracle 19.31 RU版本 不支持AFD+Multipath混用!极易出现内核适配异常、磁盘识别故障,生产环境优先使用UDEV固化磁盘权限。

2. 多网卡网络规划规范

双公网+私网架构,必须严格在 /etc/hosts 区分业务IP、心跳IP、VIP、SCAN IP;通过 oifcfg 规范注册网卡,配置 LISTENER_NETWORKS,避免集群网络资源注册错乱。

3. RHEL8图形化部署坑

RHEL8执行runInstaller极易出现VNC超时、Xauth认证失败、中文乱码,部署前需提前配置DISPLAY环境变量、校准xauth权限,避免图形界面异常退出。

4. RU补丁版本强制对齐

GI集群软件与DB数据库软件RU补丁版本必须完全一致,版本错位会引发ASM挂载、CRS资源启动等各类隐性疑难故障。

六、运维复盘:最容易被忽略的底层逻辑

本次故障之所以让人崩溃,核心在于现象具有极强的迷惑性

系统层所有配置、权限、设备状态全部正常,但应用层(Oracle)持续报错。

很多运维的惯性思维:Oracle报错优先怀疑数据库介质、参数、存储故障。

但真实场景中,80%的RAC诡异故障,都来自系统底层、存储底层的隐性兼容问题

尤其是 RHEL7 升级迁移 RHEL8 场景,大量旧版通用脚本、适配逻辑全部失效,绝非简单的系统小版本升级!

核心排错心得:当出现「手工配置正常、软件识别异常」的矛盾故障时,优先排查UDEV规则、设备扫描时序、多路径重复触发问题,而非直接怀疑数据库本身!

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论