مهاجرت از طریق Dump and Restore

برای انتقال پایگاه داده‌های کوچک و با قابلیت تحمل Downtime تا ۱ ساعت، راحت‌ترین روش انتقال استفاده از ابزارهای استاندارد pg_dump و pg_restore برای انتقال داده است.

پیش‌نیازها

  • نصب ابزارهای PostgreSQL client مانند pg_dump، pg_restore، psql بر روی ماشینی که به پایگاه داده دسترسی دارد. توصیه می‌شود برای جلوگیری از بروز خطا همواره نسخه‌ی کلاینت سازگار با سرور نصب شود.
  • دسترسی به پایگاه‌داده مبدأ و مقصد
  • اتصال به کلاستر مقصد مطابق اتصال به پایگاه‌داده

خروجی گرفتن از پایگاه‌داده مبدأ

فرمت سفارشی (توصیه‌شده):

pg_dump -h <source-host> -U <source-user> -p <source-port> -Fc <source-database> > backup.dump

فرمت متنی (SQL ساده):

pg_dump -h <source-host> -U <source-user> -p <source-port> <source-database> > backup.sql

وارد کردن به کلاستر ستون

بازیابی از فرمت سفارشی:

pg_restore -h <target-host> -U sdb_admin -p 5432 -d <target-database> --jobs 4 backup.dump

وارد کردن از فرمت متنی:

psql -h <target-host> -U sdb_admin -p 5432 -d <target-database> < backup.sql

خروجی گرفتن از کلاستر ستون

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

pg_dump -h <primary-host> -U sdb_admin -p 5432 -Fc <source-database> > sotoon-backup.dump

برای بکاپ تمامی پایگاه‌داده‌های کلاستر:

pg_dumpall -h <primary-host> -U sdb_admin -p 5432 --no-role-passwords > sotoon-full-backup.sql

استفاده از --no-role-passwords سبب می‌شود که پسورد کاربران در خروجی dump وجود نداشته باشد. این فلگ به جلوگیری از خطای permission denied هنگام دسترسی به جدول pg_authid کمک می‌کند.

پس از وارد کردن داده

پس از اتصال موفق، اجرای ANALYZE به بهینه‌سازی برنامه‌ریز کوئری کمک می‌کند:

ANALYZE;

سپس رشته اتصال اپلیکیشن‌ها را به Endpoint کلاستر جدید به‌روزرسانی کنید.