Skip to content
VDS · ڈیٹا بیس

کسی اور سرور سے ڈیٹابیس منتقل کرنا

ڈیٹابیس کو Millida VDS پر منتقل کرنے کا طریقہ: تیاری، نیٹ ورک کے ذریعے ڈمپ کی منتقلی، سالمیت کی جانچ، اور کم سے کم ڈاؤن ٹائم کے ساتھ ایپلیکیشن کی منتقلی۔

اپ ڈیٹ 23 اگست، 2026

ڈیٹا بیس مائیگریشن کمانڈز پر نہیں ٹوٹتی — یہ مراحل کی ترتیب پر ٹوٹتی ہے: لوگ پہلے ڈومین تبدیل کرتے ہیں اور پھر دریافت کرتے ہیں کہ آدھا ڈیٹا منتقل ہی نہیں ہوا۔ نیچے ایسی ترتیب دی گئی ہے جو ایسا ہونے سے روکتی ہے۔

تیاری

نئی مشین پر ڈیٹا بیس سرور کا وہی یا نیا ورژن انسٹال کریں — PostgreSQL یا MySQL۔ ڈاؤن گریڈنگ سپورٹ نہیں ہے۔

psql --version
mysql --version
df -h /

آپ کو ڈیٹا بیس کے سائز سے تقریباً 2.5 گنا خالی جگہ درکار ہوگی: ڈمپ، ان پیک شدہ ڈیٹا، اور کچھ اضافی گنجائش۔ VDS-1 پر یہ کل 40 GB بنتا ہے، لہٰذا پہلے سے منصوبہ بندی کریں۔

ایک صارف اور پرانے سرور کی طرح کی انکوڈنگ والا خالی ڈیٹا بیس بنائیں۔

ڈیٹا منتقل کرنا

سب سے آسان طریقہ SSH کے ذریعے ڈمپ ہے، بغیر کسی درمیانی فائل کے:

ssh root@OLD 'pg_dump -Fc -U shop shop' > /srv/shop.dump
pg_restore -U postgres -d shop --no-owner --role=shop /srv/shop.dump

MySQL کے لیے:

ssh root@OLD 'mysqldump --single-transaction --routines --events -u root shop' \
  | mysql -u root shop

رولز اور صارفین ڈیٹا بیس ڈمپ میں شامل نہیں ہوتے — آپ انہیں الگ ایکسپورٹ کریں: pg_dumpall --roles-only، یا انہیں دستی طور پر بنائیں — دیکھیں صارفین اور گرانٹس۔

بینڈوڈتھ 500 Mbps تک ہے، لہٰذا 20 GB کا ڈیٹا بیس چند منٹوں میں منتقل ہو جاتا ہے؛ رکاوٹ عام طور پر ڈسک رائٹ ہوتی ہے، جو ٹیئر کی وجہ سے محدود ہوتی ہے۔

سوئچ کرنے سے پہلے تصدیق کریں

صرف ”سائٹ لوڈ ہو گئی“ نہ دیکھیں، اعداد و شمار چیک کریں:

SELECT relname, n_live_tup FROM pg_stat_user_tables ORDER BY n_live_tup DESC LIMIT 20;
SELECT table_name, table_rows FROM information_schema.tables WHERE table_schema='shop';

کلیدی ٹیبلز میں قطاروں کی تعداد پرانے سرور سے موازنہ کریں، چیک کریں کہ سیکوئنسز ری سیٹ نہیں ہوئے (SELECT last_value FROM users_id_seq;)، اور ٹیسٹ موڈ میں ایپلیکیشن کو نئے ڈیٹا بیس کے ساتھ چلائیں۔

سوئچ اوور

  1. پرانے سرور پر مینٹیننس موڈ فعال کریں یا ایپلیکیشن بند کریں۔
  2. تیاری کے دوران کی گئی تبدیلیوں کا آخری ڈمپ لیں۔
  3. اسے نئی مشین پر ریسٹور کریں۔
  4. ایپلیکیشن کی کنکشن سٹرنگ تبدیل کریں اور سروس ری اسٹارٹ کریں۔
  5. پرانے سرور کو ڈیٹا حذف کیے بغیر ایک ہفتہ مزید چلتا رہنے دیں۔

پانچواں مرحلہ نہ چھوڑیں: تین دن بعد کوئی غائب ٹیبل دریافت کرنا عام سی بات ہے۔

عام غلطیاں

علامتوجہ
ریسٹور کے دوران role does not existرولز منتقل نہیں ہوئے — --no-owner کے ساتھ دستی رول بنائیں
بگڑے ہوئے حروفانکوڈنگز میں فرق: utf8mb4 یا UTF8 والے ڈیٹا بیس میں ریسٹور کریں
سیکوئنسز 1 سے شروع ہوتے ہیںڈمپ میں صرف ڈیٹا تھا، setval کے بغیر
ریسٹور گھنٹوں لے رہا ہےانڈیکسز موقع پر بن رہے ہیں؛ بڑے ڈیٹا بیس کے لیے pg_restore -j 4 استعمال کریں
درمیان میں جگہ ختم ہو گئیڈیٹا کے ساتھ ڈمپ کے سائز کا حساب نہیں رکھا گیا

مائیگریشن سے پہلے چیک کریں کہ نیا ڈیٹا بیس صرف 127.0.0.1 پر سن رہا ہے۔ ”مائیگریشن کی مدت کے لیے“ اسے عوامی طور پر ظاہر کرنے کی ضرورت نہیں — منتقلی SSH کے ذریعے ہوتی ہے، دیکھیں ریموٹ رسائی۔