البرنامج التعليمي: ترحيل MySQL إلى قاعدة بيانات Azure لـ MySQL في وضع عدم الاتصال باستخدام DMS

يمكنك استخدام خدمة ترحيل قاعدة بيانات Azure لإجراء ترحيل سلس من مثيل MySQL الخارجي إلى قاعدة بيانات Azure ل MySQL مع إمكانية ترحيل البيانات عالية السرعة. في هذا البرنامج التعليمي، سنرحِّل عينة قاعدة بيانات من مثيلٍ محلي لـ MySQL 5.7 إلى قاعدة بيانات Azure من أجل MySQL (الإصدار 5.7) باستخدام نشاط الترحيل دون اتصال بالإنترنت في خدمة Azure Database Migration Service. على الرغم من أن المقالات تفترض أن المصدر هو مثيل قاعدة بيانات MySQL والهدف ليكون قاعدة بيانات Azure ل MySQL، يمكن استخدامه للترحيل من قاعدة بيانات Azure ل MySQL إلى أخرى فقط عن طريق تغيير اسم الخادم المصدر وبيانات الاعتماد. يدعم أيضًا الترحيل من خوادم MySQL ذات الإصدار الأقل (الإصدار 5.6 فما فوق) إلى إصدارات أعلى.

إشعار

للحصول على إصدار قابلاً للبرمجة النصية يستند إلى PowerShell لتجربة الترحيل المذكورة، راجع الترحيل القابل للبرمجة دون اتصال إلى قاعدة بيانات Azure لـ MySQL.

يتم أيضًا دعم Amazon Relational Database Service (RDS) لـ MySQL وAmazon Aurora (المستندة إلى MySQL) كمصادر للترحيل.

في هذا البرنامج التعليمي، تتعلم كيفية:

  • إنشاء مثيل DMS.
  • إنشاء مشروع ترحيل MySQL في DMS.
  • ترحيل مخطط MySQL باستخدام DMS.
  • تشغيل الترحيل.
  • مراقبة الترحيل.

المتطلبات الأساسية

لإكمال هذا البرنامج التعليمي، تحتاج إلى:

  • أن يكون لديك حساب Azure باشتراك نشط. أنشئ حساباً مجاناً.

  • لديك قاعدة بيانات MySQL محلية بالإصدار 5.7. إذا لم يكن الأمر كذلك، فبادر بتنزيل وتثبيت إصدار مجتمع MySQL 5.7.

  • إنشاء شبكة Microsoft Azure الظاهرية لخدمة Azure Database Migration Service باستخدام نموذج توزيع Azure Resource Manager الذي يوفر اتصال موقع إلى موقع إلى الخوادم المصدر المحلية باستخدام ExpressRoute أو VPN. لمزيد من المعلومات حول إنشاء شبكة افتراضية، راجع Virtual Network Documentationوخاصة مقالات التشغيل السريع التي تحتوي على التفاصيل خطوة بخطوة.

    أثناء إعداد networkNet ظاهرية، في حال كنت تستخدم ExpressRoute مع تناظر الشبكة مع Microsoft، أضِف نقاط نهاية الخدمة التالية إلى الشبكة الفرعية التي سيجري توفير الخدمة فيها:

    • نقطة نهاية قاعدة البيانات الهدف (على سبيل المثال، نقطة نهاية SQL ونقطة نهاية Azure Cosmos DB وما إلى ذلك)
    • نقطة نهاية التخزين
    • نقطة نهاية ناقل الخدمة

    هذا التكوين ضروري لأن Azure Database Migration Service تفتقر إلى الاتصال بالإنترنت.

  • التأكد من أن قواعد مجموعة أمان الشبكة لشبكتك الظاهرية لا تحظر المنفذ الصادر 443 من ServiceTag لـ ServiceBus والتخزين وAzureMonitor. لمزيد من التفاصيل عن تصفية نسبة استخدام الشبكة للشبكة الظاهرية الخاصة بمجموعة أمان الشبكة (NSG)، راجع مقالتصفية نسبة استخدام الشبكة باستخدام مجموعات أمان الشبكة.

  • فتح جدار حماية Windows خاصتك للسماح بالاتصالات من الشبكة الظاهرية لخدمة Azure Database Migration Service للوصول إلى خادم MySQL المصدر، والذي يكون منفذ TCP 3306 ظاهرياً.

  • عند استخدام جهاز جدار حماية أمام قاعدة (قواعد) البيانات المصدر، قد تحتاج إلى إضافة قواعد جدار الحماية للسماح بالاتصالات من الشبكة الظاهرية لخدمة ترحيل قاعدة بيانات Azure للوصول إلى قاعدة (قواعد) البيانات المصدر للترحيل.

  • إنشاء قاعدة جدار حماية على مستوى الخادم أو تكوين نقاط نهاية خدمة VNET لقاعدة بيانات Azure الهدف لـ MySQL للسماح للشبكة الظاهرية لخدمة Azure Database Migration Service بالوصول إلى قواعد البيانات الهدف.

  • يجب أن يكون مصدر MySQL على إصدار مجتمع MySQL مدعوم. لتحديد إصدار مثيل MySQL، في الأداة المساعدة MySQL أو MySQL Workbench، بادر بتشغيل الأمر التالي:

    SELECT @@VERSION;
    
  • تدعم قاعدة بيانات Azure لـ MySQL جداول InnoDB فقط. لتحويل جداول MyISAM إلى InnoDB، راجع المقال تحويل الجداول من MyISAM إلى InnoDB

  • يجب أن يمتلك المستخدم الامتيازات لقراءة البيانات الموجودة في قاعدة البيانات المصدر.

  • لإكمال ترحيل مخطط بنجاح، على الخادم المصدر، يتطلب المستخدم الذي يقوم بالترحيل الامتيازات التالية:

حجم قاعدة بيانات Azure الهدف لمثيل MySQL

لإعداد قاعدة بيانات Azure الهدف لخادم MySQL لأحمال بيانات أسرع باستخدام خدمة Azure Database Migration Service، يوصى بمعلمات الخادم التالية وتغييرات التكوين.

  • max_allowed_packet - اضبط على 1073741824 (أي 1 جيجابايت) لمنع أي مشاكل في الاتصال بسبب الصفوف الكبيرة.

  • slow_query_log - اضبط على "إيقاف" لإيقاف تشغيل سجل الاستعلام البطيء. سيؤدي هذا إلى إزالة الحمل الناتج عن سجل الاستعلام البطيء أثناء تحميل البيانات.

  • query_store_capture_mode - اضبط على NONE لإيقاف تشغيل "مخزن الاستعلام". سيؤدي هذا إلى إزالة الحمل الناتج عن أنشطة أخذ العينات بواسطة "مخزن الاستعلام".

  • innodb_buffer_pool_size - لا يمكن زيادة حجم Innodb_buffer_pool_size إلا من خلال توسيع نطاق الحوسبة لقاعدة بيانات Azure لخادم MySQL. بادر بترقية الخادم إلى 64 vCore لوحدة حفظ مخزون الأغراض العامة من مستوى التسعير بالبوابة الإلكترونية أثناء الترحيل لزيادة innodb_buffer_pool_size.

  • innodb_io_capacity & innodb_io_capacity_max - بادر بالتغيير إلى 9000 من معلمات الخادم في مدخل Azure لتحسين استخدام الإدخال/ الإخراج لتحسين سرعة الترحيل.

  • innodb_write_io_threads & innodb_write_io_threads - بادر بالتغيير إلى 4 من معلمات الخادم في مدخل Azure لتحسين سرعة الترحيل.

  • توسيع نطاق التخزين - تزداد عمليات الإدخال والإخراج (IOPs) لقاعدة بيانات Azure لخادم MySQL تدريجياً مع زيادة مستوى التخزين.

    • في خيار توزيع خادم واحد، من أجل تحميلٍ أسرع، نوصي بزيادة مستوى التخزين لزيادة عمليات الإدخال والإخراج (IOPs) المتوفرة.
    • في خيار نشر الخادم المرن، نوصيك بتغيير حجم (زيادة أو تقليل) عمليات الإدخال والإخراج (IOPs) بغض النظر عن حجم التخزين.
    • يمكن زيادة حجم التخزين فقط، وليس خفضه.
  • حدد حجم الحساب وطبقة الحوسبة للخادم المرنة الهدف استنادا إلى مستوى تسعير الخادم الفردي المصدر وVCores استنادا إلى التفاصيل في الجدول التالي.

    مستوى تسعير خادم واحد VCores لخادم واحد حجم حساب الخادم المرن مستوى حساب الخادم المرن
    أساسي 1 1 General Purpose Standard_D16ds_v4
    أساسي 1 2 General Purpose Standard_D16ds_v4
    الغرض العام 1 4 General Purpose Standard_D16ds_v4
    الغرض العام 1 8 General Purpose Standard_D16ds_v4
    General Purpose 16 General Purpose Standard_D16ds_v4
    General Purpose 32 General Purpose Standard_D32ds_v4
    General Purpose 64 General Purpose Standard_D64ds_v4
    مُحسّن للذاكرة 4 أعمال حرجة Standard_E4ds_v4
    مُحسّن للذاكرة 8 أعمال حرجة Standard_E8ds_v4
    مُحسّن للذاكرة 16 أعمال حرجة Standard_E16ds_v4
    مُحسّن للذاكرة 32 أعمال حرجة Standard_E32ds_v4

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

بمجرد اكتمال الترحيل، يمكنك إعادة معلمات الخادم وتكوينه إلى القيم التي يتطلبها حجم العمل لديك.

إعداد DMS

مع نشر الخادم المرن المستهدف وتكوينه، تحتاج بعد ذلك إلى إعداد DMS لترحيل خادمك الفردي إلى خادم مرن.

تسجيل موفر الموارد

لتسجيل موفر موارد Microsoft.DataMigration، قم بتنفيذ الخطوات التالية.

  1. قبل إنشاء مثيل DMS الأول، سجل الدخول إلى مدخل Microsoft Azure، ثم ابحث عن Subscriptions وحددها.

    لقطة شاشة لتحديد الاشتراكات من Azure Marketplace.

  2. حدد الاشتراك الذي تريد استخدامه لإنشاء مثيل DMS، ثم حدد موفري الموارد.

    لقطة شاشة لتحديد موفر الموارد.

  3. ابحث عن مصطلح "الترحيل"، ثم حدد تسجيل ل Microsoft.DataMigration.

    لقطة شاشة لتسجيل موفر الموارد الخاص بك.

إنشاء مثيل لخدمة ترحيل قاعدة البيانات

  1. في مدخل Microsoft Azure، حدد + Create a resource، وابحث عن Azure Database Migration Service، ثم حدد Azure Database Migration Service من القائمة المنسدلة.

    لقطة شاشة ل Azure Marketplace.

  2. في شاشة Azure Database Migration Service، حدد Create.

    لقطة شاشة لإنشاء مثيل Azure Database Migration Service.

  3. في شاشة إنشاء خدمة ترحيل، حدد اسما للخدمة والاشتراك ومجموعة موارد جديدة أو موجودة.

  4. حدد مستوى التسعير ثم انتقل إلى شاشة الشبكة. إمكانية الترحيل في وضع عدم الاتصال تكون متاحة فقط على مستوى التسعير المتميز.

    لمزيد من المعلومات عن التكاليف ومستويات التسعير، راجع صفحة التسعير.

    لقطة شاشة لتكوين الإعدادات الأساسية لخدمة ترحيل قاعدة بيانات Azure.

  5. تحديد شبكة ظاهرية موجودة من القائمة أو توفير اسم الشبكة الظاهرية الجديدة التي سيجري إنشاؤها. الانتقال إلى شاشة "review + create". اختيارياً يمكنك إضافة علامات إلى الخدمة باستخدام شاشة العلامات.

    توفر الشبكة الظاهرية خدمة Azure Database Migration Service مع إمكانية الوصول إلى SQL Server المصدر ومثيل Azure SQL Database الهدف.

    لقطة شاشة لتكوين إعدادات شبكة Azure Database Migration Service.

    لمزيدٍ من المعلومات عن كيفية إنشاء شبكة ظاهرية في مدخل Azure، راجع المقال إنشاء شبكة ظاهرية باستخدام مدخل Azure.

  6. راجع التكوينات وحدد Create لإنشاء الخدمة.

    لقطة شاشة لإنشاء خدمة ترحيل قاعدة بيانات Azure.

قم بإنشاء مشروع ترحيل.

بعد إنشاء الخدمة، حدد موقعها داخل مدخل Microsoft Azure، وافتحها، ثم أنشئ مشروع ترحيل جديد.

  1. في مدخل Azure، حدد All services وابحث عن خدمة Azure Database Migration Service، ثم حدد Azure Database Migration Services.

    لقطة شاشة لتحديد موقع جميع مثيلات Azure Database Migration Service.

  2. حدد مثيل خدمة الترحيل خاصتك من نتائج البحث وحدد + New Migration Project.

    لقطة شاشة لإنشاء مشروع ترحيل جديد.

  3. على الشاشة New migration project، حدد اسماً للمشروع، وفي مربع التحديد Source server type، حدد MySQL، وفي مربع التحديد Target server type، حدد Azure Database For MySQL، وفي مربع التحديد Migration activity type، حدد Data migration. حدد إنشاء النشاط وتشغيله.

    لقطة شاشة لإنشاء مشروع خدمة ترحيل قاعدة البيانات.

    بدلاً من ذلك، يمكنك اختيار إنشاء مشروع فقط لإنشاء مشروع الترحيل الآن وتنفيذ الترحيل لاحقًا.

تكوين مشروع الترحيل

  1. في شاشة Select source ، حدد تفاصيل الاتصال لمثيل MySQL المصدر، وحدد Next : Select target>>

    لقطة شاشة لشاشة إضافة تفاصيل المصدر.

  2. في الشاشة Select target ، حدد تفاصيل الاتصال لمثيل Azure Database for MySQL الهدف، وحدد Next : Select databases>>

    لقطة شاشة لشاشة إضافة تفاصيل الهدف.

  3. في شاشة تحديد قواعد البيانات ، قم بتعيين المصدر وقاعدة البيانات الهدف للترحيل، وحدد التالي: تكوين إعدادات>> الترحيل. يمكنك تحديد الخيار Make Source Server Read Only لجعل المصدر للقراءة فقط، ولكن كن حذراً من أن هذا إعداد على مستوى الخادم. في حالة تحديده، فإنه يعين الخادم بأكمله للقراءة فقط، وليس فقط قواعد البيانات المحددة.

    في حال كانت قاعدة البيانات الهدف تحتوي على نفس اسم قاعدة البيانات مثل قاعدة البيانات المصدر، فإن Azure Database Migration Service تحدد قاعدة البيانات الهدف افتراضيًا.

    لقطة شاشة لشاشة تحديد تفاصيل قاعدة البيانات.

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

    لقطة شاشة لشاشة تحديد الجداول.

  5. في الشاشة Summary، في مربع النص Activity name حدد اسماً لنشاط الترحيل ثم راجع الملخص للتأكد من تطابق تفاصيل المصدر والهدف مع ما حددته مسبقاً.

    لقطة شاشة لملخص مشروع الترحيل.

  6. حدد Start migration. تظهر نافذة نشاط الترحيل، وتكون Status النشاط Initializing. تتغير Status إلى Running عند بدء عمليات ترحيل الجدول.

    لقطة شاشة لتشغيل الترحيل.

مراقبة الترحيل

  1. في شاشة نشاط الترحيل، حدد Refresh لتحديث الشاشة ومعرفة التقدم المحرز بشأن عدد الجداول المكتملة.

  2. يمكنك تحديد اسم قاعدة البيانات على شاشة النشاط لمشاهدة حالة كل جدول أثناء ترحيله. حدد Refresh لتحديث الشاشة.

    لقطة شاشة لمراقبة الترحيل.

إكمال الترحيل

  1. في شاشة نشاط الترحيل، حدد Refresh لتحديث العرض حتى تظهر حالة الترحيل كمكتمل.

    لقطة شاشة للترحيل الكامل.

نشر أنشطة الترحيل

نقل الترحيل في الترحيل في وضع عدم الاتصال هو عملية تعتمد على التطبيق وهذا خارج نطاق هذا المستند، ولكن تُحدد أنشطة ما بعد الترحيل التالية:

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

تنظيف الموارد

إذا كنت لن تستمر في استخدام خدمة Database Migration Service، فيمكنك حذف الخدمة باتباع الخطوات التالية:

  1. في مدخل Azure، حدد All services وابحث عن خدمة Azure Database Migration Service، ثم حدد Azure Database Migration Services.

    لقطة شاشة لتحديد موقع جميع مثيلات DMS.

  2. حدد مثيل خدمة الترحيل خاصتك من نتائج البحث وحدد Delete Service.

    لقطة شاشة لحذف خدمة الترحيل.

  3. في مربع حوار التأكيد، اكتب اسم الخدمة في مربع النص TYPE THE DATABASE MIGRATION SERVICE NAME وحدد Delete.

    لقطة شاشة لتأكيد حذف خدمة الترحيل.