مسعود سلطانی راد
مسعود سلطانی راد
خواندن ۳ دقیقه·۱۰ ماه پیش

SYNCHRONOUS AND ASYNCHRONOUS REPLICATION در پایگاه داده Postgresql


در سال های اخیر، تکرار جریان یکی از ویژگی های اصلی معرفی شده در PostgreSQL بوده است. ایده این است که از transaction log PostgreSQL (WAL) برای همگام سازی تعداد دلخواه سرویس و تکثیر داده ها در داخل یک خوشه استفاده شود. در PostgreSQL همانند سازی به دو صورت انجام می شود:

  • همزمان وهمانندسازی ناهمزمان

شما می توانید با توجه به نیاز خود تصمیم بگیرید که کدام روش برای شما مفیدتر است.

Asynchronous Replication در PostgreSQL

در صورت خرابی سرور، ایده خوبی است که یک نسخه آماده به کار از سرور اصلی خود را در دسترس داشته باشید. خوشبختانه، PostgreSQL ابزاری را برای دستیابی به آن دقیقاً ارائه می دهد. مدیران می توانند به راحتی کپی های فقط خواندنی یک سرور اصلی ایجاد کنند و از آن کپی ها برای اهداف مختلفی مانند:

  • پشتیبان گیری مداوم
  • خطاهای خودکار
  • کاهش حجم کاری فقط خواندنی
  • دستیابی به افزونگی های جغرافیایی

Asynchronous راه استاندارد برای تکثیر داده ها در دنیای PostgreSQL است و یک روش قابل اعتماد و آسان برای توزیع داده ها و ایجاد امنیت بیشتر در تنظیمات شما ارائه می دهد.

مزایای اصلی Asynchronous Replication سربار کم و سادگی است. در نتیجه asynchronous replication راه‌حل ایده‌آلی برای automatic failovers و enterprise-grade redundancies است.

معرفی معماری پایگاه داده PostgreSQL

نحوه عملکرد Asynchronous Replication

اگر در حال اجرای asynchronous replication هستید، ممکن است پس از انجام تراکنش در سرور اصلی، داده ها در حالت آماده به کار قرار گیرند. معمولاً یک تأخیر کوچک در تکرار وجود دارد که می‌تواند باعث از دست رفتن (معمولاً) اطلاعات جزئی در صورت خرابی شود.


در بیشتر موارد این کاملاً قابل قبول است زیرا Asynchronous Replication هزینه کمی را به همراه دارد و سرعت اولیه را کاهش نمی دهد.

Cascaded replication

در PostgreSQL، تکثیر نه تنها از یک اولیه به یک آماده به کار منفرد امکان پذیر است، بلکه امکان تکرار از یک اولیه به حالت آماده به کار چندگانه یا استفاده از حالت آماده به کار برای تکرار به حالت آماده به کار بیشتر نیز وجود دارد (Cascaded replication). اگر به دنبال یک راه حل Replication PostgreSQL با توزیع جغرافیایی هستید، Cascading گزینه خوبی می باشد.

به مثال زیر توجه کنید:

سرور پایگاه داده اصلی شما در نیویورک، ایالات متحده آمریکا مستقر است. شما می خواهید در فرانکفورت، اشتوتگارت، برلین و آخن (آلمان) کپی ایجاد کنید. اگر همه کپی‌های شما مستقیماً به سرور اصلی نیویورک متصل شده باشند، داده‌ها باید چهار بار در سراسر اقیانوس اطلس ارسال شوند. Cascaded replication جایگزین خوبی است. می توانید سرور فرانکفورت را به اصلی در ایالات متحده متصل کنید و داده ها را از سرور فرانکفورت به داخل آلمان ارسال کنید.

ارتباط با ما

جهت دریافت خدمات مشاوره، آموزش و نگهداری پایگاه داده Postgresql با ما در ارتباط باشد

Synchronous replication در PostgreSQL

اگر نمی توانید ریسک از دست دادن یک COMMIT را بپذیرید، ممکن است Synchronous replication همان چیزی باشد که به دنبال آن هستید. در PostgreSQL، می‌توانید به‌طور همزمان به هر تعداد که می‌خواهید در حالت Standby تکرار کنید تا مطمئن شوید که یک COMMIT تنها زمانی معتبر است که توسط تعداد مورد نظر سرور PostgreSQL تأیید شود.

Synchronous replication بالاترین امنیت ممکن را برای تراکنش‌های شما تضمین می‌کند.

نحوه عملکرد Synchronous replication

این تضمین می کند که هیچ داده ای نمی تواند از بین برود. هم اکنون به چگونگی کارکرد آن می پردازیم.

یک تراکنش تنها در صورتی می تواند برگردد که تعداد کافی از حالت آماده به کار نوشتن را تایید کرده باشند.

ویژگی های پیشرفته: Quorum COMMIT

با معرفی PostgreSQL 10.0، حتی از روش های پیچیده تری COMMIT پشتیبانی می شود. یکی از قابل‌توجه‌ترین ویژگی‌ها، توانایی انجام «quorum COMMITs » است.

FIRST num_sync (standby_name [,…]) NY num_sync (standby_name [,…])

ایده این است که به توسعه دهندگان و مدیران راه های دقیق تری برای پیکربندی Replication داده شود.

postgresqlخدمات postgresqlمشاوره postgresqlآموزش postgresqlمسعود سلطانی راد
چند سالی هست در حوزه داده ها ( نگهداری و تحلیل آنها) فعالیت دارم و همیشه سعی کردم آموخته هایم رو به اشتراک بگذارم soltanirad@artarad.ir www.artarad.ir
شاید از این پست‌ها خوشتان بیاید