جابهجایی دادههای پستگرس به دارکوب
مقدمه
یکی از دغدغههایی که کاربران هنگام انتقال به پلتفرم ابری دارکوب دارند، انتقال دادههای دیتابیس پستگرس است. در این آموزش قصد داریم چگونگی گرفتن بکاپ (backup) از دیتابیس موجود خارج از دارکوب و بازیابی (restore) آن در پستگرس دارکوب را ببینیم.
برای این کار لازم است ابتدا یک اپ پستگرس در دارکوب بسازیم. بعد دادههای موجود در دیتابیس خارج از دارکوب را بکاپ گرفته و در اپ پستگرس دارکوب بازیابی میکنیم.
ساخت اپ پستگرس در دارکوب
شما بهراحتی و با چند کلیک میتوانید یک اپ پستگرس در دارکوب بسازید. برای این کار به مستند مربوطه مراجعه کنید.
گرفتن بکاپ از دیتابیس خارج از دارکوب
برای این کار ما از ابزار
pg_dump
استفاده میکنیم که یک
CLI
برای بکاپ گرفتن از پستگرس است.
pg_dump
میتواند بکاپ را به شکل یک فایل
SQL
یا
یک آرشیو
tar
ایجاد کند.
دستور زیر را در سیستمی که از طریق شبکه به پستگرس دسترسی دارد
اجرا کنید:
POSTGRES_DB=my_db_name
POSTGRES_USER=postgres
POSTGRES_ADDRESS=127.0.0.1
pg_dump -h $POSTGRES_ADDRESS -U $POSTGRES_USER $POSTGRES_DB > my_backup.sql
توضیحات:
- اسم دیتابیسی که قرار است بکاپ گرفته شود با
POSTGRES_DB
مشخص شده است. - نام کاربری که میخواهیم با آن به پستگرس متصل شویم را با
POSTGRES_USER
مشخض میکنیم. توجه کنید که این کاربر باید دسترسی خواندن به دیتابیسPOSTGRES_DB
داشته باشد. - آدرس دیتابیس
POSTGRES_ADDRESS
است که باید از جایی که دستور را اجرا میکنید قابل دسترسی باشد. در این مثال چون از سیستم لوکال بکاپ میگیریم نیازی به استفاده از آپشن-h
و متغیرPOSTGRES_ADDRESS
نیست. در غیر این صورت باید حتما آدرس مشخص شود.
آپشنهای دیگری هم برای این ابزار موجود است که میتوانید با مراجعه به مستندات آن از آنها آگاه شوید.
دستور فوق به شکل
SQL
بکاپ را در فایل
my_backup.sql
میریزد. با داشتن این فایل به سراغ بازیابی آن در دارکوب میرویم.
بازیابی دیتابیس در دارکوب
ابتدا در پنل دارکوب به صفحهی مربوط به اپ دیتابیس مراجعه کنید و گزینهی «دسترسی از طریق اینترنت» را فعال کنید:
سپس دکمهی «ذخیره تغییرات» را بزنید تا این تغییر ذخیره شود. چند لحظه صبر کنید و بعد صفحه را refresh کنید تا آدرس خارجی را ببینید.
برای بازیابی از
psql
استفاده میکنیم:
POSTGRES_DB=postgres
POSTGRES_USER=postgres
POSTGRES_ADDRESS=<hamravesh_address>
POSTGRES_PORT=<port>
psql -p $POSTGRES_PORT -U $POSTGRES_USER -d $POSTGRES_DB -h $POSTGRES_ADDRESS < my_backup.sql
متغیرهای این دستور هم مانند قسمت قبل هستند با این تفاوت که
این بار برای پستگرس دارکوب هستند.
POSTGRES_ADDRESS
همان آدرس خارجی است
بدون پورت. پورت را به شکل جدا در متغیر
POSTGRES_PORT
تعریف کردهایم.
میتوانید از دستوری که در بخش
"PSQL Command"
در پنل دارکوب نوشته شده هم استفاده کنید.
فایل
my_backup.sql
همان فایلی است که در قسمت قبل ساختیم.
در پایان و بعد اتمام بازیابی دادهها توصیه میشود برای مسايل امنیتی، دوباره دسترسی از طریق
اینترنت را غیرفعال کنید.