يوضح هذا الدليل خطوة بخطوة كيفية إعداد Amazon Aurora MySQL لنسخ البيانات إلى ClickHouse Cloud باستخدام MySQL ClickPipe. للاطلاع على الأسئلة الشائعة حول MySQL CDC، راجع صفحة الأسئلة الشائعة لـ MySQL.
يُعد binlog مجموعةً من ملفات السجل التي تحتوي على معلومات عن التعديلات التي تُجرى على البيانات في مثيل خادم MySQL، وتكون ملفات binlog مطلوبةً للنسخ المتماثل. لتهيئة الاحتفاظ بـ binlog في Aurora MySQL، يجب تمكين التسجيل الثنائي وزيادة فترة الاحتفاظ بالـ binlog.
1. تمكين التسجيل الثنائي عبر النسخ الاحتياطية المؤتمتة
تحدد ميزة النسخ الاحتياطية المؤتمتة ما إذا كان التسجيل الثنائي مفعّلًا أو معطّلًا في MySQL. يمكنك تهيئة النسخ الاحتياطية المؤتمتة لمثيلك من خلال RDS Console بالانتقال إلى Modify > Additional configuration > Backup ثم تحديد مربع الاختيار Enable automated backups (إذا لم يكن محددًا بالفعل).
نوصي بضبط فترة الاحتفاظ بالنسخ الاحتياطية على مدة طويلة نسبيًا، وفقًا لحالة استخدام النسخ المتماثل.
2. زيادة فترة الاحتفاظ بالـ binlog
إذا حاولت ClickPipes استئناف النسخ المتماثل وكانت ملفات binlog المطلوبة قد حُذفت بسبب قيمة الاحتفاظ بالـ binlog المُعَدّة، فسينتقل ClickPipe إلى حالة خطأ وستلزم إعادة المزامنة.
بشكل افتراضي، يحذف Aurora MySQL السجل الثنائي بأسرع وقت ممكن (أي الحذف المؤجل). نوصي بزيادة فترة الاحتفاظ بالـ binlog إلى 72 ساعة على الأقل لضمان توفر ملفات السجل الثنائي للنسخ المتماثل في سيناريوهات الفشل. لتعيين فترة احتفاظ للسجل الثنائي (binlog retention hours)، استخدم الإجراء mysql.rds_set_configuration:
mysql=> call mysql.rds_set_configuration('binlog retention hours', 72);
إذا لم يتم تعيين هذا الإعداد، أو تم تعيينه على فترة زمنية قصيرة، فقد يؤدي ذلك إلى حدوث فجوات في سجلات MySQL الثنائية، مما يعيق قدرة ClickPipes على استئناف النسخ المتماثل.
يمكن العثور على مجموعة المعلمات عند النقر على مثيل MySQL الخاص بك في RDS Console، ثم الانتقال إلى علامة التبويب Configuration.
إذا كان لديك cluster لـ MySQL، فيمكن العثور على المعلمات أدناه في مجموعة معلمات DB cluster بدلًا من مجموعة معلمات DB instance.
انقر على رابط مجموعة المعلمات، وسيأخذك ذلك إلى صفحتها المخصصة. ينبغي أن ترى زر Edit في أعلى اليمين.
يجب ضبط المعلمات التالية كما يلي:
- تعيين
binlog_format إلى ROW.
- تعيين
binlog_row_metadata إلى FULL.
- تعيين
binlog_row_image إلى FULL.
بعد ذلك، انقر على Save Changes في الزاوية العلوية اليمنى. قد تحتاج إلى إعادة تشغيل المثيل الخاص بك حتى تدخل التغييرات حيز التنفيذ — ويمكنك معرفة ذلك إذا رأيت Pending reboot بجانب رابط مجموعة المعلمات في علامة التبويب Configuration الخاصة بمثيل Aurora.
يدعم MySQL ClickPipe أيضًا النسخ المتماثل من دون وضع GTID. ومع ذلك، يُوصى بتمكين وضع GTID لتحسين الأداء وتسهيل استكشاف الأخطاء وإصلاحها.
تُعد Global Transaction Identifiers (GTIDs) معرّفات فريدة تُسنَد إلى كل معاملة تم تثبيتها في MySQL. وهي تُبسّط النسخ المتماثل لـ binlog وتجعل استكشاف الأخطاء وإصلاحها أكثر سهولة. نوصي بتمكين وضع GTID، بحيث يتمكن MySQL ClickPipe من استخدام النسخ المتماثل المستند إلى GTID.
النسخ المتماثل المستند إلى GTID مدعوم في Amazon Aurora MySQL v2 (MySQL 5.7) وv3 (MySQL 8.0)، وكذلك Aurora Serverless v2. لتمكين وضع GTID لمثيل Aurora MySQL الخاص بك، اتبع الخطوات التالية:
- في RDS Console، انقر على مثيل MySQL الخاص بك.
- انقر على علامة التبويب Configuration.
- انقر على رابط مجموعة المعلمات.
- انقر على زر Edit في الزاوية العلوية اليمنى.
- اضبط
enforce_gtid_consistency على ON.
- اضبط
gtid-mode على ON.
- انقر على Save Changes في الزاوية العلوية اليمنى.
- أعد تشغيل المثيل لتصبح التغييرات سارية المفعول.
اتصل بمثيل Aurora MySQL الخاص بك باستخدام مستخدم مسؤول، ثم نفّذ الأوامر التالية:
-
أنشئ مستخدمًا مخصصًا لـ ClickPipes:
CREATE USER 'clickpipes_user'@'%' 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 المذكورة في الوثائق إلى قواعد الدخول في مجموعة الأمان الخاصة بـ Aurora.
الوصول الخاص عبر AWS PrivateLink
للاتصال بمثيل Aurora MySQL الخاص بك عبر شبكة خاصة، يمكنك استخدام AWS PrivateLink. اتبع دليل إعداد AWS PrivateLink لـ ClickPipes لإعداد الاتصال.
الآن، بعد أن أصبح مثيل Amazon Aurora MySQL الخاص بك مُعَدًّا للنسخ المتماثل عبر binlog ومتصلًا بشكل آمن بـ ClickHouse Cloud، يمكنك إنشاء أول MySQL ClickPipe لك. للاطلاع على الأسئلة الشائعة حول MySQL CDC، راجع صفحة الأسئلة الشائعة لـ MySQL.