ترحيل قاعدة بيانات MariaDB إلى قاعدة بيانات Azure ل MariaDB باستخدام التفريغ والاستعادة

توضح هذه المقالة طريقتين شائعتين لعمل نسخة احتياطية من قواعد البيانات واستعادتها في قاعدة بيانات Azure الخاصة بك ل MariaDB:

  • تفريغ واستعادة باستخدام أداة سطر الأوامر (باستخدام mysqldump)
  • تفريغ واستعادة باستخدام phpMyAdmin

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

قبل البدء في ترحيل قاعدة البيانات، قم بما يلي:

استخدام الأدوات الشائعة

استخدم الأدوات المساعدة والأدوات الشائعة مثل MySQL Workbench أو mysqldump للاتصال بالبيانات واستعادتها عن بعد في قاعدة بيانات Azure الخاصة بك ل MariaDB. استخدم هذه الأدوات على جهاز العميل الخاص بك مع اتصال بالإنترنت للاتصال بقاعدة بيانات Azure ل MariaDB. استخدم اتصالا مشفرا بواسطة طبقة المقابس الآمنة كأفضل ممارسات الأمان. لمزيد من المعلومات، راجع تكوين اتصال SSL في قاعدة بيانات Azure ل MariaDB. لا تحتاج إلى نقل ملفات التفريغ إلى أي موقع سحابي خاص عند ترحيل البيانات إلى قاعدة بيانات Azure الخاصة بك ل MariaDB.

الاستخدامات الشائعة للتفريغ والاستعادة

يمكنك استخدام الأدوات المساعدة MySQL مثل mysqldump و mysqlpump لتفريغ وتحميل قواعد البيانات في قاعدة بيانات Azure لخادم MariaDB في العديد من السيناريوهات الشائعة.

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

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

    على سبيل المثال، إذا كان لديك تطبيق WordPress أو تطبيق ويب يستخدم جداول MyISAM، فقم أولا بتحويل هذه الجداول عن طريق ترحيلها إلى تنسيق InnoDB قبل استعادتها إلى قاعدة بيانات Azure الخاصة بك ل MariaDB. استخدم العبارة ENGINE=InnoDB لتعيين المحرك لاستخدامه لإنشاء جدول جديد، ثم قم بنقل البيانات إلى الجدول المتوافق قبل استعادتها.

    INSERT INTO innodb_table SELECT * FROM myisam_table ORDER BY primary_key_columns
    
  • لتجنب أي مشكلات في التوافق عند تفريغ قواعد البيانات، تأكد من أنك تستخدم نفس الإصدار من MariaDB على أنظمة المصدر والوجهة. على سبيل المثال، إذا كان خادم MariaDB الحالي هو الإصدار 10.2، فيجب الترحيل إلى قاعدة بيانات Azure الخاصة ب MariaDB التي تم تكوينها لتشغيل الإصدار 10.2. لا يعمل mysql_upgrade الأمر في قاعدة بيانات Azure لخادم MariaDB، وهو غير مدعوم. إذا كنت بحاجة إلى الترقية عبر إصدارات MariaDB، فقم أولا بتفريغ قاعدة بيانات الإصدار السابق أو تصديرها إلى إصدار أحدث من MariaDB في بيئتك الخاصة. يمكنك بعد ذلك التشغيل mysql_upgrade قبل محاولة الترحيل إلى قاعدة بيانات Azure الخاصة بك ل MariaDB.

اعتبارات الأداء

لتحسين الأداء عند التخلص من قواعد البيانات الكبيرة، ضع في اعتبارك الاعتبارات التالية:

  • استخدم الخيار في exclude-triggers mysqldump. استبعاد المشغلات من ملفات التفريغ لتجنب إطلاق أوامر المشغل أثناء استعادة البيانات.
  • single-transaction استخدم الخيار لتعيين وضع عزل المعاملة إلى قراءة قابلة للتكرار وإرسال بيان SQL معاملة START إلى الخادم قبل تفريغ البيانات. يؤدي إغراق العديد من الجداول داخل معاملة واحدة إلى استهلاك بعض التخزين الإضافي أثناء الاستعادة. الخيار single-transaction والخيار lock-tables يستبعد أحدهما الآخر. وذلك لأن LOCK TABLES يتسبب في تنفيذ أي معاملات معلقة ضمنيا. لتفريغ الجداول الكبيرة ، ادمج single-transaction الخيار مع الخيار quick .
  • استخدم بناء جملة متعدد الصفوف extended-insert الذي يتضمن عدة قوائم VALUE. ينتج عن هذا النهج ملف تفريغ أصغر ويسرع عمليات الإدراج عند إعادة تحميل الملف.
  • استخدم الخيار في order-by-primary mysqldump عند تفريغ قواعد البيانات، بحيث تتم برمجة البيانات بترتيب المفاتيح الأساسي.
  • استخدم الخيار في disable-keys mysqldump عند تفريغ البيانات ، لتعطيل قيود المفتاح الخارجي قبل التحميل. يساعد تعطيل عمليات التحقق من المفاتيح الخارجية على تحسين الأداء. تمكين القيود والتحقق من البيانات بعد التحميل لضمان سلامة المرجع.
  • استخدم الجداول المقسمة عند الاقتضاء.
  • تحميل البيانات بالتوازي. تجنب الكثير من التوازي، الذي قد يتسبب في الوصول إلى حد الموارد، وراقب الموارد باستخدام المقاييس المتوفرة في مدخل Azure.
  • استخدم الخيار في defer-table-indexes mysqlpump عند تفريغ قواعد البيانات، بحيث يحدث إنشاء الفهرس بعد تحميل بيانات الجدول.
  • انسخ ملفات النسخ الاحتياطي إلى متجر Azure blob وقم بإجراء الاستعادة من هناك. يجب أن يكون هذا النهج أسرع بكثير من إجراء الاستعادة عبر الإنترنت.

إنشاء ملف نسخ احتياطي

لعمل نسخة احتياطية من قاعدة بيانات MariaDB موجودة على الملقم المحلي المحلي أو في جهاز ظاهري، قم بتشغيل الأمر التالي باستخدام mysqldump:

$ mysqldump --opt -u <uname> -p<pass> <dbname> > <backupfile.sql>

المعلمات التي يجب توفيرها هي:

  • <uname>: اسم مستخدم قاعدة البيانات الخاصة بك
  • <تمرير>: كلمة المرور لقاعدة البيانات الخاصة بك (لاحظ أنه لا توجد مسافة بين -p وكلمة المرور)
  • <dbname>: اسم قاعدة البيانات الخاصة بك
  • <backupfile.sql>: اسم الملف للنسخ الاحتياطي لقاعدة البيانات
  • <--opt>: خيار mysqldump

على سبيل المثال، لإجراء نسخ احتياطي لقاعدة بيانات باسم testdb على خادم MariaDB باستخدام اسم المستخدم testuser وبدون كلمة مرور لملف testdb_backup.sql، استخدم الأمر التالي. يقوم الأمر بعمل نسخة احتياطية من testdb قاعدة البيانات في ملف يسمى testdb_backup.sql، والذي يحتوي على جميع عبارات SQL اللازمة لإعادة إنشاء قاعدة البيانات.

$ mysqldump -u root -p testdb > testdb_backup.sql

لتحديد جداول معينة لنسخها احتياطيا في قاعدة البيانات، قم بإدراج أسماء الجداول مفصولة بمسافات. على سبيل المثال، لعمل نسخة احتياطية من جدولي table1 وtable2 فقط من testdb، اتبع هذا المثال:

$ mysqldump -u root -p testdb table1 table2 > testdb_tables_backup.sql

لإجراء نسخ احتياطي لأكثر من قاعدة بيانات واحدة في وقت واحد، استخدم رمز التبديل --database وقم بإدراج أسماء قواعد البيانات، مفصولة بمسافات.

$ mysqldump -u root -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql 

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

قم بإنشاء قاعدة بيانات فارغة على قاعدة بيانات Azure الهدف لخادم MariaDB حيث تريد ترحيل البيانات. استخدم أداة مثل MySQL Workbench لإنشاء قاعدة البيانات. يمكن أن يكون لقاعدة البيانات نفس اسم قاعدة البيانات التي تحتوي على البيانات التي تم إغراقها، أو يمكنك إنشاء قاعدة بيانات باسم مختلف.

للاتصال، حدد موقع معلومات الاتصال في جزء "نظرة عامة " في قاعدة بيانات Azure ل MariaDB.

Screenshot of the Overview pane for an Azure database for MariaDB server in the Azure portal.

في MySQL Workbench، أضف معلومات الاتصال.

Screenshot of the MySQL Connections pane in MySQL Workbench.

استعادة قاعدة بيانات MariaDB الخاصة بك

بعد إنشاء قاعدة البيانات الهدف، يمكنك استخدام الأمر mysql أو MySQL Workbench لاستعادة البيانات إلى قاعدة البيانات التي تم إنشاؤها حديثا من ملف التفريغ.

mysql -h <hostname> -u <uname> -p<pass> <db_to_restore> < <backupfile.sql>

في هذا المثال، يمكنك استعادة البيانات إلى قاعدة البيانات التي تم إنشاؤها حديثا على قاعدة بيانات Azure الهدف لخادم MariaDB.

$ mysql -h mydemoserver.mariadb.database.azure.com -u myadmin@mydemoserver -p testdb < testdb_backup.sql

تصدير قاعدة بيانات MariaDB الخاصة بك باستخدام phpMyAdmin

للتصدير ، يمكنك استخدام الأداة الشائعة phpMyAdmin ، والتي قد تكون مثبتة بالفعل محليا في بيئتك. لتصدير قاعدة بيانات MariaDB، قم بما يلي:

  1. افتح phpMyAdmin.
  2. في الجزء الأيمن، حدد قاعدة البيانات الخاصة بك، ثم حدد الارتباط تصدير . تظهر صفحة جديدة لعرض تفريغ قاعدة البيانات.
  3. في منطقة التصدير ، حدد الارتباط تحديد الكل لاختيار الجداول في قاعدة البيانات.
  4. في منطقة خيارات SQL، حدد الخيارات المناسبة.
  5. حدد الخيار حفظ كملف وخيار الضغط المقابل، ثم حدد انتقال. في المطالبة، احفظ الملف محليا.

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

تشبه عملية الاستيراد عملية التصدير. قم بما يلي:

  1. افتح phpMyAdmin.
  2. في صفحة إعداد phpMyAdmin، حدد إضافة لإضافة قاعدة بيانات Azure لخادم MariaDB.
  3. أدخل تفاصيل الاتصال ومعلومات تسجيل الدخول.
  4. إنشاء قاعدة بيانات مسماة بشكل مناسب، ثم قم بتحديدها في الجزء الأيمن. لإعادة كتابة قاعدة البيانات الموجودة، حدد اسم قاعدة البيانات، وحدد كافة خانات الاختيار الموجودة بجانب أسماء الجداول، وحدد إسقاط لحذف الجداول الموجودة.
  5. حدد الرابط SQL لإظهار الصفحة حيث يمكنك إدخال أوامر SQL أو تحميل ملف SQL.
  6. حدد زر الاستعراض للعثور على ملف قاعدة البيانات.
  7. حدد الزر انتقال لتصدير النسخة الاحتياطية، وتنفيذ أوامر SQL، وإعادة إنشاء قاعدة البيانات.

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