ترحيل 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. في شريط التنقل الأيسر، حدد أيقونة معالج الترحيل.

    يتم عرض صفحة نظرة عامة على معالج الترحيل.

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

    إذا لم يتم تثبيت برنامج تشغيل 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.

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

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

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

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

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

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

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

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

  1. حدد إظهار السجلات لعرض هذه العملية. توضح صفحة إحضار قائمة المخططات كيفية استرداد المخططات من خادم قاعدة البيانات المصدر.

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

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

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

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

  1. حدد إظهار التحديد، ثم ضمن العناصر المتوفرة، حدد العناصر التي تريد ترحيلها وأضفها. عند إضافة الكائنات، ستظهر ضمن Objects to Migrate.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

نقل البيانات

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

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

  1. لبدء العملية الفعلية لنقل البيانات، حدد التالي. يوجد شريط تقدم لنقل البيانات.

    إشعار

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

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

    تظهر صفحة تقرير الترحيل، مما يوفر تقريرا يلخص العملية بأكملها.

  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.

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

  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;
    

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

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

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

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