المتطلبات المسبقة
- إمكانية الوصول إلى قاعدة بيانات PostgreSQL المصدر باستخدام مستخدم لديه صلاحيات النسخ المتماثل. اتبع دليل الإعداد الخاص بالمصدر الذي تستخدمه:
- Amazon RDS Postgres
- Amazon Aurora Postgres
- Supabase Postgres
- Google Cloud SQL Postgres
- Azure Flexible Server for Postgres
- Neon Postgres
- Crunchy Bridge Postgres
- TimescaleDB
- مصدر Postgres عام لأي مزوّد آخر أو لأي مثيل مستضاف ذاتيًا
- خدمة ClickHouse Managed Postgres لتكون هدف الترحيل. إذا لم تكن لديك واحدة بعد، فراجع دليل البدء السريع.
- يجب أن يكون
pg_dumpوpsqlمثبَّتين على جهازك المحلي. يأتي كلاهما ضمن أدوات PostgreSQL client القياسية.
اعتبارات قبل الترحيل
- نشر تغييرات DDL: يلتقط النسخ المتماثل المستمر (CDC) عمليات DML و
ADD COLUMN. أما تغييرات DDL الأخرى، مثلDROP COLUMNوALTER COLUMN، فلا تُنقل ويجب تطبيقها يدويًا على النظام الهدف.
إذا واجهت مشكلات أثناء الترحيل، فراجع الأسئلة الشائعة حول عمليات ترحيل Managed Postgres للاطلاع على الأخطاء الشائعة وحلولها.
الخطوة 1: الاتصال بقاعدة البيانات المصدر
افتح ClickHouse Cloud console وحدد خدمة Managed Postgres الخاص بك. في الشريط الجانبي الأيسر، انقر على مصادر البيانات. انقر على بدء الاستيراد. أدخِل تفاصيل الاتصال بقاعدة بيانات PostgreSQL المصدر: المضيف، والمنفذ، واسم المستخدم، وكلمة المرور، واسم قاعدة البيانات. فعِّل TLS إذا كان المصدر يتطلب ذلك. إذا كنت بحاجة إلى اتصال خاص بقاعدة البيانات المصدر، يمكنك اختيار SSH tunneling وتقديم تفاصيل SSH اللازمة. يتيح ذلك لعملية الترحيل الاتصال بأمان بقواعد البيانات غير المتاحة علنًا. اختر طريقة الإدخال:- التحميل الأولي + CDC — ينسخ البيانات الحالية، ثم يُبقي الوجهة متزامنة مع التغييرات المستمرة.
- التحميل الأولي فقط — نسخة لمرة واحدة، من دون نسخ متماثل مستمر.
- CDC فقط — يتخطى النسخة الأولية ويُجري نسخًا متماثلًا للتغييرات الجديدة فقط بدءًا من هذه النقطة.
الترحيل الآلي للمخطط
عند اختيار هذا الخيار، يسحب ClickPipe تلقائيًا مخطط قاعدة البيانات المصدر ويطبّقه على خدمة Managed Postgres لديك خلال مرحلة الإعداد من ClickPipe بعد إنشائه. تفترض هذه الميزة أن قاعدة البيانات الهدف فارغة، لأنها تسحب جميع كائنات قاعدة البيانات من قاعدة البيانات المصدر، بغض النظر عن الجداول التي تحددها لاحقًا في المعالج. إذا كانت قاعدة البيانات الهدف تحتوي على بيانات مسبقًا، أو كنت تريد إعدادًا أكثر تخصيصًا، فيجب اختيار الوضع اليدوي بدلًا من ذلك. حدد قاعدة البيانات الهدف من القائمة المنسدلة، أو انقر على إنشاء قاعدة بيانات جديدة لتوفير قاعدة بيانات جديدة.المراقبة
يمكنك متابعة تقدّم ترحيل المخطط في عرض تفاصيل ClickPipes. تعرض السجلات حالة ترحيل المخطط، وتظهر فيها أيضًا أي أخطاء تواجهها العملية. توجد القيود التالية على هذا الوضع:- لا يمكن للأنابيب التي تستخدم SSH tunneling استخدام الترحيل الآلي للمخطط. يجب تصدير المخطط واستيراده يدويًا.
ترحيل المخطط يدويًا
إذا كانت لديك بيانات موجودة مسبقًا في قاعدة البيانات الهدف، أو كنت ترغب في إعداد أكثر تخصيصًا بدلًا من الحالة النظيفة التي يفترضها الوضع الآلي، يمكنك اختيار الوضع اليدوي هنا.تصدير مخطط قاعدة البيانات
يعرض المعالج أمرpg_dump مُعبّأ مسبقًا بتفاصيل الاتصال بالمصدر. شغّله في الطرفية:
pg.sql في الدليل الحالي.
انقر على التالي.
استيراد المخطط إلى خدمة Managed Postgres الخاصة بك
حدد قاعدة البيانات الهدف من القائمة المنسدلة، أو انقر على إنشاء قاعدة بيانات جديدة لإنشاء واحدة جديدة. يعرض المعالج أمرpsql لتطبيق ملف تفريغ المخطط على خدمة Managed Postgres الخاصة بك. شغّله في الطرفية:
الخطوة 4: تكوين إعدادات الإدخال
حدّد الـ publication المطلوب استخدامه للنسخ المتماثل المنطقي. إذا تركت هذا الحقل فارغًا، فسيتم إنشاء publication تلقائيًا. وسّع إعدادات النسخ المتماثل المتقدمة لضبط معدل النقل:
انقر التالي.
الخطوة 5: حدِّد الجداول
حدِّد الجداول التي تريد نسخها. الجداول مُجمَّعة حسب المخطط. حدِّد جداول فردية أو وسِّع أحد المخططات لاختيارها جميعًا. انقر على إنشاء عملية ترحيل.راقب الترحيل
بعد إنشاء الترحيل، ستجده مُدرجًا في مصادر البيانات بالحالة قيد التشغيل. انقر على الترحيل لفتح العرض التفصيلي. تعرض علامة التبويب الجداول تقدّم التحميل الأوّلي لكل جدول، بما في ذلك الصفوف المُعالجة، والأقسام، ومتوسط الوقت لكل قسم. وتعرض علامة التبويب المقاييس تأخر النسخ المتماثل ومعدل النقل بمجرد بدء CDC.تحويل حركة المرور
بعد اكتمال التحميل الأولي، وعند استخدام CDC، وبلوغ تأخّر النسخ المتماثل مستوىً قريبًا من الصفر، يمكنك تحويل حركة البيانات من قاعدة بيانات Postgres المصدر إلى خدمة Managed Postgres الخاصة بك. افتح عرض تفاصيل الترحيل واختر علامة التبويب Post-migration steps. يرشدك هذا المعالج عبر الخطوات الست اللازمة لإتمام الترحيل بأمان، ويجب إكمال كل خطوة بالترتيب قبل الانتقال إلى الخطوة التالية.الخطوة 1: ضبط قاعدة بيانات Postgres المصدر على وضع القراءة فقط
أوقف عمليات الكتابة من التطبيق على المصدر حتى لا يحدث أي تباين أثناء التحويل. يعرض المعالج أمرALTER DATABASE معبّأً مسبقًا باسم قاعدة البيانات المصدر لديك — نفّذه على قاعدة البيانات المصدر:
قد تختلف هذه الخطوة تبعًا لمزوّد Postgres لديك. فقد تُقيّد الخدمات المُدارة استخدام
ALTER DATABASE أو إنهاء الاتصالات الخلفية (backends)، وتتيح بدلًا من ذلك وضع القراءة فقط عبر الـ Console الخاصة بها أو عبر مجموعات المعاملات أو بسحب صلاحيات الكتابة. راجع وثائق المزوّد لديك لمعرفة الطريقة المكافئة لجعل المصدر للقراءة فقط.الخطوة 2: التحقق من أعداد الصفوف
حدّد الجداول المنسوخة التي تريد التحقق منها. تحسب ClickPipes عدد الصفوف في كل جدول محدد لدى كل من المصدر والهدف ثم تقارن بينها. وقد تُرجع الجداول الكبيرة أعدادًا تقريبية. استخدم Select all tables للتحقق من جميع الجداول، أو ابحث عن جداول بعينها وفعّل خيارها، ثم انقر على Count rows.الخطوة 3: إيقاف الـ pipe مؤقتًا
أوقف ClickPipe مؤقتًا ليتوقف النسخ المتماثل قبل إعادة ضبط التسلسلات وتحويل حركة المرور. انقر على Pause ClickPipe وانتظر حتى يتوقف الـ pipe مؤقتًا قبل المتابعة.الخطوة 4: إعادة تعيين التسلسلات
أعد تعيين التسلسلات في الـ destination كي تتابع عمليات الـ inserts الجديدة من القيم الصحيحة. انقر على Reset sequences لمواءمة كل تسلسل مع أعلى قيمة حالية في الـ table الخاص به.الخطوة 5: تحويل حركة المرور
وجّه عمليات القراءة والكتابة إلى خدمة Managed Postgres لديك عبر تحديث عنوان URL لقاعدة بيانات تطبيقك ليشير إلى سلسلة اتصال Managed Postgres. يوفّر المعالج تفاصيل الاتصال بعدة صيغ — url وpsql وenv وyaml وjdbc — لتتمكن من نسخ الصيغة التي تناسب حزمتك التقنية. وبعد تحديث تطبيقك، انقر على Mark as completed.الخطوة 6: التنظيف
بعد إتمام التحويل والتأكد من سلامة الخدمة الجديدة، احذف الترحيل وحرّر موارد المصدر. يعرض المعالج الأمرpg_drop_replication_slot مُعبّأً مسبقًا باسم الـ slot — نفّذه على المصدر لإسقاط فتحة النسخ المتماثل: