يوضح لك هذا الدليل خطوة بخطوة كيفية تهيئة Amazon RDS MySQL لنسخ البيانات إلى ClickHouse Cloud باستخدام MySQL ClickPipe. للاطلاع على الأسئلة الشائعة المتعلقة بـ MySQL CDC، راجع صفحة الأسئلة الشائعة لـ MySQL.
تمكين الاحتفاظ بالسجل الثنائي
السجل الثنائي هو مجموعة من ملفات السجل التي تتضمن معلومات عن التعديلات التي تطرأ على البيانات في مثيل خادم MySQL، وتُعد ملفات السجل الثنائي مطلوبة لعملية النسخ المتماثل. لتهيئة الاحتفاظ بالسجل الثنائي في RDS MySQL، يجب تمكين التسجيل الثنائي وزيادة فترة الاحتفاظ بـ binlog.
1. تمكين التسجيل الثنائي عبر النسخ الاحتياطي التلقائي
تحدّد ميزة النسخ الاحتياطي التلقائي ما إذا كان التسجيل الثنائي مفعّلًا في MySQL أم لا. ويمكن تهيئة النسخ الاحتياطية التلقائية لمثيلك من خلال RDS Console بالانتقال إلى Modify > Additional configuration > Backup وتحديد مربع الاختيار Enable automated backups (إذا لم يكن محددًا بالفعل).
نوصي بضبط فترة الاحتفاظ بالنسخ الاحتياطية على قيمة طويلة نسبيًا، بحسب سيناريو النسخ المتماثل لديك.
2. زيادة مدة الاحتفاظ بالـ binlog
إذا حاولت ClickPipes استئناف النسخ المتماثل وكانت ملفات binlog المطلوبة قد حُذفت بسبب قيمة الاحتفاظ بالـ binlog المُعدّة، فسينتقل ClickPipe إلى حالة خطأ وستلزم إعادة المزامنة.
يحذف Amazon RDS، افتراضيًا، السجل الثنائي بأسرع وقت ممكن (أي الحذف المؤجل). نوصي بزيادة مدة الاحتفاظ بالـ binlog إلى 72 ساعة على الأقل لضمان توفر ملفات السجل الثنائي لعمليات النسخ المتماثل في حالات الفشل. لتعيين مدة احتفاظ للسجل الثنائي (binlog retention hours)، استخدم الإجراء mysql.rds_set_configuration:
mysql=> call mysql.rds_set_configuration('binlog retention hours', 72);
إذا لم يتم ضبط هذا الإعداد أو تم ضبطه على فترة زمنية قصيرة جدًا، فقد يؤدي ذلك إلى حدوث فجوات في سجلات السجل الثنائي، مما يحدّ من قدرة ClickPipes على استئناف النسخ المتماثل.
يمكن العثور على مجموعة المعلمات عند النقر على مثيل MySQL الخاص بك في RDS Console، ثم الانتقال إلى علامة التبويب Configuration.
إذا كان لديك عنقود MySQL، فيمكن العثور على المعلمات أدناه في مجموعة المعلمات الخاصة بـ DB cluster بدلًا من مجموعة معلمات مثيل DB.
انقر على رابط مجموعة المعلمات، وسيأخذك ذلك إلى صفحتها المخصصة. ينبغي أن ترى زر Edit في أعلى اليمين.
يلزم ضبط المعلمات التالية على النحو الآتي:
- اضبط
binlog_format على ROW.
- اضبط
binlog_row_metadata على FULL
- اضبط
binlog_row_image على FULL
بعد ذلك، انقر على Save Changes في الزاوية العلوية اليمنى. قد تحتاج إلى إعادة تشغيل المثيل لكي تسري التغييرات — ويمكنك معرفة ذلك إذا رأيت Pending reboot بجانب رابط مجموعة المعلمات في علامة التبويب Configuration ضمن مثيل RDS.
يدعم MySQL ClickPipe أيضًا النسخ المتماثل من دون وضع GTID. ومع ذلك، يُوصى بتمكين وضع GTID لتحسين الأداء وتسهيل استكشاف الأخطاء وإصلاحها.
تُعد Global Transaction Identifiers (GTIDs) معرّفات فريدة تُسنَد إلى كل معاملة تم اعتمادها في MySQL. وهي تُبسّط النسخ المتماثل عبر binlog وتجعل استكشاف الأخطاء وإصلاحها أكثر سهولة. نوصي بتمكين وضع GTID حتى يتمكن MySQL ClickPipe من استخدام النسخ المتماثل المستند إلى GTID.
النسخ المتماثل المستند إلى GTID مدعوم في Amazon RDS for MySQL للإصدارات 5.7 و8.0 و8.4. لتمكين وضع GTID لمثيل Aurora MySQL لديك، اتبع الخطوات التالية:
- في RDS Console، انقر على مثيل MySQL الخاص بك.
- انقر على علامة التبويب Configuration.
- انقر على رابط مجموعة المعلمات.
- انقر على الزر Edit في الزاوية العلوية اليمنى.
- اضبط
enforce_gtid_consistency على ON.
- اضبط
gtid-mode على ON.
- انقر على Save Changes في الزاوية العلوية اليمنى.
- أعد تشغيل المثيل لتطبيق التغييرات.
يدعم MySQL ClickPipe أيضًا النسخ المتماثل من دون وضع GTID. ومع ذلك، يُوصى بتمكين وضع GTID لتحسين الأداء وتسهيل استكشاف الأخطاء وإصلاحها.
اتصل بمثيل RDS MySQL الخاص بك كمستخدم مسؤول، ثم نفّذ الأوامر التالية:
-
أنشئ مستخدمًا مخصصًا لـ ClickPipes:
CREATE USER 'clickpipes_user'@'host' IDENTIFIED BY 'some-password';
-
امنح أذونات المخطط. يوضّح المثال التالي الأذونات الخاصة بقاعدة البيانات
mysql. كرّر هذه الأوامر لكل قاعدة بيانات ولكل مضيف تريد إجراء النسخ المتماثل منهما:
GRANT SELECT ON `mysql`.* TO 'clickpipes_user'@'host';
-
امنح المستخدم أذونات النسخ المتماثل:
GRANT REPLICATION CLIENT ON *.* TO 'clickpipes_user'@'%';
GRANT REPLICATION SLAVE ON *.* TO 'clickpipes_user'@'%';
التحكم في الوصول المستند إلى عناوين IP
لتقييد حركة المرور الواردة إلى مثيل Aurora MySQL لديك، أضف عناوين IP الثابتة الخاصة بـ NAT المذكورة في الوثائق إلى Inbound rules في مجموعة أمان RDS الخاصة بك.
الوصول الخاص عبر AWS PrivateLink
للاتصال بمثيل RDS الخاص بك عبر شبكة خاصة، يمكنك استخدام AWS PrivateLink. اتبع دليل إعداد AWS PrivateLink لـ ClickPipes لإعداد هذا الاتصال.
الآن، بعد أن تم إعداد مثيل Amazon RDS MySQL لديك لنسخ binlog المتماثل والاتصال بأمان بـ ClickHouse Cloud، يمكنك إنشاء أول MySQL ClickPipe لك. وللاطلاع على الأسئلة الشائعة حول MySQL CDC، راجع صفحة الأسئلة الشائعة الخاصة بـ MySQL.