🔵 عنوان مقاله
Postgres Migrations Using Logical Replication (7 minute read)
🟢 خلاصه مقاله:
مهاجرت پایگاهدادههای بزرگ Postgres بدون توقف طولانی دشوار است؛ بهویژه در RDS که دسترسی مستقیم به WAL وجود ندارد. روشهای سنتی مانند pg_dump/pg_restore برای دادههای کم مناسباند اما در مقیاس ترابایتی باعث قطعی طولانی میشوند. پشتیبانگیری فیزیکی مبتنی بر WAL برای کلونگیری مفید است، اما در جابهجایی منطقی، تغییرات طرح، یا مهاجرت بین پلتفرمها کارایی ندارد و معمولاً به دسترسی WAL نیاز دارد.
راهحل عملی، logical replication است: پس از همگامسازی اولیه، تغییرات ردیفی بهصورت پیوسته به مقصد استریم میشود تا در زمان برش نهایی، فقط وقفهای کوتاه نیاز باشد. با این حال، logical replication طرح، ایندکسها و sequences را منتقل نمیکند؛ بنابراین باید طرح و ایندکسها را از قبل در مقصد بسازید و sequences را پیش از برش با setval همگام کنید. وجود کلید اصلی یا تنظیم مناسب REPLICA IDENTITY، پایش تاخیر تکرار و مدیریت تراکنشهای بلندمدت ضروری است.
طرح کلی مهاجرت شامل این مراحل است: آمادهسازی مقصد و اعمال طرح؛ بارگذاری اولیه داده (مثلاً با pg_dump --data-only و اجرای موازی)؛ ایجاد PUBLICATION در مبدأ و SUBSCRIPTION در مقصد؛ پایش pg_stat_subscription و اعتبارسنجی داده؛ سپس توقف موقت نوشتن، صبر تا صفر شدن تاخیر، همترازی sequences، سوئیچ برنامه به مقصد و نگهداشتن مبدأ در حالت فقطخواندنی برای بازگشت احتمالی. همچنین باید سازگاری نسخهها، پهنایباند شبکه، و محدودیتهای RDS را در نظر بگیرید. برای Postgres-to-Postgres، logical replication معمولاً کمهزینهترین مسیر به مهاجرت با توقف حداقلی است.
#Postgres #LogicalReplication #DatabaseMigration #ZeroDowntime #AWSRDS #WAL #pg_dump #DevOps
🟣لینک مقاله:
https://www.crunchydata.com/blog/postgres-migrations-using-logical-replication?utm_source=tldrdata
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Postgres Migrations Using Logical Replication (7 minute read)
🟢 خلاصه مقاله:
مهاجرت پایگاهدادههای بزرگ Postgres بدون توقف طولانی دشوار است؛ بهویژه در RDS که دسترسی مستقیم به WAL وجود ندارد. روشهای سنتی مانند pg_dump/pg_restore برای دادههای کم مناسباند اما در مقیاس ترابایتی باعث قطعی طولانی میشوند. پشتیبانگیری فیزیکی مبتنی بر WAL برای کلونگیری مفید است، اما در جابهجایی منطقی، تغییرات طرح، یا مهاجرت بین پلتفرمها کارایی ندارد و معمولاً به دسترسی WAL نیاز دارد.
راهحل عملی، logical replication است: پس از همگامسازی اولیه، تغییرات ردیفی بهصورت پیوسته به مقصد استریم میشود تا در زمان برش نهایی، فقط وقفهای کوتاه نیاز باشد. با این حال، logical replication طرح، ایندکسها و sequences را منتقل نمیکند؛ بنابراین باید طرح و ایندکسها را از قبل در مقصد بسازید و sequences را پیش از برش با setval همگام کنید. وجود کلید اصلی یا تنظیم مناسب REPLICA IDENTITY، پایش تاخیر تکرار و مدیریت تراکنشهای بلندمدت ضروری است.
طرح کلی مهاجرت شامل این مراحل است: آمادهسازی مقصد و اعمال طرح؛ بارگذاری اولیه داده (مثلاً با pg_dump --data-only و اجرای موازی)؛ ایجاد PUBLICATION در مبدأ و SUBSCRIPTION در مقصد؛ پایش pg_stat_subscription و اعتبارسنجی داده؛ سپس توقف موقت نوشتن، صبر تا صفر شدن تاخیر، همترازی sequences، سوئیچ برنامه به مقصد و نگهداشتن مبدأ در حالت فقطخواندنی برای بازگشت احتمالی. همچنین باید سازگاری نسخهها، پهنایباند شبکه، و محدودیتهای RDS را در نظر بگیرید. برای Postgres-to-Postgres، logical replication معمولاً کمهزینهترین مسیر به مهاجرت با توقف حداقلی است.
#Postgres #LogicalReplication #DatabaseMigration #ZeroDowntime #AWSRDS #WAL #pg_dump #DevOps
🟣لینک مقاله:
https://www.crunchydata.com/blog/postgres-migrations-using-logical-replication?utm_source=tldrdata
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Crunchy Data
Postgres Migrations Using Logical Replication | Crunchy Data Blog
Instructions and tips for using logical replication to migrate Postgres to a new platform or host.