oracle 19c rac安装中必须停用并清理所有节点的chronyd/ntpd服务及配置文件,否则ctss将强制进入observer模式;需执行stop/disable服务、rm -f /etc/{chrony,ntp}.conf及pid文件,并通过crsctl check ctss确认active模式及offset≤10ms。

Oracle 19c RAC 安装中,**不能启用任何 NTP 或 Chrony 服务**——这是硬性前提。RAC 自带的 CTSS(Cluster Time Synchronization Service)会接管时间同步,而外部时间服务(ntpd、chronyd)一旦运行,就会强制 CTSS 进入 observer 模式,彻底失去集群级自动校正能力,最终导致 CRS-4639、OCR 访问失败等严重故障。
为什么必须停用并清理 chronyd/ntpd
CTSS 的工作逻辑是:只有当所有节点都未运行任何系统级时间服务时,它才以 active 模式运行,直接在内核层协调节点间偏移(目标 ±10ms)。只要任一节点残留 chronyd 或 ntpd 进程、配置文件或服务启用状态,CTSS 就降级为 observer,只读不干预,偏移会持续累积。
systemctl stop chronyd.service && systemctl disable chronyd.servicesystemctl stop ntpd && systemctl disable ntpd-
rm -f /etc/chrony.conf /etc/ntp.conf(空文件也会触发 observer) rm -f /var/run/chronyd.pid /var/run/ntpd.pid
如何验证 CTSS 确实处于 active 模式
安装前、安装后、集群运行中,都必须确认 CTSS 是 active 的,不能只看服务是否 running。
- 在每个节点执行:
crsctl check ctss,输出必须含CTSS is in Active mode - 执行:
crsctl stat res ora.ctssd -p | grep STATE,应返回STATE=ONLINE - 横向比对节点时间差:
date; crsctl check ctss | grep "Time offset",所有节点 offset 差值 ≤ 50ms(理想 ≤ 10ms)
什么情况下可以例外启用 chronyd
仅当客户明确要求使用外部 NTP(如对接金融行业统一授时服务器),且**完全弃用 CTSS** 时,才可启用 chronyd。此时必须满足:
- 所有节点
crsctl stop res ora.ctssd -init并禁用自动启动 -
/etc/chrony.conf含完整 RAC 安全配置:iburst、minpoll 4 maxpoll 6、makestep 1.0 3、rtcsync - 防火墙放行 UDP 123 端口,且
chronyc sources -v显示^*优选源 - 所有节点
chronyc tracking中 Offset ≤ 500ms,且节点间差值 ≤ 50ms
真正容易被忽略的是:哪怕你只在某个节点漏删了一个 /etc/ntp.conf,或者忘记 systemctl disable chronyd,CTSS 就会静默退为 observer——没有报错,但时间差每天扩大几十毫秒,直到某次 OCR 写入失败才暴露,排查成本极高。











