当前位置: 首页 > news >正文

Oracle 19C 安装RAC磁盘投票失败

ORACLE 19C 安装RAC第二个节点报错,没有找到足够的 voting 文件(投票磁盘)

1、磁盘投票失败分析

1.1、02节点报错日志

CRS-4123: Starting Oracle High Availability Services-managed resources

CRS-2672: Attempting to start 'ora.mdnsd' on 'p19c02'

CRS-2672: Attempting to start 'ora.evmd' on 'p19c02'

CRS-2676: Start of 'ora.mdnsd' on 'p19c02' succeeded

CRS-2676: Start of 'ora.evmd' on 'p19c02' succeeded

CRS-2672: Attempting to start 'ora.gpnpd' on 'p19c02'

CRS-2676: Start of 'ora.gpnpd' on 'p19c02' succeeded

CRS-2672: Attempting to start 'ora.gipcd' on 'p19c02'

CRS-2676: Start of 'ora.gipcd' on 'p19c02' succeeded

CRS-2672: Attempting to start 'ora.crf' on 'p19c02'

CRS-2672: Attempting to start 'ora.cssdmonitor' on 'p19c02'

CRS-2676: Start of 'ora.cssdmonitor' on 'p19c02' succeeded

CRS-2672: Attempting to start 'ora.cssd' on 'p19c02'

CRS-2672: Attempting to start 'ora.diskmon' on 'p19c02'

CRS-2676: Start of 'ora.diskmon' on 'p19c02' succeeded

CRS-2676: Start of 'ora.crf' on 'p19c02' succeeded

CRS-2672: Attempting to start 'ora.cssdmonitor' on 'p19c02'

CRS-2676: Start of 'ora.cssdmonitor' on 'p19c02' succeeded

CRS-1705: Found 0 configured voting files but 1 voting files are required, terminating to ensure data integrity; details at (:CSSNM00065:) in /u01/app/grid/diag/crs/p19c02/crs/trace/ocssd.trc

CRS-2883: Resource 'ora.cssd' failed during Clusterware stack start.

CRS-4406: Oracle High Availability Services synchronous start failed.

CRS-41053: checking Oracle Grid Infrastructure for file permission issues

CRS-4000: Command Start failed, or completed with errors.

2024/11/20 16:41:47 CLSRSC-117: Failed to start Oracle Clusterware stack

Died at /u01/app/19.3.0/grid/crs/install/crsinstall.pm line 1970.

1.2、报错原因分析

Oracle RAC 安装过程中失败的关键点是 CRS-1705CRS-2883,原因是没有找到足够的 voting 文件(投票磁盘),导致 Clusterware 无法启动。这通常与共享存储配置或权限问题有关。

1.3、排查步骤

1.3.1、检查共享存储配置(确保 Oracle RAC 的共享磁盘能够正常使用)

ls -l /dev/asm_*

multipath -ll

1.3.2、确认节点间共享磁盘一致性

在每个节点上执行以下命令,确认多路径设备和符号链接的情况

multipath -ll

ls -l /dev/asm_ocr /dev/asm_data

1.3.3、解决方法

修改ovirt磁盘为共享的

1.3.3、Udev 规则配置 检查

文件中的 Udev 规则为 /dev/asm_ocr/dev/asm_data 创建了符号链接,并设置了正确的所有者、组和权限。

cat /etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-0QEMU_QEMU_HARDDISK_cec47c24-2a51-47fb-8",SYMLINK+="asm_data",OWNER="grid",GROUP="asmadmin",MODE="0660"

KERNEL=="dm-*",ENV{DM_UUID}=="mpath-0QEMU_QEMU_HARDDISK_064b7e43-99f2-4957-a",SYMLINK+="asm_ocr",OWNER="grid",GROUP="asmadmin",MODE="0660"

1.3.4、重新加载 Udev 规则

如果符号链接不存在或权限不正确:

udevadm control --reload-rules

udevadm trigger

两台机器ocr和data挂载相同一块磁盘

两个节点通过共享磁盘进行通信和数据同步。如果两台机器各自“看到”的磁盘不同(即 WWID 不一致),说明它们其实并没有真正共享同一块磁盘,而是各自使用了独立的磁盘。

1.4、问题解决完成

rac2 #再次执行root.sh,成功完成
/u01/app/grid/12.2.0.1/root.sh

1.5、验证集群信息和磁盘

crsctl stat res -t
crsctl query css votedisk

1.6、为什么用共享磁盘(GPT解释)

  1. 多节点访问
    • 当该磁盘被设置为“可共享”时,它允许在多个虚拟机之间共享。这对于需要集群节点共同访问同一个磁盘的场景非常重要,例如 Oracle RAC 集群,这样多个节点可以同时访问同一份数据,确保数据一致性。
    • 在 Oracle RAC 环境中,多个节点都需要访问相同的存储资源(如投票盘、OCR 磁盘、ASM 磁盘),这些存储资源必须可以被所有节点同时访问,这样集群中的每个节点才能共同管理和同步数据库的状态。
  1. 共享总线设置
    • 在虚拟化环境中,如果您希望某个磁盘被多个虚拟机共享,通常需要选择一个共享的总线类型。例如,在截图中,接口选择了 VirtIO-SCSI,配合“可共享的”选项,这样的配置可以确保该 SCSI 磁盘可以在多个虚拟机之间共享。
    • 共享总线的概念是指多个虚拟机使用相同的 SCSI 控制器连接到共享磁盘,这种方式可以模拟物理环境中的共享存储(例如 SAN 存储)。

可共享的”应用场景

  • Oracle RAC 集群:如您当前的情况,安装 Oracle RAC 需要共享磁盘,以便多个节点可以同时访问 ASM 磁盘组和投票盘。
  • 故障恢复和高可用:共享磁盘可以在故障发生时,让其他节点接管资源,保持集群的高可用性。

虚拟磁盘的共享设置需要注意的地方

  1. 一致性
    • 如果您的共享磁盘未正确配置为共享,那么只有一个节点可以独占访问该磁盘,这将导致 Oracle RAC 集群中的其他节点无法看到或使用该磁盘,导致集群配置失败。
    • 请务必确保每个 RAC 节点的虚拟磁盘配置相同,且所有需要共享的磁盘都设置为“可共享”。
  1. SCSI 控制器的设置
    • 推荐将共享磁盘挂载在单独的 SCSI 控制器上,例如 scsi1,而本地系统盘保持在 scsi0。这种方式能够避免共享盘和系统盘之间的冲突,提升共享磁盘的稳定性。
    • 在配置共享磁盘时,请确认“共享总线”或“总线共享”属性已经正确设置为虚拟机共享模式(例如 virtual 或类似选项)。
  1. 虚拟机配置的一致性
    • 在所有虚拟机中,确保共享磁盘的配置是完全一致的,尤其是挂载的 SCSI 控制器编号、磁盘大小、磁盘名称等。

总结

  • 在您的虚拟磁盘配置中,“可共享的”选项允许该磁盘被多个虚拟机同时访问,这是实现集群环境的基础。
  • 您需要确保在 KVM oVirt 管理控制台中对所有共享磁盘都设置了此选项,这样每个 RAC 节点都可以正常访问相同的共享存储资源。
  • 在多个节点中保持 SCSI 控制器和共享磁盘配置的一致性,以保证集群的可靠性和稳定性。


http://www.mrgr.cn/news/77811.html

相关文章:

  • Flume日志采集系统的部署,实现flume负载均衡,flume故障恢复
  • MacOS下的Opencv3.4.16的编译
  • pcb元器件选型与焊接测试时的一些个人经验
  • XML文件(超详细):XML文件概念、作用、写法、如何用程序解析XML、写入XML、dom4j框架、DTD文档、schema文档
  • JavaWeb后端开发知识储备2
  • HarmonyOS鸿蒙系统上File文件常用操作
  • Vue实训---1-创建Vue3项目
  • 【大数据学习 | Spark-Core】Spark提交及运行流程
  • 【蓝桥杯C/C++】翻转游戏:多种实现与解法解析
  • 14.C++STL1(STL简介)
  • 【蓝桥杯C/C++】深入解析I/O高效性能优化:std::ios::sync_with_stdio(false)
  • minikube单机k8s出现Listen: listen tcp :53: bind: permission denied
  • 【题解】—— LeetCode一周小结46
  • CSRF保护--laravel进阶篇
  • 【大数据学习 | Spark-Core】spark-shell开发
  • 《线性代数的本质》
  • 【计算机网络】网段划分
  • C#语言入门
  • 《Shader 入门精要》学习笔记 茵蒂克丝
  • 用python将一个扫描pdf文件改成二值图片组成的pdf文件
  • [模版总结] - 树的基本算法4 -最近公共祖先 LCA
  • 【大数据学习 | Spark-Core】yarn-client与yarn-cluster的区别
  • 浦语提示词工程实践(LangGPT版,服务器上部署internlm2-chat-1_8b,踩坑很多才完成的详细教程,)
  • 复习!!!
  • Spring |(二)IoC相关内容 | bean
  • Long noncoding RNAs and humandisease