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