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-1705 和 CRS-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解释)
- 多节点访问:
- 当该磁盘被设置为“可共享”时,它允许在多个虚拟机之间共享。这对于需要集群节点共同访问同一个磁盘的场景非常重要,例如 Oracle RAC 集群,这样多个节点可以同时访问同一份数据,确保数据一致性。
- 在 Oracle RAC 环境中,多个节点都需要访问相同的存储资源(如投票盘、OCR 磁盘、ASM 磁盘),这些存储资源必须可以被所有节点同时访问,这样集群中的每个节点才能共同管理和同步数据库的状态。
- 共享总线设置:
- 在虚拟化环境中,如果您希望某个磁盘被多个虚拟机共享,通常需要选择一个共享的总线类型。例如,在截图中,接口选择了
VirtIO-SCSI
,配合“可共享的”选项,这样的配置可以确保该 SCSI 磁盘可以在多个虚拟机之间共享。- 共享总线的概念是指多个虚拟机使用相同的 SCSI 控制器连接到共享磁盘,这种方式可以模拟物理环境中的共享存储(例如 SAN 存储)。
可共享的”应用场景
- Oracle RAC 集群:如您当前的情况,安装 Oracle RAC 需要共享磁盘,以便多个节点可以同时访问 ASM 磁盘组和投票盘。
- 故障恢复和高可用:共享磁盘可以在故障发生时,让其他节点接管资源,保持集群的高可用性。
虚拟磁盘的共享设置需要注意的地方
- 一致性:
- 如果您的共享磁盘未正确配置为共享,那么只有一个节点可以独占访问该磁盘,这将导致 Oracle RAC 集群中的其他节点无法看到或使用该磁盘,导致集群配置失败。
- 请务必确保每个 RAC 节点的虚拟磁盘配置相同,且所有需要共享的磁盘都设置为“可共享”。
- SCSI 控制器的设置:
- 推荐将共享磁盘挂载在单独的 SCSI 控制器上,例如
scsi1
,而本地系统盘保持在scsi0
。这种方式能够避免共享盘和系统盘之间的冲突,提升共享磁盘的稳定性。- 在配置共享磁盘时,请确认“共享总线”或“总线共享”属性已经正确设置为虚拟机共享模式(例如
virtual
或类似选项)。
- 虚拟机配置的一致性:
- 在所有虚拟机中,确保共享磁盘的配置是完全一致的,尤其是挂载的 SCSI 控制器编号、磁盘大小、磁盘名称等。
总结
- 在您的虚拟磁盘配置中,“可共享的”选项允许该磁盘被多个虚拟机同时访问,这是实现集群环境的基础。
- 您需要确保在 KVM oVirt 管理控制台中对所有共享磁盘都设置了此选项,这样每个 RAC 节点都可以正常访问相同的共享存储资源。
- 在多个节点中保持 SCSI 控制器和共享磁盘配置的一致性,以保证集群的可靠性和稳定性。