نسخ البيانات نسخا متماثلا في قاعدة بيانات Azure ل MySQL - خادم مرن

ينطبق على: قاعدة بيانات Azure ل MySQL - خادم مرن

يسمح لك النسخ المتماثل للبيانات بمزامنة البيانات من خادم MySQL خارجي إلى مثيل Azure Database for MySQL Flexible Server. يمكن أن يكون الخادم الخارجي محليا، في الأجهزة الظاهرية، أو قاعدة بيانات Azure لخادم MySQL الفردي، أو خدمة قاعدة بيانات مستضافة من قبل موفري السحابة الآخرين. يعتمد النسخ المتماثل للبيانات على موضع ملف السجل الثنائي (binlog) أو النسخ المتماثل المستند إلى GTID. لمعرفة المزيد حول النسخ المتماثل ل binlog، راجع النسخ المتماثل MySQL.

إشعار

يتم دعم تكوين النسخ المتماثل للبيانات للخوادم التي تم تمكينها مع قابلية وصول عالية فقط من خلال النسخ المتماثل المستند إلى GTID.

متى يتم استخدام النسخ المتماثل للبيانات

السيناريوهات الرئيسية للنظر في استخدام النسخ المتماثل للبيانات هي:

  • مزامنة البيانات المختلطة: باستخدام النسخ المتماثل للبيانات، يمكنك الحفاظ على مزامنة البيانات بين الخوادم المحلية وقاعدة بيانات Azure لخادم MySQL المرن. تساعد هذه المزامنة في إنشاء تطبيقات مختلطة. هذا الأسلوب جذاب عندما يكون لديك خادم قاعدة بيانات محلية موجودة ولكن تريد نقل البيانات إلى منطقة أقرب إلى المستخدمين النهائيين.
  • المزامنة متعددة السحابة: بالنسبة للحلول السحابية المعقدة، استخدم النسخ المتماثل للبيانات لمزامنة البيانات بين قاعدة بيانات Azure لخادم MySQL المرن وموفري السحابة المختلفين، بما في ذلك الأجهزة الافتراضية وخدمات قواعد البيانات المستضافة في تلك السحابة.
  • الترحيل: يمكن للعملاء الترحيل في الحد الأدنى من الوقت باستخدام أدوات مفتوحة المصدر مثل MyDumper/MyLoader مع النسخ المتماثل للبيانات. من الممكن إجراء انتقال انتقائي لحمل الإنتاج من قاعدة البيانات المصدر إلى الوجهة مع تكرار البيانات.

بالنسبة لسيناريوهات ترحيل البيانات، استخدم خدمة ترحيل قاعدة بيانات Azure (DMS).

تحديد الخدمة واعتباراتها

البيانات لم تنسخ نسخا متماثلا

لا يتم نسخ قاعدة بيانات نظام mysql على مصدر الخادم. بالإضافة إلى ذلك، لا يتم نسخ التغييرات على الحسابات والأذونات على مصدر الخادم إذا قمت بإنشاء حساب على مصدر الخادم ويحتاج هذا الحساب إلى الوصول إلى النسخ المتماثل الخادم إنشاء نفس الحساب يدويا على خادم النسخ المتماثلة. لفهم الجداول في قاعدة بيانات النظام، راجع دليل MySQL.

النسخ المتماثل للبيانات مدعوم على الخوادم الممكنة ذات قابلية الوصول العالية (HA)

يتوفر دعم النسخ المتماثل للبيانات للخادم الممكن للإتاحة العالية (HA) فقط من خلال النسخ المتماثل المستند إلى GTID.

يتوفر الإجراء المخزن للنسخ المتماثل باستخدام GTID على جميع الخوادم الممكنة ل HA بالاسم mysql.az_replication_change_master_with_gtid.

عامل التصفية

تنشئ المعلمة replicate_wild_ignore_table عامل تصفية النسخ المتماثل للجداول على خادم النسخة المتماثلة. لتعديل هذه المعلمة من مدخل Microsoft Azure، انتقل إلى مثيل Azure Database for MySQL Flexible Server المستخدم كنسخة متماثلة وحدد "Server Parameters" لعرض/تحرير المعلمة replicate_wild_ignore_table .

المتطلبات

  • يجب أن يكون إصدار الخادم المصدر هو الإصدار 5.7 على الأقل من MySQL.

  • توصيتنا هي أن يكون لديك نفس الإصدار لإصدارات الخادم المصدر والنسخة المتماثلة. على سبيل المثال، يجب أن يكون كلاهما MySQL الإصدار 5.7، أو يجب أن يكون كلاهما MySQL الإصدار 8.0.

  • توصيتنا هي أن يكون لديك مفتاح أساسي في كل جدول. إذا كان لدينا جدول بدون مفتاح أساسي، فقد تواجه بطء في النسخ المتماثل.

  • يجب أن يستخدم الخادم المصدر محرك MySQL InnoDB.

  • يجب أن يكون لدى المستخدم الأذونات الصحيحة لتكوين التسجيل الثنائي وإنشاء مستخدمين جدد على الخادم المصدر.

  • يجب عدم إزالة ملفات السجل الثنائية الموجودة على الخادم المصدر قبل تطبيق النسخة المتماثلة هذه التغييرات. إذا كان المصدر هو قاعدة بيانات Azure لخادم MySQL المرن، فراجع كيفية تكوين binlog_expire_logs_seconds لخادم مرن أو خادم واحد

  • إذا تم تمكين SSL على الخادم المصدر، فتأكد من تضمين شهادة SSL CA المقدمة للمجال في الإجراء المخزن mysql.az_replication_change_master. راجع الأمثلة التالية master_ssl_ca والمعلمة.

  • تأكد من أن الجهاز الذي يستضيف مصدر الخادم يسمح لكل من حركة المرور الواردة والصادرة على المنفذ 3306.

  • مع الوصول العام، تأكد من أن الخادم المصدر لديه عنوان IP عام، أو أن DNS يمكن الوصول إليه بشكل عام، أو أن الخادم المصدر لديه اسم مجال مؤهل بالكامل (FQDN). إذا كان لديك نقطة نهاية خاصة وقمت بتعطيل الوصول العام، فلن يتم دعم النسخ المتماثل للبيانات

  • مع الوصول الخاص (تكامل VNet)، تأكد من إمكانية حل اسم الخادم المصدر وإمكانية الوصول إليه من VNet حيث يتم تشغيل مثيل Azure Database for MySQL Flexible Server. (لمزيد من التفاصيل، تفضل بزيارة تحليل الاسم للموارد في شبكات Azure الظاهرية).

المفتاح الأساسي غير المرئي الذي تم إنشاؤه

بالنسبة إلى الإصدار 8.0 من MySQL والإصدارات الأحدث، يتم تمكين المفاتيح الأساسية غير المرئية التي تم إنشاؤها (GIPK) بشكل افتراضي لجميع مثيلات Azure Database for MySQL Flexible Server. تضيف خوادم MySQL 8.0+ العمود غير المرئي my_row_id إلى الجداول ومفتاح أساسي على هذا العمود، حيث يتم إنشاء جدول InnoDB بدون مفتاح أساسي صريح. قد تؤثر هذه الميزة، عند تمكينها، على بعض حالات استخدام النسخ المتماثل للبيانات، كما هو موضح أدناه:

  • فشل النسخ المتماثل للبيانات مع خطأ النسخ المتماثل: "ERROR 1068 (42000): تم تعريف مفتاح أساسي متعدد" إذا أنشأ الخادم المصدر مفتاحا أساسيا على الجدول بدون مفتاح أساسي. للتخفيف، قم بتشغيل أمر sql التالي، وتخطي خطأ النسخ المتماثل وإعادة تشغيل النسخ المتماثل للبيانات.

    alter table <table name> drop column my_row_id, add primary key <primary key name>(<column name>);
    
  • فشل النسخ المتماثل للبيانات مع خطأ النسخ المتماثل: "ERROR 1075 (42000): تعريف جدول غير صحيح؛ يمكن أن يكون هناك عمود تلقائي واحد فقط ويجب تعريفه كمفتاح" إذا أضاف الخادم المصدر عمود auto_increment كمفتاح فريد. للتخفيف، قم بتشغيل أمر sql التالي، وقم بتعيين "sql_generate_invisible_primary_key" على إيقاف التشغيل، وتخطي خطأ النسخ المتماثل وإعادة تشغيل النسخ المتماثل للبيانات.

    alter table <table name> drop column my_row_id, modify <column name> int auto_increment;
    
  • يفشل النسخ المتماثل للبيانات إذا كان الخادم المصدر يشغل أي SQL أخرى غير مدعومة عندما يكون "sql_generate_invisible_primary_key" قيد التشغيل. على سبيل المثال، إنشاء جدول أقسام. في مثل هذا السيناريو، يتمثل التخفيف في تعيين "sql_generate_invisible_primary_key" كإيقاف تشغيل وإعادة تشغيل النسخ المتماثل للبيانات.

الخطوات التالية