While working on an Oracle RAC Grid upgrade from 19c to 26ai, the last steps are failing if you don’t have properly set up DNS and Chrony server.
Probably on your real production enviroment you won’t have this problem, but if you are testing stuff on your on lab, here is what I did.
On my VirtualBox Host, on my case a Fedora 44:
[root@fedora ~]# sudo dnf install -y dnsmasq chrony
and allow firewall rules:
firewall-cmd --permanent --add-service=ntp
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
CHRONY:
check your VurtualBox interface:
[root@fedora ~]# ip route | grep -E '192\.168\.(10|24|56)'
192.168.56.0/24 dev vboxnet0 proto kernel scope link src 192.168.56.1
[root@fedora ~]#
Add it to chrony.conf:
[root@fedora ~]# diff /etc/chrony.conf /etc/chrony.conf.bck
57d56
< allow 192.168.56.0/24
[root@fedora ~]#
Restart and check:
[root@fedora ~]# systemctl restart chronyd
[root@fedora ~]# chronyc sources -v
chronyc tracking
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^+ ip217.154.37-71.pbiaas.c> 2 6 7 1 -1397us[-2714us] +/- 21ms
^* dns1.tnp.net.uk 2 6 7 1 +693us[ -623us] +/- 10ms
^? leontp2.office.panq.nl 0 6 0 - +0ns[ +0ns] +/- 0ns
^+ 185.177.149.33 2 6 7 1 +1090us[ -226us] +/- 18ms
Reference ID : D9723B42 (dns1.tnp.net.uk)
Stratum : 3
Ref time (UTC) : Mon Oct 05 12:55:02 2026
System time : 0.000326277 seconds slow of NTP time
Last offset : -0.001316681 seconds
RMS offset : 0.001316681 seconds
Frequency : 10.742 ppm fast
Residual freq : +121.674 ppm
Skew : 0.009 ppm
Root delay : 0.018300453 seconds
Root dispersion : 0.001380231 seconds
Update interval : 0.0 seconds
Leap status : Normal
[root@fedora ~]#
[root@fedora ~]#
[root@fedora ~]# ss -lunp | grep ':123'
UNCONN 0 0 0.0.0.0:123 0.0.0.0:* users:(("chronyd",pid=141166,fd=6))
[root@fedora ~]#
On each of yout VM's edit chrony.conf and restart:
[root@rac-ol8-01 ~]# cp -p /etc/chrony.conf /etc/chrony.conf.bck
[root@rac-ol8-01 ~]# diff /etc/chrony.conf /etc/chrony.conf.bck
3,4c3
< #pool 2.pool.ntp.org iburst
< server 192.168.56.1 iburst
---
> pool 2.pool.ntp.org iburst
[root@rac-ol8-01 ~]#
[root@rac-ol8-01 ~]# sudo systemctl restart chronyd
[root@rac-ol8-01 ~]#
[root@rac-ol8-02 ~]# cp -p /etc/chrony.conf /etc/chrony.conf.bck
[root@rac-ol8-02 ~]# diff /etc/chrony.conf /etc/chrony.conf.bck
3,4c3
< #pool 2.pool.ntp.org iburst
< server 192.168.56.1 iburst
---
> pool 2.pool.ntp.org iburst
[root@rac-ol8-02 ~]#
[root@rac-ol8-02 ~]# sudo systemctl restart chronyd
[root@rac-ol8-02 ~]#
And check:
[root@rac-ol8-01 ~]# chronyc sources -v
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.56.1 3 6 17 5 +16us[ +45us] +/- 10ms
[root@rac-ol8-01 ~]# chronyc tracking
Reference ID : C0A83801 (192.168.56.1)
Stratum : 4
Ref time (UTC) : Mon Oct 05 12:57:56 2026
System time : 0.000000032 seconds slow of NTP time
Last offset : +0.000029229 seconds
RMS offset : 0.000029229 seconds
Frequency : 0.465 ppm slow
Residual freq : +8.410 ppm
Skew : 1.776 ppm
Root delay : 0.018953294 seconds
Root dispersion : 0.001017007 seconds
Update interval : 2.0 seconds
Leap status : Normal
[root@rac-ol8-01 ~]#
Chrony done!
DNSMASQ:
On your the server host, create this file with what you want to resolve:
[root@fedora ~]# cat /etc/dnsmasq.d/oracle-rac.conf
# Oracle RAC lab SCAN
address=/rac-ol8-scan/192.168.24.41
address=/rac-ol8-scan/192.168.24.42
address=/rac-ol8-scan/192.168.24.43
# Listen on the VirtualBox host-only interface
listen-address=192.168.56.1
bind-interfaces
[root@fedora ~]#
[root@fedora ~]# dnsmasq --test
dnsmasq: syntax check OK.
[root@fedora ~]#
Restart:
[root@fedora ~]# systemctl enable dnsmasq
[root@fedora ~]# systemctl restart dnsmasq
[root@fedora ~]# systemctl status dnsmasq --no-pager
On each of the VM's, add to resolv.conf:
[root@rac-ol8-01 ~]# echo 'nameserver 192.168.56.1' >> /etc/resolv.conf
[root@rac-ol8-02 ~]# echo 'nameserver 192.168.56.1' >> /etc/resolv.conf
Then test:
[oracle@rac-ol8-01 ~]$ nslookup RAC-OL8-SCAN 192.168.56.1
Server: 192.168.56.1
Address: 192.168.56.1#53
Name: RAC-OL8-SCAN
Address: 192.168.24.43
Name: RAC-OL8-SCAN
Address: 192.168.24.42
Name: RAC-OL8-SCAN
Address: 192.168.24.41
[oracle@rac-ol8-01 ~]$ dig @192.168.56.1 RAC-OL8-SCAN A
; <<>> DiG 9.11.36-RedHat-9.11.36-16.el8_10.14 <<>> @192.168.56.1 RAC-OL8-SCAN A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17289
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;RAC-OL8-SCAN. IN A
;; ANSWER SECTION:
RAC-OL8-SCAN. 0 IN A 192.168.24.43
RAC-OL8-SCAN. 0 IN A 192.168.24.42
RAC-OL8-SCAN. 0 IN A 192.168.24.41
;; Query time: 0 msec
;; SERVER: 192.168.56.1#53(192.168.56.1)
;; WHEN: Mon Oct 05 14:10:38 BST 2026
;; MSG SIZE rcvd: 89
[oracle@rac-ol8-01 ~]$
Dnsmaq Done!
Comments