Artarad_PostgreSQL

SYNCHRONOUS و 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 هستید، ممکن است پس از انجام تراکنش در سرور اصلی، داده ها در حالت آماده به کار قرار گیرند. معمولاً یک تأخیر کوچک در تکرار وجود دارد که می‌تواند باعث از دست رفتن (معمولاً) اطلاعات جزئی در صورت خرابی شود.

 

artarad_postgresql_1

artarad_postgresql_1

 

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

 

Cascaded replication

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

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

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

 

 

Synchronous replication در PostgreSQL

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

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

 

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

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

 

artarad_postgresql_2

artarad_postgresql_2

 

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

 

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

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

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

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

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

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

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