pg_dump وpg_restore.
المتطلبات المسبقة
- إمكانية الوصول إلى قاعدة بيانات PostgreSQL المصدر لديك.
- تثبيت
pg_dumpوpg_restoreعلى جهازك المحلي. وعادةً ما يكونان مضمَّنين ضمن تثبيتات PostgreSQL. وإذا لم يكونا كذلك، يمكنك تنزيلهما من الموقع الرسمي لـ PostgreSQL.
الإعداد
- جدولان:
eventsوusers. يحتويeventsعلى مليون صف، بينما يحتويusersعلى ألف صف. - يحتوي
eventsعلى فهرس. - عرض مبني على جدول
events. - بضع تسلسلات
أنشئ ملف تفريغ لقاعدة البيانات المصدر
pg_dump لإنشاء ملف تفريغ للكائنات المذكورة أعلاه. هذا أمر بسيط:
- استبدل
<user>و<password>و<host>و<port>و<database>ببيانات اعتماد قاعدة بيانات المصدر. يوفّر معظم مزوّدي Postgres سلسلة سلسلة الاتصال يمكنك استخدامها مباشرةً. - يحدّد
--format directoryأننا نريدتفريغبتنسيق directory، وهو مناسب لـpg_restore. - يحدّد
-f rds-dumpdirectory الإخراج لملفاتتفريغ. لاحظ أن هذا directory سيُنشأ تلقائيًا ويجب ألا يكون موجودًا مسبقًا. - يمكنك أيضًا تنفيذ عملية
تفريغبالتوازي بإضافة العلامة--jobsمتبوعة بعدد jobs المتوازية التي تريد تشغيلها. لمزيد من التفاصيل، راجع وثائق pg_dump.
رحّل ملف تفريغ إلى ClickHouse Managed Postgres
pg_restore.
أنشئ مثيل ClickHouse Managed Postgres
استعادة التفريغ
pg_restore لاستعادة التفريغ إلى مثيل ClickHouse Managed Postgres لدينا:
- يوفّر
--verboseمخرجات تفصيلية أثناء عملية الاستعادة. - يمكنك أيضًا استخدام العلامة
--jobsهنا لتنفيذ عملية الاستعادة بالتوازي. لمزيد من التفاصيل، راجع توثيق pg_restore.
تحقّق من الترحيل
اعتبارات
- تأكد من توافق إصدارات PostgreSQL بين قاعدتَي البيانات المصدر والهدف.
قد يؤدي استخدام إصدار
pg_dumpأقدم من الخادم المصدر إلى فقدان بعض الميزات أو حدوث مشكلات في الاستعادة. ومن الأفضل استخدام الإصدار الرئيسي نفسه لـpg_dumpالخاص بقاعدة البيانات المصدر، أو إصدار رئيسي أحدث. - قد تستغرق قواعد البيانات الكبيرة وقتًا ملحوظًا لتفريغها واستعادتها.
خطط لذلك بما يساعد على تقليل فترة التوقف إلى الحد الأدنى، وفكّر في استخدام عمليات التفريغ/الاستعادة المتوازية (
--jobs) حيثما كان ذلك مدعومًا. - لاحظ أن
pg_dump/pg_restoreلا ينسخان جميع الكائنات المرتبطة بقاعدة البيانات ولا حالة التشغيل. يشمل ذلك الأدوار وعضوياتها، وفتحات النسخ المتماثل، والتهيئة على مستوى الخادم (مثلpostgresql.confوpg_hba.conf)، وtablespaces، وإحصاءات وقت التشغيل.