إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
إشعار
تحتوي هذه المقالة على مراجع لمصطلح slave، وهو مصطلح لم تعد Microsoft تستخدمه. عند إزالة المصطلح من البرنامج، بالتالي سنزيله من هذه المقالة.
يمكنك استخدام أساليب مثل تفريغ MySQL واستعادته أو MySQL Workbench Export and Import أو Azure Database Migration Service لترحيل قواعد بيانات MySQL إلى قاعدة بيانات Azure لخادم MySQL المرن. يمكنك ترحيل أحمال العمل الخاصة بك بأقل وقت تعطل باستخدام مجموعة من الأدوات مفتوحة المصدر مثل mysqldump أو mydumper وmyloader مع Data-in Replication.
النسخ المتماثل للبيانات هو أسلوب ينسخ تغييرات البيانات من خادم المصدر إلى خادم الوجهة استنادا إلى أسلوب موضع ملف السجل الثنائي. في هذا السيناريو، يكتب مثيل MySQL الذي يعمل كمصدر (الذي تنشأ عليه تغييرات قاعدة البيانات) التحديثات والتغييرات كأحداث إلى السجل الثنائي. يتم تخزين المعلومات الموجودة في السجل الثنائي بتنسيقات تسجيل مختلفة وفقا لتغييرات قاعدة البيانات المسجّلة. يتم تكوين النسخ المتماثلة لقراءة السجل الثنائي من المصدر وتنفيذ الأحداث في السجل الثنائي على قاعدة البيانات المحلية للنسخة المتماثلة.
إعداد النسخ المتماثل للبيانات في قاعدة بيانات Azure ل MySQL - خادم مرن لمزامنة البيانات من خادم MySQL المصدر إلى خادم MySQL الهدف. يمكنك إجراء قطع انتقائي للتطبيقات الخاصة بك من قاعدة البيانات الأساسية (أو قاعدة البيانات المصدر) إلى النسخة المتماثلة (أو قاعدة البيانات الهدف).
في هذا البرنامج التعليمي، ستتعلم كيفية إعداد النسخ المتماثل للبيانات بين خادم مصدر يقوم بتشغيل خدمة قاعدة بيانات Amazon العلائقية (RDS) ل MySQL وخادم مستهدف يقوم بتشغيل قاعدة بيانات Azure لخادم MySQL المرن.
الاعتبارات الخاصة بالأداء
قبل البدء في هذا البرنامج التعليمي، ضع في اعتبارك الآثار المترتبة على أداء الموقع وسعة كمبيوتر العميل الذي ستستخدمه لتنفيذ العملية.
موقع العميل
تنفيذ عمليات تفريغ أو استعادة من كمبيوتر عميل تم تشغيله في نفس موقع خادم قاعدة البيانات:
- بالنسبة لمثيلات Azure Database for MySQL Flexible Server، يجب أن يكون جهاز العميل في نفس الشبكة الظاهرية ومنطقة التوفر مثل خادم قاعدة البيانات الهدف.
- بالنسبة لمثيلات قاعدة بيانات Amazon RDS المصدر، يجب أن يكون مثيل العميل موجودا في نفس سحابة Amazon الظاهرية الخاصة ومنطقة التوفر مثل خادم قاعدة بيانات المصدر. في الحالة السابقة، يمكنك نقل ملفات التفريغ بين أجهزة العميل باستخدام بروتوكولات نقل الملفات مثل FTP أو SFTP أو تحميلها إلى Azure Blob Storage. لتقليل إجمالي وقت الترحيل، قم بضغط الملفات قبل نقلها.
سعة العميل
بغض النظر عن مكان وجود الكمبيوتر العميل، فإنه يتطلب حوسبة كافية، والإدائها/إخراج، وسعة الشبكة لتنفيذ العمليات المطلوبة. التوصيات العامة هي:
- إذا كان التفريغ أو الاستعادة يتضمن معالجة البيانات في الوقت الحقيقي، على سبيل المثال، الضغط أو إلغاء الضغط، فاختر فئة مثيل مع ذاكرة أساسية واحدة على الأقل لوحدة المعالجة المركزية لكل تفريغ أو مؤشر ترابط استعادة.
- تأكد من توفر نطاق ترددي كافي للشبكة لمثيل العميل. استخدم أنواع المثيلات التي تدعم ميزة الشبكات المتسارعة. لمزيد من المعلومات، راجع قسم "الشبكات المسرعة" في دليل Azure Virtual Machine Networking.
- تأكد من أن طبقة تخزين جهاز العميل توفر سعة القراءة/الكتابة المتوقعة. نوصي باستخدام جهاز ظاهري Azure مع تخزين SSD Premium.
المتطلبات الأساسية
لإكمال هذا البرنامج التعليمي، تحتاج إلى:
قم بتثبيت mysqlclient على كمبيوتر العميل الخاص بك لإنشاء تفريغ، وتنفيذ عملية استعادة على قاعدة بيانات Azure المستهدفة لمثيل خادم MySQL المرن.
بالنسبة لقواعد البيانات الأكبر حجما، قم بتثبيت mydumper وmyloader للتخلص المتوازي من قواعد البيانات واستعادتها.
إشعار
يمكن تشغيل Mydumper فقط على توزيعات Linux. لمزيد من المعلومات، راجع كيفية تثبيتmydumper.
إنشاء مثيل لقاعدة بيانات Azure لخادم MySQL المرن الذي يقوم بتشغيل الإصدار 5.7 أو 8.0.
هام
إذا كان هدفك هو قاعدة بيانات Azure لخادم MySQL المرن مع توفر عال متكرر للمنطقة (HA)، فلاحظ أن النسخ المتماثل للبيانات غير مدعوم لهذا التكوين. كحل بديل، أثناء إنشاء الخادم، قم بإعداد قابلية الوصول العالية المكررة في المنطقة:
- إنشاء الخادم مع تمكين قابلية الوصول العالية المكررة في المنطقة.
- تعطيل قابلية الوصول العالية.
- اتبع المقالة لإعداد النسخ المتماثل للبيانات.
- بعد الانتقال، قم بإزالة تكوين النسخ المتماثل للبيانات.
- تمكين قابلية الوصول العالية.
تأكد من تكوين العديد من المعلمات والميزات وإعدادها بشكل صحيح، كما هو موضح:
- لأسباب تتعلق بالتوافق، يكون لديك خوادم قاعدة البيانات المصدر والهدف على نفس إصدار MySQL.
- ليكن لديك مفتاح أساسي في كل جدول. يمكن أن يؤدي عدم وجود مفاتيح أساسية على الجداول إلى إبطاء عملية النسخ المتماثل.
- تأكد من أن مجموعة أحرف المصدر وقاعدة البيانات الهدف هي ذاتها.
- تعيين المعلمة
wait_timeoutإلى وقت معقول. يعتمد الوقت على كم البيانات أو حمل العمل الذي تريد استيراده أو ترحيله. - تحقق من أن جميع الجداول تستخدم InnoDB. تدعم قاعدة بيانات Azure لخادم MySQL المرن محرك تخزين InnoDB فقط.
- بالنسبة للجداول التي تحتوي على العديد من الفهارس الثانوية أو الجداول الكبيرة، تظهر تأثيرات حمل الأداء أثناء الاستعادة. تعديل ملفات التفريغ بحيث لا تتضمن العبارات
CREATE TABLEتعريفات المفاتيح الثانوية. بعد استيراد البيانات، أعد إنشاء فهارس ثانوية لتجنب عقوبة الأداء أثناء عملية الاستعادة.
وأخيرًا، للتحضير النسخ المتماثل للبيانات:
- تحقق من أن مثيل خادم Azure Database for MySQL المرن الهدف يمكنه الاتصال بمصدر Amazon RDS لخادم MySQL عبر المنفذ 3306.
- تأكد من أن خادم Amazon RDS لـ MySQL المصدر يسمح لكل من حركة المرور الواردة والصادرة على المنفذ 3306.
- تأكد من توفير اتصال من موقع إلى موقع إلى خادم المصدر باستخدام إما Azure ExpressRoute أو بوابة Azure VPN. لمزيد من المعلومات حول إنشاء شبكة اتصال ظاهرية، راجع توثيق Azure VPN. راجع أيضا مقالات التشغيل السريع مع تفاصيل خطوة بخطوة.
- قم بتكوين مجموعات أمان الشبكة لخادم قاعدة البيانات المصدر للسماح لقاعدة بيانات Azure الهدف لعنوان IP الخادم المرن MySQL.
هام
إذا تم تعيين GTID_mode لمثيل Amazon RDS لـ MySQL المصدر على ON، فيجب أيضًا تعيين GTID_mode للمثيل الهدف من قاعدة بيانات Azure لخادم MySQL المرن علىON.
تكوين المثيل الهدف من قاعدة بيانات Azure لـ MySQL
لتكوين المثيل الهدف لقاعدة بيانات Azure لخادم MySQL المرن، وهو هدف النسخ المتماثل للبيانات:
قم بتعيين قيمة المعلمة
max_allowed_packetإلى الحد الأقصى 1073741824، والذي هو 1 غيغابايت. تمنع هذه القيمة أي مشكلات تجاوز متعلقة بالسجلات الطويلة.قم بتعيين المعلمات
slow_query_logوgeneral_logوaudit_log_enabledوquery_store_capture_modeإلى OFF أثناء الترحيل للمساعدة في إزالة أي حمل متعلق بتسجيل الاستعلام.قم بتوسيع حجم الحساب لمثيل Azure Database for MySQL Flexible Server الهدف إلى الحد الأقصى 64 vCores. يوفر هذا الحجم المزيد من موارد الحوسبة عند استعادة تفريغ قاعدة بيانات الخادم المصدر.
يمكنك دائما تقليص الحوسبة لتلبية طلبات التطبيق الخاص بك بعد اكتمال الترحيل.
قم بزيادة حجم التخزين للحصول على المزيد من عمليات إدخال وإخراج في الثانية أثناء ترحيل أقصى عمليات إدخال وإخراج في الثانية للترحيل.
إشعار
يتم تحديد الحد الأقصى المتاح لعمليات الإدخال والإخراج في الثانية حسب حجم الحساب. لمزيد من المعلومات، راجع قسم IOPS في خيارات الحوسبة والتخزين في قاعدة بيانات Azure لخادم MySQL المرن.
تكوين Amazon RDS المصدر لـ خادم MySQL
لإعداد وتكوين خادم MySQL المستضاف في Amazon RDS، وهو مصدر النسخ المتماثل للبيانات:
تأكد من تمكين التسجيل الثنائي على Amazon RDS المصدر لـ خادم MySQL. تحقق من تمكين النسخ الاحتياطية التلقائية، أو تأكد من وجود نسخة متماثلة للقراءة لخادم Amazon RDS for MySQL المصدر.
تأكد من الاحتفاظ بملفات السجل الثنائية على الخادم المصدر حتى بعد تطبيق التغييرات على المثيل الهدف من قاعدة بيانات Azure لخادم MySQL المرن.
باستخدام النسخ المتماثل للبيانات، لا تدير قاعدة بيانات Azure لخادم MySQL المرن عملية النسخ المتماثل.
للتحقق من الاحتفاظ بالسجل الثنائي على خادم Amazon RDS المصدر لتحديد عدد الساعات التي يتم فيها الاحتفاظ بالسجلات الثنائية، قم باستدعاء
mysql.rds_show_configurationالإجراء المخزن:call mysql.rds_show_configuration; +------------------------+-------+-----------------------------------------------------------------------------------------------------------+ | name | value | description | | +------------------------+-------+-----------------------------------------------------------------------------------------------------------+ | | binlog retention hours | 24 | binlog retention hours specifies the duration in hours before binary logs are automatically deleted. | | source delay | 0 | source delay specifies replication delay in seconds between current instance and its master. | | target delay | 0 | target delay specifies replication delay in seconds between current instance and its future read-replica. | | +------------------------+------- +-----------------------------------------------------------------------------------------------------------+ | | 3 rows in set (0.00 sec) |لتكوين فترة الاحتفاظ بالسجل الثنائي، قم بتشغيل
rds_set_configurationالإجراء المخزن للتأكد من الاحتفاظ بالسجلات الثنائية على الخادم المصدر للوقت المطلوب. على سبيل المثال:Call mysql.rds_set_configuration('binlog retention hours', 96);إذا كنت تقوم بإنشاء تفريغ واستعادة، يساعدك الأمر السابق على اللحاق بتغييرات دلتا بسرعة.
إشعار
تأكد من توفر مساحة كافية على القرص لتخزين السجلات الثنائية على الخادم المصدر استنادا إلى فترة الاستبقاء المحددة.
هناك طريقتان لتسجيل نسخة احتياطية للبيانات من خادم Amazon RDS المصدر لـ MySQL. يتضمن أحد النهج التقاط تفريغ البيانات مباشرة من الخادم المصدر. يتضمن النهج الآخر التقاط تفريغ من نسخة متماثلة للقراءة في Amazon RDS لـ MySQL.
لتسجيل نسخة احتياطية للبيانات مباشرة من الخادم المصدر:
تأكد من إيقاف عمليات الكتابة من التطبيق لبضع دقائق للحصول على نسخ احتياطي متسق للمعاملات للبيانات.
يمكنك أيضا تعيين المعلمة
read_onlyمؤقتا إلى قيمة 1 بحيث لا تتم معالجة عمليات الكتابة عند تسجيل نسخ احتياطي البيانات.بعد إيقاف عمليات الكتابة على الخادم المصدر، اجمع اسم ملف السجل الثنائي وإزاحته عن طريق تشغيل الأمر
Mysql> Show master status;.احفظ هذه القيم لبدء النسخ المتماثل من مثيل Azure Database for MySQL Flexible Server.
لإنشاء نسخة احتياطية للبيانات، نفذ
mysqldumpعن طريق تشغيل الأمر التالي:$ mysqldump -h hostname -u username -p –single-transaction –databases dbnames –order-by-primary> dumpname.sql
إذا لم يكن إيقاف عمليات الكتابة على الخادم المصدر خيارا أو كان أداء تفريغ البيانات غير مقبول على الخادم المصدر، فقم بتسجيل نسخة احتياطية على خادم النسخة المتماثلة:
إنشاء نسخة متماثلة للقراءة في Amazon MySQL بنفس التكوين مثل الخادم المصدر. ثم قم بإنشاء نسخة احتياطية هناك.
دع Amazon RDS لـ MySQL يقرأ النسخة المتماثلة للحاق بمصدر Amazon RDS لخادم MySQL.
عندما يصل تأخر النسخة المتماثلة إلى 0 على النسخة المتماثلة للقراءة، أوقف النسخ المتماثل عن طريق استدعاء
mysql.rds_stop_replicationالإجراء المخزن.call mysql.rds_stop_replication;مع إيقاف النسخ المتماثل، اتصل بالنسخة المتماثلة. ثم قم بتشغيل
SHOW SLAVE STATUSالأمر لاسترداد اسم ملف السجل الثنائي الحالي من حقل Relay_Master_Log_File وموضع ملف السجل من حقل Exec_Master_Log_Pos.احفظ هذه القيم لبدء النسخ المتماثل من مثيل Azure Database for MySQL Flexible Server.
لإنشاء نسخ احتياطي للبيانات من النسخة المتماثلة للقراءة Amazon RDS for MySQL، نفذ
mysqldumpعن طريق تشغيل الأمر التالي:$ mysqldump -h hostname -u username -p –single-transaction –databases dbnames –order-by-primary> dumpname.sql
إشعار
يمكنك أيضا استخدام mydumper لتسجيل تفريغ متوازي لبياناتك من مصدر Amazon RDS لقاعدة بيانات MySQL. لمزيد من المعلومات، راجع ترحيل قواعد البيانات الكبيرة إلى قاعدة بيانات Azure لخادم MySQL المرن باستخدام mydumper/myloader.
ربط خوادم المصدر والنسخ المتماثلة لبدء النسخ المتماثل للبيانات
لاستعادة قاعدة البيانات باستخدام استعادة mysql الأصلية، قم بتشغيل الأمر التالي:
$ mysql -h <target_server> -u <targetuser> -p < dumpname.sqlإشعار
إذا كنت تستخدم myloader بدلا من ذلك، فشاهد ترحيل قواعد البيانات الكبيرة إلى قاعدة بيانات Azure لخادم MySQL المرن باستخدام mydumper/myloader.
سجل الدخول إلى خادم Amazon RDS المصدر لـ MySQL، وقم بإعداد مستخدم النسخ المتماثل. ثم امنح الامتيازات الضرورية لهذا المستخدم.
إذا كنت تستخدم SSL، قم بتشغيل الأوامر التالية:
CREATE USER 'syncuser'@'%' IDENTIFIED BY 'userpassword'; GRANT REPLICATION SLAVE, REPLICATION CLIENT on *.* to 'syncuser'@'%' REQUIRE SSL; SHOW GRANTS FOR syncuser@'%';إذا كنت لا تستخدم SSL، قم بتشغيل الأوامر التالية:
CREATE USER 'syncuser'@'%' IDENTIFIED BY 'userpassword'; GRANT REPLICATION SLAVE, REPLICATION CLIENT on *.* to 'syncuser'@'%'; SHOW GRANTS FOR syncuser@'%';
تقوم الإجراءات المخزنة بجميع وظائف النسخ المتماثل للبيانات. للحصول على معلومات حول جميع الإجراءات، راجع إجراءات النسخ المتماثل للبيانات المخزنة. يمكنك تشغيل هذه الإجراءات المخزنة في MySQL shell أو MySQL Workbench.
لربط خادم مصدر Amazon RDS for MySQL وقاعدة بيانات Azure للخادم المرن MySQL، سجل الدخول إلى قاعدة بيانات Azure الهدف لمثيل خادم MySQL المرن. قم بتعيين خادم Amazon RDS لـ MySQL كخادم مصدر عن طريق تشغيل الأمر التالي:
CALL mysql.az_replication_change_master('source_server','replication_user_name','replication_user_password',3306,'<master_bin_log_file>',master_bin_log_position,'<master_ssl_ca>');لبدء النسخ المتماثل بين مصدر Amazon RDS لخادم MySQL ومثيل Azure Database for MySQL Flexible Server، قم بتشغيل الأمر التالي:
CALL mysql.az_replication_start;للتحقق من حالة النسخ المتماثل على خادم النسخة المتماثلة، قم بتشغيل الأمر التالي:
show slave status\Gإذا كانت حالة المعلمتين
Slave_IO_RunningوSlave_SQL_Runningهي نعم، فقد بدأ النسخ المتماثل وهو في حالة تشغيل.تحقق من قيمة المعلمة
Seconds_Behind_Masterلتحديد مدى تأخر الخادم الهدف.إذا كانت القيمة 0، فقد قام الهدف بمعالجة جميع التحديثات من الخادم المصدر. إذا كانت القيمة أي شيء آخر غير 0، فلا يزال الخادم الهدف يعالج التحديثات.
ضمان نجاح التشغيل
لضمان نجاح التشغيل:
- تكوين عمليات تسجيل الدخول المناسبة والأذونات على مستوى قاعدة البيانات في قاعدة بيانات Azure الهدف لمثيل خادم MySQL المرن.
- إيقاف الكتابة إلى خادم Amazon RDS المصدر لـ MySQL.
- تأكد من أن مثيل Azure Database for MySQL Flexible Server الهدف قد اشتعل مع الخادم المصدر وأن
Seconds_Behind_Masterالقيمة هي 0 منshow slave status. - استدعاء الإجراء
mysql.az_replication_stopالمخزن لإيقاف النسخ المتماثل لأنه تم نسخ جميع التغييرات نسخا متماثلا إلى قاعدة بيانات Azure الهدف لمثيل خادم MySQL المرن. - استدعاء
mysql.az_replication_remove_masterلإزالة تكوين النسخ المتماثل للبيانات. - إعادة توجيه العملاء وتطبيقات العميل إلى قاعدة بيانات Azure الهدف لمثيل خادم MySQL المرن.
عند هذه النقطة، يكتمل الترحيل. تطبيقاتك متصلة بالخادم الذي يقوم بتشغيل قاعدة بيانات Azure لخادم MySQL المرن.