البرنامج التعليمي: ترحيل 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 Database Migration Service للوصول إلى قاعدة (قواعد) المصدر من أجل الترحيل.

  • إنشاء قاعدة جدار حماية على مستوى الخادم أو تكوين نقاط نهاية خدمة 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 General Purpose Standard_D16ds_v4
    أساسي* 2 General Purpose Standard_D16ds_v4
    الغرض العام* 4 General Purpose Standard_D16ds_v4
    الغرض العام* 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 Business Critical Standard_E4ds_v4
    مُحسّن للذاكرة 8 Business Critical Standard_E8ds_v4
    مُحسّن للذاكرة 16 Business Critical Standard_E16ds_v4
    مُحسّن للذاكرة 32 Business Critical Standard_E32ds_v4

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

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

إعداد DMS

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

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

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

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

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

  3. ابحث عن مصطلح "الترحيل"، ثم حدد تسجيل ل Microsoft.DataMigration. Screenshot of a Register your resource provider.

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

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

    Azure Marketplace

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

    Create Azure Database Migration Service instance

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

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

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

    Configure Azure Database Migration Service basic settings

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

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

    Configure Azure Database Migration Service network settings

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

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

    Azure Database Migration Service create

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

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

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

    Locate all instances of Azure Database Migration Service

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

    Create a new migration project

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

    Create Database Migration Service Project

    إشعار

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

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

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

    Add source details screen

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

    Add target details screen

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

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

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

    Select tables screen

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

    Migration project summary

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

    Running migration

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

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

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

    Monitoring migration

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

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

    Complete migration

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

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

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

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

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

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

    Locate all instances of DMS

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

    Delete the migration service

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

    Confirm migration service delete

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