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

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

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

على جانب التطبيقات، يتم تطوير التطبيق عادة في Java أو PHP وترحيله للتشغيل على مجموعات مقياس الجهاز الظاهري Azure أو Azure App Services أو يتم تعبئته في حاويات لتشغيله على خدمة Azure Kubernetes (AKS). مع مجموعة قياس الجهاز الظاهري، وApp Service أو AKS كبنية أساسية، يتم تبسيط قياس نطاق التطبيق من خلال توفير أجهزة ظاهرية جديدة على الفور وتكرار مكونات التطبيقات عديمة الحالة لتلبية الطلبات، إلا إنه وفي كثير من الأحيان ينتهي الأمر بقاعدة البيانات إلى أن تكون نقطة الازدحام كمكون مركزي ذي حالة خاصة.

تسمح لك ميزة النسخ المتماثل للقراءة بنسخ البيانات من الخادم المرن لدى Azure Database for MySQL إلى خادم للقراءة فقط. يمكنك النسخ المتماثل من الخادم المصدر إلى ما يصل إلى 10 نسخ متماثلة. يتم تحديث النسخ المتماثلة بصورة غير متزامنة باستخدام محرك MySQL الأصلي تقنية النسخ المتماثل المستندة إلى موضع الملف للسجل الثنائي (binlog). لمعرفة المزيد حول النسخ المتماثل ل binlog، راجع نظرة عامة على النسخ المتماثل ل Binlog MySQL.

النسخ المتماثلة هي خوادم جديدة تديرها مشابهة لقاعدة بيانات Azure المصدر للخوادم المرنة MySQL. ستتحمل رسوم الفوترة لكل نسخة متماثلة للقراءة استنادا إلى الحوسبة المقدمة في vCores والتخزين في GB/month. لمزيد من المعلومات، راجع التسعير.

ملاحظة

تتوفر ميزة النسخة المتماثلة للقراءة فقط لقاعدة بيانات Azure ل MySQL - خوادم مرنة في مستويات التسعير للأغراض العامة أو الذاكرة المحسنة. تأكد من أن الخادم المصدر في أحد مستويات التسعير هذه.

لمعرفة المزيد حول ميزات النسخ المتماثل MySQL والمشكلات، راجع وثائق النسخ المتماثل MySQL.

ملاحظة

تحتوي هذه المقالة على مراجع لمصطلح slave، هو مصطلح لم تعد Microsoft تستخدمه. عند إزالة المصطلح من البرنامج، سنزيله من هذه المقالة.

حالات الاستخدام الشائعة للنسخة المتماثلة للقراءة

تساعد ميزة النسخة المتماثلة للقراءة على تحسين أداء وحجم أحمال العمل كثيفة القراءة. يمكن عزل أحمال عمل القراءة إلى النسخ المتماثلة، بينما يمكن توجيه أحمال عمل الكتابة إلى المصدر.

السيناريوهات الشائعة هي:

  • تحجيم أحمال عمل القراءة القادمة من التطبيق باستخدام وكيل اتصال خفيف الوزن مثل ProxySQL أو استخدام نمط يستند إلى الخدمات المصغرة لتوسيع نطاق استعلامات القراءة الواردة من التطبيق لقراءة النسخ المتماثلة
  • يمكن لأحمال عمل المعلومات المهنية أو التقارير التحليلية استخدام النسخ المتماثلة للقراءة كمصدر بيانات لإعداد التقارير
  • بالنسبة لسيناريو IoT أو التصنيع حيث يتم استيعاب معلومات القياس عن بعد في محرك قاعدة بيانات MySQL بينما يتم استخدام نسخ متماثلة للقراءة متعددة للإبلاغ عن البيانات

نظرا لأن النسخ المتماثلة للقراءة فقط، فإنها لا تقلل مباشرة من أعباء سعة الكتابة على المصدر. لا تستهدف هذه الميزة الأحمال التي تتطلب الكتابة بشكل مكثف.

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

إنشاء نسخة متماثلة

إذا لم يكن لدى الخادم المصدر خوادم نسخ متماثلة موجودة، فسيتم إعادة تشغيل المصدر أولا لإعداد نفسه للنسخ المتماثل.

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

ملاحظة

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

تعرف على كيفية إنشاء نسخة متماثلة للقراءة في مدخل Microsoft Azure.

الاتصال إلى نسخة متماثلة

عند الإنشاء، ترث النسخة المتماثلة أسلوب الاتصال للخادم المصدر. لا يمكنك تغيير أسلوب الاتصال للنسخة المتماثلة. على سبيل المثال إذا كان الخادم المصدر لديه وصول خاص (تكامل VNet) فلا يمكن أن تكون النسخة المتماثلة في الوصول العام (عناوين IP المسموح بها).

ترث النسخة المتماثلة حساب المسؤول من الخادم المصدر. يتم نسخ جميع حسابات المستخدمين على الخادم المصدر إلى النسخ المتماثلة للقراءة. يمكنك الاتصال بنسخة متماثلة للقراءة فقط باستخدام حسابات المستخدمين المتوفرة على الخادم المصدر.

يمكنك الاتصال بالنسخة المتماثلة باستخدام اسم مضيفها وحساب مستخدم صالح، كما تفعل على خادم مرن لقاعدة بيانات Azure ل MySQL العادية. بالنسبة لخادم يسمى myreplica مع اسم مستخدم المسؤول myadmin، يمكنك الاتصال بالنسخة المتماثلة باستخدام mysql CLI:

mysql -h myreplica.mysql.database.azure.com -u myadmin -p

في المطالبة، أدخل كلمة المرور لحساب المستخدم.

مراقبة النسخ المتماثل

توفر قاعدة بيانات Azure لخادم MySQL المرن مقياس تأخر النسخ المتماثل بالثوان في Azure Monitor. يتوفر هذا المقياس للنسخ المتماثلة فقط. يتم حساب هذا المقياس باستخدام المقياس seconds_behind_master المتوفر في أمر MySQL SHOW SLAVE STATUS . قم بتعيين تنبيه لإعلامك عندما يصل تأخر النسخ المتماثل إلى قيمة غير مقبولة لحمل العمل الخاص بك.

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

إيقاف النسخ المتماثل

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

عندما تختار إيقاف النسخ المتماثل إلى نسخة متماثلة، فإنه يفقد كافة الارتباطات إلى المصدر السابق والنسخ المتماثلة الأخرى. لا يوجد تجاوز فشل تلقائي بين المصدر والنسخة المتماثلة الخاصة به.

هام

لا يمكن تحويل الخادم المستقل إلى نسخة متماثلة مرة أخرى. قبل إيقاف النسخ المتماثل على نسخة متماثلة للقراءة، تأكد من أن النسخة المتماثلة تحتوي على جميع البيانات التي تحتاجها.

تعرف على كيفية إيقاف النسخ المتماثل إلى نسخة متماثلة.

تجاوز الفشل

لا يوجد تجاوز فشل تلقائي بين خوادم المصدر والنسخ المتماثلة.

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

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

تلميح

إذا قمت بتجاوز الفشل إلى النسخة المتماثلة، فإن التأخير في الوقت الذي تقوم فيه بفك ارتباط النسخة المتماثلة من المصدر سيشير إلى مقدار البيانات المفقودة.

بعد أن تقرر أنك تريد تجاوز الفشل إلى نسخة متماثلة:

  1. إيقاف النسخ المتماثل إلى النسخة المتماثلة
    هذه الخطوة ضرورية لجعل خادم النسخة المتماثلة قادرا على قبول عمليات الكتابة. كجزء من هذه العملية، سيتم فك ارتباط خادم النسخة المتماثلة من المصدر. بعد بدء النسخ المتماثل للإيقاف، تستغرق عملية الواجهة الخلفية عادة حوالي دقيقتين لإكمالها. راجع قسم إيقاف النسخ المتماثل في هذه المقالة لفهم الآثار المترتبة على هذا الإجراء.

  2. توجيه التطبيق إلى النسخة المتماثلة (السابقة)
    يحتوي كل خادم على سلسلة اتصال فريدة. قم بتحديث التطبيق الخاص بك للإشارة إلى النسخة المتماثلة (السابقة) بدلا من المصدر.

بعد أن يقوم تطبيقك بمعالجة عمليات القراءة والكتابة بنجاح، تكون قد أكملت تجاوز الفشل. يعتمد مقدار وقت التعطل الذي ستختبره في التطبيق على وقت اكتشاف مشكلة وإكمال الخطوتين 1 و2 أعلاه.

معرف المعاملة العمومية (GTID)

معرف المعاملة العمومية (GTID) هو معرف فريد تم إنشاؤه مع كل معاملة تم الالتزام بها على خادم مصدر ويكون متوقفا عن التشغيل بشكل افتراضي في قاعدة بيانات Azure لخادم MySQL المرن. GTID مدعوم على الإصدارين 5.7 و8.0. لمعرفة المزيد حول GTID وكيفية استخدامه في النسخ المتماثل، راجع النسخ المتماثل MySQL مع وثائق GTID.

تتوفر معلمات الخادم التالية لتكوين GTID:

معلمة الخادم الوصف ⁩القيمة الافتراضية⁧ القيم
gtid_mode يشير إلى ما إذا كانت GTIDs تستخدم لتحديد المعاملات. يمكن إجراء التغييرات بين الأوضاع خطوة واحدة فقط في كل مرة بترتيب تصاعدي (على سبيل المثال OFF -OFF_PERMISSIVE> ->ON_PERMISSIVE ->ON) OFF* OFF: يجب أن تكون معاملات النسخ المتماثل والجديدة مجهولة
OFF_PERMISSIVE: المعاملات الجديدة مجهولة الهوية. يمكن أن تكون المعاملات المنسوخة نسخا متماثلا إما معاملات مجهولة أو GTID.
ON_PERMISSIVE: المعاملات الجديدة هي معاملات GTID. يمكن أن تكون المعاملات المنسوخة نسخا متماثلا إما معاملات مجهولة أو GTID.
ON: يجب أن تكون كل من المعاملات الجديدة والمنسوخة نسخا متماثلا معاملات GTID.
enforce_gtid_consistency يفرض تناسق GTID عن طريق السماح بتنفيذ تلك العبارات التي يمكن تسجيلها بطريقة آمنة من الناحية العملية فقط. يجب تعيين هذه القيمة إلى ON قبل تمكين النسخ المتماثل GTID. OFF* OFF: يسمح لجميع المعاملات بانتهاك تناسق GTID.
ON: لا يسمح لأي معاملة بانتهاك تناسق GTID.
WARN: يسمح لجميع المعاملات بانتهاك تناسق GTID، ولكن يتم إنشاء تحذير.

*بالنسبة لقاعدة بيانات Azure لخوادم MySQL-Flexible التي تم تمكين ميزة التوفر العالي لها، يتم تعيين القيمة الافتراضية إلى ON

ملاحظة

  • بعد تمكين GTID، لا يمكنك إيقاف تشغيله مرة أخرى. إذا كنت بحاجة إلى إيقاف تشغيل GTID، يرجى الاتصال بالدعم.

  • لتغيير GTID من قيمة إلى أخرى يمكن أن يكون خطوة واحدة فقط في كل مرة بترتيب تصاعدي للأوضاع. على سبيل المثال، إذا تم تعيين gtid_mode حاليا إلى OFF_PERMISSIVE، فمن الممكن التغيير إلى ON_PERMISSIVE ولكن ليس إلى تشغيل.

  • للحفاظ على تناسق النسخ المتماثل، لا يمكنك تحديثه لخادم رئيسي/نسخة متماثلة.

  • يوصى بتعيين enforce_gtid_consistency إلى تشغيل قبل أن تتمكن من تعيين gtid_mode=ON

لتمكين GTID وتكوين سلوك التناسق، قم بتحديث gtid_mode معلمات الخادم و enforce_gtid_consistency باستخدام مدخل Microsoft Azure، Azure CLI.

إذا تم تمكين GTID على خادم مصدر (gtid_mode = ON)، فستمكن النسخ المتماثلة التي تم إنشاؤها حديثا GTID وتستخدم النسخ المتماثل GTID. للتأكد من أن النسخ المتماثل متناسق، gtid_mode لا يمكن تغييره بمجرد إنشاء خادم (خادم) النسخة المتماثلة أو الرئيسية مع تمكين GTID.

الاعتبارات والقيود

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

الهامه
- قبل تحديث تكوين خادم المصدر إلى قيم جديدة، قم بتحديث تكوين النسخة المتماثلة إلى قيم متساوية أو أكبر. يضمن هذا الإجراء أن النسخة المتماثلة يمكنها مواكبة أي تغييرات تم إجراؤها على المصدر.
يتم توريث أسلوب الاتصال وإعدادات المعلمات من الخادم المصدر إلى النسخة المتماثلة عند إنشاء النسخة المتماثلة. بعد ذلك، تكون قواعد النسخة المتماثلة مستقلة.
النسخ المتماثلة المتوقفة إذا قمت بإيقاف النسخ المتماثل بين خادم مصدر ونسخة متماثلة للقراءة، تصبح النسخة المتماثلة المتوقفة خادما مستقلا يقبل كل من عمليات القراءة والكتابة. لا يمكن تحويل الخادم المستقل إلى نسخة متماثلة مرة أخرى.
خوادم المصدر والخوادم المستقلة المحذوفة عند حذف خادم مصدر، يتم إيقاف النسخ المتماثل إلى جميع النسخ المتماثلة للقراءة. تصبح هذه النسخ المتماثلة تلقائيا خوادم مستقلة ويمكنها قبول كل من القراءات والكتابة. يتم حذف الخادم المصدر نفسه.
حسابات المستخدمين يتم نسخ المستخدمين على الخادم المصدر إلى النسخ المتماثلة للقراءة. يمكنك الاتصال بنسخة متماثلة للقراءة فقط باستخدام حسابات المستخدمين المتوفرة على الخادم المصدر.
معلمات الخادم لمنع عدم مزامنة البيانات وتجنب فقدان البيانات المحتمل أو تلفها، يتم تأمين بعض معلمات الخادم من التحديث عند استخدام النسخ المتماثلة للقراءة.
يتم تأمين معلمات الخادم التالية على كل من خوادم المصدر والنسخ المتماثلة:
- innodb_file_per_table
- log_bin_trust_function_creators
المعلمة event_scheduler مؤمنة على خوادم النسخ المتماثلة.
لتحديث إحدى المعلمات أعلاه على الخادم المصدر، احذف خوادم النسخ المتماثلة، وقم بتحديث قيمة المعلمة على المصدر، وأعد إنشاء النسخ المتماثلة.

عند تكوين معلمات مستوى جلسة العمل مثل "foreign_keys_checks" على النسخة المتماثلة للقراءة، تأكد من أن قيم المعلمات التي يتم تعيينها على النسخة المتماثلة للقراءة متسقة مع قيم الخادم المصدر.
أخرى - إنشاء نسخة متماثلة من نسخة متماثلة غير معتمد.
- قد تتسبب الجداول في الذاكرة في أن تصبح النسخ المتماثلة غير متزامنة. هذا قيد على تقنية النسخ المتماثل MySQL. اقرأ المزيد في الوثائق المرجعية MySQL لمزيد من المعلومات.
- تأكد من أن جداول الخادم المصدر تحتوي على مفاتيح أساسية. قد يؤدي عدم وجود مفاتيح أساسية إلى زمن انتقال النسخ المتماثل بين المصدر والنسخ المتماثلة.
- راجع القائمة الكاملة لقيود النسخ المتماثل MySQL في وثائق MySQL

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