ترحيل Amazon RDS لـMySQL إلى قاعدة بيانات Azure لـMySQL باستخدام منضدة العمل MySQL

تُطبق على: قاعدة بيانات Azure للخادم الوحيد الخاص بـ MySQL

هام

قاعدة بيانات Azure لخادم MySQL الفردي على مسار الإيقاف. نوصي بشدة بالترقية إلى قاعدة بيانات Azure لخادم MySQL المرن. لمزيد من المعلومات حول الترحيل إلى خادم Azure Database for MySQL المرن، راجع ما الذي يحدث لقاعدة بيانات Azure لخادم MySQL الفردي؟

يمكنك استخدام أدوات مساعدة مختلفة، مثل MySQL Workbench Export/Import وAzure Database Migration Service (DMS) وتفريغ MySQL واستعادته، لترحيل Amazon RDS for MySQL إلى قاعدة بيانات Azure لـMySQL. ومع ذلك، يوفر استخدام معالج ترحيل MySQL Workbench طريقة سهلة ومريحة لنقل قواعد بيانات Amazon RDS for MySQL إلى قاعدة بيانات Azure لـMySQL.

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

إشعار

يمكنك أيضًا استخدام معالج الترحيل لترحيل مصادر أخرى، مثل Microsoft SQL Server وOracle وPostgreSQL وMariaDB وما إلى ذلك، والتي تقع خارج نطاق هذه المقالة.

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

قبل بدء عملية الترحيل، يوصى بالتأكد من تكوين العديد من المعلمات والميزات وإعدادها بشكل صحيح، كما هو موضح أدناه.

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

  • قم بتعيين مهلة الانتظار إلى وقت معقول اعتمادًا على مقدار البيانات أو حمل العمل الذي تريد استيراده أو ترحيله.

  • قم بتعيين max_allowed_packet parameter إلى كمية معقولة اعتمادًا على حجم قاعدة البيانات التي تريد استيرادها أو ترحيلها.

  • تحقق من أن جميع الجداول الخاصة بك تستخدم InnoDB، حيث تدعم قاعدة بيانات Azure لخادم MySQL محرك تخزين InnoDB فقط.

  • إزالة جميع المشغلات والإجراءات المخزنة والوظائف الأخرى التي تحتوي على مستخدم جذر أو محددات مستخدم فائقة أو استبدالها أو تعديلها (لا تدعم قاعدة بيانات Azure لـMySQL امتياز المستخدم الفائق). لاستبدال المحددات باسم مستخدم المسؤول الذي يقوم بتشغيل عملية الاستيراد، قم بتشغيل الأمر التالي:

    DELIMITER; ;/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`127.0.0.1`*/ /*!50003
    DELIMITER;
    /* Modified to */
    DELIMITER;
    /*!50003 CREATE*//*!50017 DEFINER=`AdminUserName`@`ServerName`*/ /*!50003
    DELIMITER;
    
    
  • إذا كانت الدالات المعرفة من قبل المستخدم (UDFs) قيد التشغيل على خادم قاعدة البيانات، فستحتاج إلى حذف الامتياز لقاعدة بيانات mysql. لتحديد ما إذا كانت أي UDFs قيد التشغيل على الخادم الخاص بك، استخدم الاستعلام التالي:

    SELECT * FROM mysql.func;
    

    إذا اكتشفت أن UDFs قيد التشغيل، يمكنك إسقاط UDFs باستخدام الاستعلام التالي:

    DROP FUNCTION your_UDFunction;
    
  • تأكد من أن الخادم الذي يتم تشغيل الأداة عليه، وفي نهاية المطاف موقع التصدير، لديه مساحة كافية على القرص وقوة الحوسبة (vCores وCPU والذاكرة) لتنفيذ عملية التصدير، خاصة عند تصدير قاعدة بيانات كبيرة جدًا.

  • إنشاء مسار بين مثيل محلي أو AWS وقاعدة بيانات Azure لـMySQL إذا كان حمل العمل خلف جدران الحماية أو طبقات أمان الشبكة الأخرى.

بدء عملية الترحيل

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

  2. في شريط التنقل الأيسر، حدد أيقونة معالج الترحيل، كما هو موضح في لقطة الشاشة أدناه.

    MySQL Workbench start screen

    يتم عرض صفحة نظرة عامة لمعالج الترحيل، كما هو موضح أدناه.

    MySQL Workbench Migration Wizard welcome page

  3. حدد ما إذا كان لديك برنامج تشغيل ODBC لخادم MySQL مثبتًا عن طريق تحديد Open ODBC Administrator.

    في حالتنا، في علامة التبويب برامج التشغيل، ستلاحظ أن هناك بالفعل برنامجي تشغيل MySQL Server ODBC مثبتين.

    ODBC Data Source Administrator page

    إذا لم يتم تثبيت برنامج تشغيل MySQL ODBC، فاستخدم MySQL Installer الذي استخدمته لتثبيت MySQL Workbench لتثبيت برنامج التشغيل. لمزيد من المعلومات حول تثبيت برنامج تشغيل MySQL ODBC، راجع الموارد التالية:

  4. أغلق مربع الحوار مسؤول مصدر بيانات ODBC، ثم تابع عملية الترحيل.

تكوين معلمات اتصال خادم قاعدة البيانات المصدر

  1. في الصفحة نظرة عامة، حدد بدء الترحيل.

    تظهر صفحة تحديد المصدر. استخدم هذه الصفحة لتوفير معلومات حول RDBMS التي تقوم بالترحيل منها ومعلمات الاتصال.

  2. في حقل نظام قاعدة البيانات، حدد MySQL.

  3. في حقل الاتصال المخزن، حدد أحد إعدادات الاتصال المحفوظة لـRDBMS هذا.

    يمكنك حفظ الاتصالات عن طريق وضع علامة على خانة الاختيار في أسفل الصفحة وتوفير اسم لتفضيلاتك.

  4. في حقل Connection Method، حدد Standard TCP/IP.

  5. في حقل Hostname، حدد اسم خادم قاعدة البيانات المصدر.

  6. في حقل المنفذ، حدد 3306، ثم أدخل اسم المستخدم وكلمة المرور للاتصال بالخادم.

  7. في حقل قاعدة البيانات، أدخل اسم قاعدة البيانات التي تريد ترحيلها إذا كنت تعرفها؛ وإلا اترك هذا الحقل فارغًا.

  8. حدد اختبار الاتصال للتحقق من الاتصال بمثيل MySQL Server.

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

    Source database connection parameters page

  9. حدد التالي.

تكوين معلمات اتصال خادم قاعدة البيانات الهدف

  1. في صفحة Target Selection، قم بتعيين المعلمات للاتصال بمثيل MySQL Server الهدف الخاص بك باستخدام عملية مشابهة لتلك لإعداد الاتصال بالخادم المصدر.

  2. للتحقق من نجاح الاتصال، حدد اختبار الاتصال.

    Target database connection parameters page

  3. حدد التالي.

تحديد المخططات لترحيلها

سيتصل معالج الترحيل بمثيل MySQL Server الخاص بك ويجلب قائمة بالمخططات من الخادم المصدر.

  1. حدد إظهار السجلات لعرض هذه العملية.

    توضح لقطة الشاشة أدناه كيفية استرداد المخططات من خادم قاعدة البيانات المصدر.

    Fetch schemas list page

  2. حدد التالي للتحقق من أنه تم جلب جميع المخططات بنجاح.

    تظهر لقطة الشاشة أدناه قائمة المخططات التي تم جلبها.

    Schemas selection page

    يمكنك ترحيل المخططات التي تظهر في هذه القائمة فقط.

  3. حدد المخططات التي تريد ترحيلها، ثم حدد التالي.

ترحيل العناصر

بعد ذلك، حدد العنصر (العناصر) التي تريد ترحيلها.

  1. حدد إظهار التحديد، ثم ضمن العناصر المتوفرة، حدد العناصر التي تريد ترحيلها وأضفها.

    عند إضافة الكائنات، ستظهر ضمن عناصر الترحيل، كما هو موضح في لقطة الشاشة أدناه.

    Source objects selection page

    في هذا السيناريو، حددنا جميع كائنات الجدول.

  2. حدد التالي.

تحرير البيانات

في هذا القسم، لديك خيار تحرير الكائنات التي تريد ترحيلها.

  1. في الصفحة تحرير يدوي، لاحظ القائمة المنسدلة عرض في الزاوية العلوية اليسرى.

    Manual Editing selection page

    يتضمن مربع القائمة المنسدلة عرض ثلاثة عناصر:

    • كافة العناصر – يعرض كافة العناصر. باستخدام هذا الخيار، يمكنك تحرير SQL التي تم إنشاؤها يدويًا قبل تطبيقها على خادم قاعدة البيانات الهدف. للقيام بذلك، حدد الكائن وحدد إظهار التعليمات البرمجية والرسائل. يمكنك مشاهدة (وتحرير!) التعليمات البرمجية MySQL التي تم إنشاؤها والتي تتوافق مع الكائن المحدد.
    • مشاكل الترحيل – يعرض أي مشاكل حدثت في أثناء الترحيل، والتي يمكنك مراجعتها والتحقق منها.
    • تعيين العمود – يعرض معلومات تعيين العمود. يمكنك استخدام طريقة العرض هذه لتحرير الاسم وتغيير عمود الكائن الهدف.
  2. حدد التالي.

إنشاء قاعدة البيانات الهدف

  1. حدد خانة الاختيار إنشاء مخطط في RDBMS الهدف.

    يمكنك أيضًا اختيار الاحتفاظ بالمخططات الموجودة بالفعل، حتى لا يتم تعديلها أو تحديثها.

    Target Creation Options page

    في هذه المقالة، اخترنا إنشاء المخطط في RDBMS الهدف، ولكن يمكنك أيضًا تحديد خانة الاختيار إنشاء ملف برنامج نصي SQL لحفظ الملف على الكمبيوتر المحلي أو لأغراض أخرى.

  2. حدد التالي.

تشغيل البرنامج النصي MySQL لإنشاء كائنات قاعدة البيانات

نظرًا لأننا اخترنا إنشاء مخطط في RDBMS الهدف، سيتم تنفيذ البرنامج النصي SQL الذي تم ترحيله في خادم MySQL الهدف. يمكنك عرض تقدمه كما هو موضح في لقطة الشاشة أدناه:

Create Schemas page

  1. بعد إنشاء المخططات وإكمال كائناتها، حدد التالي.

    في صفحة إنشاء نتائج الهدف، يتم تقديم قائمة بالكائنات التي تم إنشاؤها وإخطارك بأي أخطاء تمت مواجهتها في أثناء إنشائها، كما هو موضح في لقطة الشاشة التالية.

    Create Target Results page

  2. راجع التفاصيل في هذه الصفحة للتحقق من اكتمال كل شيء على النحو المنشود.

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

  3. في المربع عنصر، حدد العنصر الذي تريد تحريره.

  4. ضمن SQL إنشاء برنامج نصي للكائن المحدد، قم بتعديل البرنامج النصي SQL، ثم حدد تطبيق لحفظ التغييرات.

  5. حدد إعادة إنشاء الكائنات لتشغيل البرنامج النصي بما في ذلك التغييرات.

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

  6. حدد التالي.

نقل البيانات

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

Data Transfer Setup page

توفر هذه الصفحة خيارات لإعداد نقل البيانات. سنقبل القيم الافتراضية لأغراض هذه المقالة.

  1. لبدء العملية الفعلية لنقل البيانات، حدد التالي.

    يظهر تقدم عملية نقل البيانات كما هو موضح في لقطة الشاشة التالية.

    Bulk Data Transfer page

    إشعار

    ترتبط مدة عملية نقل البيانات مباشرة بحجم قاعدة البيانات التي تقوم بترحيلها. كلما كانت قاعدة البيانات المصدر أكبر، كانت العملية تستغرق وقتًا أطول، وربما تصل إلى بضع ساعات لقواعد البيانات الأكبر.

  2. بعد اكتمال النقل، حدد التالي.

    تظهر صفحة تقرير الترحيل، مما يوفر تقريرًا يلخص العملية بأكملها، كما هو موضح في لقطة الشاشة أدناه:

    Migration Progress Report page

  3. حدد إنهاء لإغلاق معالج الترحيل.

    اكتمل الترحيل الآن بنجاح.

التحقق من تناسق المخططات والجداول التي تم ترحيلها

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

    في حالتنا، يمكنك أن ترى أن جميع المخططات (sakila وmoda والعناصر والعميل والملابس والعالم world_x) من Amazon RDS لـMySQL: تم ترحيل قاعدة بيانات MyjolieDB بنجاح إلى قاعدة بيانات Azure لـMySQL: مثيل azmysql.

  2. للتحقق من عدد الجداول والصفوف، قم بتشغيل الاستعلام التالي على كلا المثيلين:

    SELECT COUNT (*) FROM sakila.actor;

    يمكنك أن ترى من لقطة الشاشة أدناه أن عدد الصفوف لـAmazon RDS MySQL هو 200، والذي يطابق قاعدة بيانات Azure لمثيل MySQL.

    Table and Row size source database

    Table and Row size target database

    بينما يمكنك تشغيل الاستعلام أعلاه على كل مخطط وجدول واحد، سيكون ذلك قليلًا جدًا من العمل إذا كنت تتعامل مع مئات الآلاف أو حتى ملايين الجداول. يمكنك استخدام الاستعلامات أدناه للتحقق من المخطط (قاعدة البيانات) وحجم الجدول بدلًا من ذلك.

  3. للتحقق من حجم قاعدة البيانات، قم بتشغيل الاستعلام التالي:

    SELECT table_schema AS "Database", 
    ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" 
    FROM information_schema.TABLES 
    GROUP BY table_schema;
    
  4. للتحقق من حجم الجدول، قم بتشغيل الاستعلام التالي:

    SELECT table_name AS "Table",
    ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
    FROM information_schema.TABLES
    WHERE table_schema = "database_name"
    ORDER BY (data_length + index_length) DESC;
    

    ترى من لقطات الشاشة أدناه أن حجم المخطط (قاعدة البيانات) من مثيل Source Amazon RDS MySQL هو نفس حجم قاعدة بيانات Azure الهدف لمثيل MySQL.

    Database size source database

    Database size target database

    نظرًا لأن أحجام المخطط (قاعدة البيانات) هي نفسها في كلتا الحالتين، فليس من الضروري حقًا التحقق من أحجام الجداول الفردية. على أي حال، يمكنك دائمًا استخدام الاستعلام أعلاه للتحقق من أحجام الجدول، حسب الضرورة.

    لقد تأكدت الآن من اكتمال الترحيل بنجاح.

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