راه اندازی ntp server - پیش نیاز راه اندازی rac oracle

یکی از پیش‌نیازهای مهم برای نصب Oracle RAC، داشتن یک NTP (Network Time Protocol) Server قابل اعتماد است.
در محیط RAC، زمان تمامی نودها باید دقیقاً با یک مرجع مشترک همگام باشد. کوچک‌ترین اختلاف زمانی می‌تواند باعث خطا در Cluster Synchronization و سرویس‌های GSD، CSS و ASM شود.

در این راهنما، یک NTP Server داخلی در همان سروری که DNS را پیاده‌سازی کردیم راه‌اندازی می‌کنیم، به‌گونه‌ای که بدون نیاز به اینترنت، ساعت خود را مبنا قرار دهد و دو سرور RAC از آن زمان بگیرند.

راهنمای نصب dns را می توانید در آدرس زیر پیدا کنید:

https://vahiddb.com/fa/os/os-infra/setting-up-a-dns-server-a-prerequisite-for-oracle-rac-deployment-fa

مشخصات سناریو

نقش 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 را می توانید در مقاله زیر پیدا کنید:

https://vahiddb.com/fa/oracle/database-administration/deploying-oracle-rac-19c-on-virtualbox-and-oracle-linux-9-part-2-preparing-operating-system-for-installation-fa

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