گامی بهسوی دیتابیس بدون توقف!
در دنیای امروز که دسترسپذیری بالا یا همان High Availability (HA) برای کسبوکارها حیاتی شده، راهکارهایی مانند کلاسترینگ دیتابیسهای SAP HANA نقشی کلیدی ایفا میکنند. در این پست قصد دارم تجربهی راهاندازی یک کلاستر دو نودی HANA با یک SID مشترک را به اشتراک بگذارم، که در آن هدف، دیتابیس بدون وقفه حتی در شرایط خرابی یکی از سرورهاست.
سناریو:
دو نود فیزیکی یا مجازی داریم که هر دو میزبان یک SAP HANA Instance با SID یکسان هستند. در حالت نرمال، یکی Active و دیگری Passive است. بهمحض اینکه نود اصلی در دسترس نباشد، کلاستر کنترل را به نود دوم منتقل میکند، بدون اینکه کاربران چیزی احساس کنند.
تکنولوژیها و ابزارهای کلیدی:
✅ SUSE HAE (High Availability Extension) یا Red Hat Pacemaker
✅ Shared Storage (مثل NFS یا SAN) برای نگهداری دیتا و لاگ
✅ SAP HANA System Replication (HSR) برای sync کردن دیتا بین دو نود
✅ STONITH / Fencing برای جلوگیری از split-brain
✅ ابزار مانیتورینگ و alerting مثل SAPHanaSR و …
معماری راهکار:
Node A (Active): دیتابیس در حال اجراست و کاربران به آن متصلاند
Node B (Passive): دیتابیس خاموش است اما در حالت replication
در صورت failure در Node A،
➡️ کلاستر از طریق Pacemaker تشخیص میدهد
➡️ نقش فعال را به Node B منتقل میکند
➡️ SAP HANA در نود دوم به حالت primary درمیآید
➡️ کاربران بدون Downtime به کار ادامه میدهند!
⚙️ چالشها و Best Practices:
🔸 هماهنگی دقیق Replication Modes (sync vs async)
🔸 تست مرتب Failover و Failback
🔸 تنظیم STONITH بهدرستی برای جلوگیری از split-brain
🔸 بررسی latency و performance در sync replication
🔸 استفاده از System Replication Hook Scripts برای اطلاعرسانی یا مانیتورینگ
✅ خروجی نهایی:
🔹 کاهش RTO و RPO به حداقل ممکن
🔹 افزایش اعتماد مشتریان به سیستم
🔹 آرامش خاطر تیم IT از پایداری سرویس حیاتی مثل HANA






