ESC را فشار دهید تا بسته شود

زمیوس آموزش، یادگیری و سرگرمی

معماری Oracle RAC چیست؟ بررسی Architecture اوراکل در Real Application Clusters

در دنیای سیستم‌های سازمانی، یکی از مهم‌ترین دغدغه‌ها دسترس‌پذیری بالا (High Availability) و تحمل بار زیاد در پایگاه داده است.

بسیاری از سازمان‌ها مانند بانک‌ها، شرکت‌های مخابراتی و سیستم‌های مالی نیاز دارند که پایگاه داده آن‌ها تقریباً بدون توقف (Near Zero Downtime) کار کند.

اوراکل برای حل این مشکل فناوری قدرتمندی به نام Oracle RAC (Real Application Clusters) ارائه داده است.

این معماری اجازه می‌دهد چندین سرور به طور همزمان روی یک پایگاه داده واحد کار کنند و در عین حال کاربران احساس کنند که فقط با یک دیتابیس سروکار دارند.

در این مقاله آموزش Oracle در بخش آموزش معماری اوراکل ،به زبان ساده و کاربردی بررسی می‌کنیم که معماری Oracle RAC چگونه طراحی شده است، اجزای آن چیست و چگونه باعث افزایش پایداری و مقیاس‌پذیری سیستم می‌شود.

تصور کنید در یک اتاق شلوغ هستید و دارید روی یک تابلوی بزرگ تغییراتی می‌دهید. اگر ناگهان تصمیم بگیرید اشتباهتان را اصلاح کنید، باید راهی برای برگرداندن تابلو به حالت قبل داشته باشید.

در دنیای پایگاه داده، این “تابلوی بزرگ” داده‌های شماست و “Undo Tablespace” مثل یک دوربین عکاس سریع عمل می‌کند که قبل از هر تغییری، از وضعیت قبلی عکس می‌گیرد!

بدون این مکانیزم، اگر شما یک دستور UPDATE را اجرا می‌کردید و بعد متوجه خطا می‌شدید، نه راهی برای پس گرفتن داده‌ها بود و نه خوانندگان می‌توانستند همزمان با ویرایشگر شما، اطلاعات قدیمی را ببینند.

پیشنهاد می کنم این مقاله زیر رو حتما مطالعه کنی.

در این مقاله شما می خوانید

Oracle RAC چیست؟

Oracle RAC مخفف Real Application Clusters است.

این فناوری به شما اجازه می‌دهد چندین Oracle Instance روی چندین سرور مختلف اجرا شوند اما همه آن‌ها به یک پایگاه داده مشترک متصل باشند.

در معماری سنتی پایگاه داده:

  • یک سرور
  • یک Instance
  • یک Database

اگر همان سرور دچار مشکل شود، کل سیستم پایگاه داده از دسترس خارج می‌شود.

اما در معماری RAC:

  • چندین سرور (Node)
  • هر سرور یک Instance
  • همه Instanceها به یک Database مشترک متصل هستند

به همین دلیل اگر یکی از سرورها از کار بیفتد، سایر سرورها همچنان به کاربران سرویس می‌دهند.

اجزای اصلی معماری Oracle RAC

برای درک بهتر RAC باید با اجزای اصلی آن آشنا شویم.

Node (گره یا سرور)

هر سروری که در کلاستر RAC قرار دارد یک Node نامیده می‌شود.

برای مثال ممکن است یک کلاستر RAC شامل این سرورها باشد:

Node1

Node2

Node3

هر Node دارای سیستم عامل، نرم‌افزار اوراکل و یک Instance مستقل است.

هر Node در RAC یک Instance مخصوص خود دارد.

هر Instance شامل دو بخش اصلی است:

  1. حافظه اصلی دیتابیس (SGA)
  2. Processهای پس‌زمینه

در حالی که Instanceها جدا هستند، همه آن‌ها به یک پایگاه داده مشترک دسترسی دارند.

پایگاه داده مشترک (Shared Database)

در RAC فقط یک Database وجود دارد اما چندین Instance به آن دسترسی دارند.

فایل‌های اصلی دیتابیس شامل:

  • Data Files
  • Control Files
  • Redo Log Files
  • Temp Files

این فایل‌ها روی یک Storage مشترک قرار دارند تا همه Nodeها بتوانند به آن‌ها دسترسی داشته باشند.

Shared Storage

برای ذخیره فایل‌های دیتابیس از یک فضای ذخیره‌سازی مشترک استفاده می‌شود.

معمولاً از تکنولوژی‌های زیر استفاده می‌شود:

  • SAN Storage
  • NAS Storage
  • Oracle ASM

وجود Storage مشترک باعث می‌شود همه Instanceها بتوانند همزمان به داده‌ها دسترسی داشته باشند.

Private Interconnect

یکی از مهم‌ترین بخش‌های RAC شبکه‌ای است که Nodeها را به هم متصل می‌کند. این شبکه Private Interconnect نام دارد.

کاربردهای این شبکه شامل موارد زیر است:

  • تبادل اطلاعات بین Instanceها
  • هماهنگی Cacheها
  • مدیریت Lockها
  • انتقال بلاک‌های دیتابیس

سرعت این شبکه تأثیر مستقیم بر عملکرد RAC دارد.

Oracle Clusterware

Oracle Clusterware نرم‌افزاری است که کل کلاستر RAC را مدیریت می‌کند.

وظایف آن شامل:

  • مدیریت Nodeها
  • مدیریت Instanceها
  • تشخیص خرابی سرورها
  • انجام Failover
  • مدیریت منابع کلاستر

در واقع Clusterware مانند مدیر کل کلاستر RAC عمل می‌کند.

Cache Fusion قلب معماری Oracle RAC

بزرگ‌ترین چالش در RAC هماهنگی داده‌ها بین Instanceها است.

فرض کنید:

  • Instance1 یک بلاک از دیتابیس را در حافظه دارد
  • Instance2 هم به همان بلاک نیاز دارد

در سیستم‌های سنتی Instance دوم باید بلاک را از دیسک بخواند.

اما در RAC مکانیزمی به نام Cache Fusion وجود دارد.

در Cache Fusion اگر یک بلاک در حافظه Instance دیگر وجود داشته باشد، آن بلاک مستقیماً از طریق شبکه Interconnect منتقل می‌شود و نیازی به خواندن از دیسک نیست.

این کار باعث می‌شود:

  • سرعت دسترسی به داده‌ها افزایش یابد
  • Disk I/O کاهش پیدا کند
  • عملکرد سیستم بهتر شود

مثال از نحوه کار RAC

فرض کنید جدولی به نام Employees در پایگاه داده وجود دارد.

مرحله اول

کاربر A به Node1 متصل می‌شود و رکوردی را می‌خواند.

Instance1 بلاک مربوط به این رکورد را از دیسک خوانده و در حافظه Cache ذخیره می‌کند.

مرحله دوم

کاربر B به Node2 متصل می‌شود و همان رکورد را درخواست می‌کند.

در RAC به جای خواندن مجدد از دیسک، Node2 بلاک مورد نظر را از Cache موجود در Node1 دریافت می‌کند.

این همان فرآیند Cache Fusion است.

Global Cache Service و Global Enqueue Service

برای مدیریت هماهنگی در سطح کلاستر، اوراکل از دو سرویس مهم استفاده می‌کند.

Global Cache Service (GCS)

این سرویس وظیفه مدیریت Cache در کل کلاستر را بر عهده دارد و مشخص می‌کند هر بلاک در کدام Instance قرار دارد.

Global Enqueue Service (GES)

این سرویس مسئول مدیریت Lockها در کل کلاستر است و از بروز تداخل در عملیات Update جلوگیری می‌کند.

مزایای استفاده از Oracle RAC

استفاده از RAC مزایای مهمی برای سازمان‌ها دارد.

دسترس‌پذیری بالا (High Availability)

اگر یکی از سرورها از کار بیفتد، سایر Nodeها همچنان به کاربران سرویس می‌دهند.

مقیاس‌پذیری (Scalability)

در صورت افزایش بار سیستم می‌توان Nodeهای جدید به کلاستر اضافه کرد بدون اینکه نیاز به تغییر در ساختار دیتابیس باشد.

توزیع بار (Load Balancing)

اتصالات کاربران بین Nodeهای مختلف توزیع می‌شود و بار سیستم به شکل متعادل مدیریت می‌شود.

کاربرد Oracle RAC

Oracle RAC در بسیاری از سیستم‌های حیاتی استفاده می‌شود، مانند:

  • سیستم‌های بانکی
  • سیستم‌های پرداخت
  • شرکت‌های مخابراتی
  • سیستم‌های ERP سازمانی
  • پلتفرم‌های مالی بزرگ

برای مثال در یک بانک ممکن است چند Node مختلف برای مدیریت تراکنش‌های ATM، موبایل بانک و اینترنت بانک استفاده شوند تا سیستم همیشه در دسترس باشد.

سوالات متداول درباره معماری Oracle RAC

Oracle RAC یا Real Application Clusters فناوری کلاسترینگ در پایگاه داده اوراکل است که اجازه می‌دهد چندین سرور به طور همزمان به یک پایگاه داده مشترک متصل شوند.

این معماری باعث افزایش دسترس‌پذیری (High Availability)، توزیع بار (Load Balancing) و مقیاس‌پذیری (Scalability) سیستم می‌شود.

در نتیجه اگر یکی از سرورها از کار بیفتد، سایر سرورها همچنان به کاربران سرویس می‌دهند و سیستم پایگاه داده متوقف نمی‌شود.

Cache Fusion مکانیزمی در Oracle RAC است که امکان تبادل بلاک‌های داده بین Instanceهای مختلف را فراهم می‌کند.

اگر یک Instance به بلاکی نیاز داشته باشد که در حافظه Instance دیگر قرار دارد، آن بلاک از طریق شبکه Interconnect مستقیماً از حافظه Instance دیگر منتقل می‌شود.

این فرآیند باعث کاهش دسترسی به دیسک و افزایش سرعت پردازش داده‌ها در کلاستر RAC می‌شود.

Oracle RAC و Oracle Data Guard هر دو برای افزایش پایداری سیستم استفاده می‌شوند اما کاربرد متفاوتی دارند.

در Oracle RAC چندین Instance روی چند سرور اجرا می‌شوند اما همه آن‌ها به یک پایگاه داده مشترک متصل هستند.

در مقابل، Oracle Data Guard برای ایجاد نسخه پشتیبان از پایگاه داده استفاده می‌شود و شامل یک دیتابیس Primary و یک یا چند دیتابیس Standby است که داده‌ها را به صورت Replication دریافت می‌کنند.

معماری Oracle RAC از چند بخش اصلی تشکیل شده است.

مهم‌ترین اجزا شامل Nodeها (سرورها)، Oracle Instanceها، Shared Storage، شبکه Private Interconnect و Oracle Clusterware هستند.

این اجزا با همکاری یکدیگر امکان اجرای همزمان چند Instance روی یک پایگاه داده مشترک را فراهم می‌کنند و هماهنگی داده‌ها در کل کلاستر را مدیریت می‌کنند.

جمع‌بندی

Oracle RAC یکی از پیشرفته‌ترین معماری‌های پایگاه داده برای ایجاد سیستم‌های پایدار، مقیاس‌پذیر و بدون توقف است.

در این معماری چندین سرور به طور همزمان روی یک پایگاه داده واحد کار می‌کنند و با استفاده از فناوری‌هایی مانند Cache Fusion، Clusterware و Shared Storage هماهنگی کامل بین آن‌ها برقرار می‌شود.

به همین دلیل Oracle RAC یکی از محبوب‌ترین راهکارها برای سازمان‌هایی است که به دیتابیس‌های بسیار پایدار و پرظرفیت نیاز دارند.

سؤالی درباره این مقاله داری؟

اگر نکته‌ای در این مقاله برات مبهم بود یا خواستی بیشتر بدونی، همین حالا برام بنویس تا دقیق و صمیمی پاسخت رو بدم — مثل یه گفت‌وگوی واقعی 💬

برو به صفحه پرسش و پاسخ

میثم راد

من یه برنامه نویسم که حسابی با دیتابیس اوراکل رفیقم! از اونایی ام که تا چیزی رو کامل نفهمم،ول کن نیستم، یادگرفتن برام مثل بازیه، و نوشتن اینجا کمک می کنه تا چیزایی که یاد گرفتم رو با بقیه به شریک بشم، با هم پیشرفت کنیم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *