یکی از پیشنیازهای مهم برای نصب Oracle RAC، داشتن یک NTP (Network Time Protocol) Server قابل اعتماد است.
در محیط RAC، زمان تمامی نودها باید دقیقاً با یک مرجع مشترک همگام باشد. کوچکترین اختلاف زمانی میتواند باعث خطا در Cluster Synchronization و سرویسهای GSD، CSS و ASM شود.
در این راهنما، یک NTP Server داخلی در همان سروری که DNS را پیادهسازی کردیم راهاندازی میکنیم، بهگونهای که بدون نیاز به اینترنت، ساعت خود را مبنا قرار دهد و دو سرور RAC از آن زمان بگیرند.
راهنمای نصب dns را می توانید در آدرس زیر پیدا کنید:
مشخصات سناریو
| نقش | hostname | IP address |
|---|---|---|
| NTP & DNS Server | dns.vahiddb.com | 192.168.56.2 |
| RAC Node 1 | rac1.vahiddb.com | 192.168.56.11 |
| RAC Node 2 | rac2.vahiddb.com | 192.168.56.12 |
مرحله ۱ – نصب chrony روی سرور NTP
در Oracle Linux 9.6، سرویس chronyd جایگزین ntpd شده است.
راهنمای چگونگی mount و ساخت repository را می توانید در مقاله زیر پیدا کنید:
dnf install -y chrony
systemctl enable --now chronyd
اگر فایروال فعال است (در لَب معمولاً غیرفعال است)، پورت UDP/123 را باز کنید:
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload
مرحله ۲ – تنظیم فایل /etc/chrony.conf روی سرور NTP
در این تنظیمات، سرور NTP از ساعت سیستم خودش به عنوان منبع زمان استفاده میکند و به کلاینتهای شبکهی 192.168.56.0/24 زمان میدهد.
vi /etc/chrony.conf
تمامی خطوط pool و server را کامنت کنید، سپس محتوای زیر را قرار دهید (یا به آن اضافه کنید):
# مسیر ذخیره تنظیمات دریفت ساعت
driftfile /var/lib/chrony/drift
# اصلاح سریع ساعت در اولین چند بار
makestep 1.0 3
# همگامسازی با RTC سیستم
rtcsync
# ساعت محلی را به عنوان مرجع اعلام کن
local stratum 10
# اجازه اتصال کلاینتها از شبکه لَب
allow 192.168.56.0/24
# گوش دادن روی اینترفیس اصلی
bindaddress 192.168.56.2
# مسیر فایل کلیدها و لاگ
keyfile /etc/chrony.keys
logdir /var/log/chrony
مرحله ۳ – تنظیم timezone و ساعت سرور
ابتدا timezone را به تهران تغییر دهید:
timedatectl set-timezone Asia/Tehran
سپس ساعت را بهصورت دستی تنظیم کنید (بهجای زمان نمونه، زمان واقعی را بگذارید):
timedatectl set-time "2025-11-11 10:30:00"
hwclock --systohc
مرحله ۴ – ریاستارت سرویس و بررسی وضعیت
systemctl restart chronyd
chronyc tracking
در خروجی باید ببینید:
Reference ID : 4C4F434C (LOCL)
Stratum : 10
Leap status : Normal
یعنی ساعت از Local Clock گرفته میشود و سرور آماده سرویسدهی است.
مرحله ۵ – تنظیم کلاینتها (rac1 و rac2)
روی هر نود RAC:
dnf install -y chrony
فایل /etc/chrony.conf را ویرایش کنید و خطوط pool/server را حذف یا کامنت کنید و این خط را اضافه کنید:
server 192.168.56.2 iburst prefer
makestep 1.0 3
rtcsync
سرویس را فعال کنید:
systemctl enable --now chronyd
مرحله ۶ – بررسی سینک کلاینتها
روی هر کلاینت (rac1 و rac2):
chronyc sources -v
خروجی مشابه زیر نشاندهندهی سینک موفق است:
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.56.2 10 6 377 12 -0.00023 +/– 0.00049
مرحله ۷ – بررسی از سمت سرور NTP
برای اطمینان از اینکه کلاینتها متصل شدهاند، روی سرور dns.vahiddb.com دستور زیر را بزنید:
chronyc clients
خروجی مشابه زیر یعنی هر دو کلاینت با موفقیت سینک هستند:
Hostname NTP Drop Int IntL Last Cmd Drop Int Last
===============================================================================
rac2.vahiddb.com 26 0 7 - 99m 0 0 - -
rac1.vahiddb.com 24 0 7 - 99m 0 0 - -
نکات تکمیلی
-
مقدار
local stratum 10یعنی این سرور مبنای محلی زمان است. در محیط Production معمولاً از NTPهای خارجی یا GPS Clock استفاده میشود. -
با اجرای
chronyc trackingروی هر نود، باید Leap status: Normal و Stratum > 10 نمایش داده شود. -
برای اعمال سریع همگامسازی (مثلاً در اولین بار راهاندازی)، از دستور زیر استفاده کنید:
chronyc makestep