ترحيل قواعد البيانات الكبيرة إلى Azure Database for MySQL باستخدام mydumper/myloader

تنبيه

تشير هذه المقالة إلى CentOS، وهو توزيع Linux يقترب من حالة نهاية العمر الافتراضي (EOL). يرجى مراعاة استخدامك والتخطيط وفقا لذلك. لمزيد من المعلومات، راجع إرشادات نهاية العمر الافتراضي CentOS.

ينطبق على:قاعدة بيانات Azure لـ MySQL - خادم فردي قاعدة بيانات Azure لـ MySQL - خادم مرن

Azure Database for MySQL هي خدمة مدارة تستخدمها لتشغيل قواعد بيانات MySQL وإدارتها وتوسيع نطاقها في السحابة. لترحيل قواعد بيانات MySQL التي يزيد حجمها عن 1 تيرابايت إلى Azure Database لـ MySQL، ضع في اعتبارك استخدام أدوات المجتمع مثل mydumper/myloader، والتي توفر المزايا التالية:

  • التوازي، للمساعدة في تقليل وقت الترحيل.
  • أداء أفضل، من خلال تجنب إجراءات تحويل مجموعة الأحرف باهظة الثمن.
  • تنسيق الإخراج، مع ملفات منفصلة للجداول وبيانات التعريف وما إلى ذلك، مما يجعل من السهل عرض/تحليل البيانات. التناسق، من خلال الحفاظ على لقطة عبر جميع المواضيع.
  • مواضع السجل الأولية والمتماثلة الدقيقة.
  • إدارة سهلة، لأنها تدعم التعبيرات العادية المتوافقة مع Perl (PCRE) لتحديد استثناءات واستثناءات قاعدة البيانات والجداول.
  • يتم تجميع المخطط والبيانات معاً. لا تحتاج إلى التعامل معها بشكل منفصل مثل أدوات الترحيل المنطقية الأخرى.

يوضح لك هذا التشغيل السريع كيفية تثبيت قاعدة بيانات MySQL ونسخها احتياطياً واستعادتها باستخدام mydumper/myloader.

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

قبل البدء في ترحيل قاعدة بيانات MySQL، تحتاج إلى:

  1. إنشاء خادم Azure Database for MySQL باستخدام مدخل Azure.

  2. إنشاء جهاز Azure ظاهري يعمل بنظام Linux باستخدام مدخل Microsoft Azure (يفضل أن يكون Ubuntu).

    إشعار

    قبل تثبيت الأدوات، ضع في اعتبارك النقاط التالية:

    • إذا كان المصدر محلياً ولديه اتصال عرض النطاق الترددي العالي بـ Azure (باستخدام ExpressRoute)، ففكر في تثبيت الأداة على جهاز Azure الظاهري.
    • إذا كان لديك تحد في النطاق الترددي بين المصدر والهدف، ففكر في تثبيت mydumper بالقرب من المصدر وmyloader بالقرب من الخادم الهدف. يمكنك استخدام أدوات Azcopy لنقل البيانات من الحلول المحلية أو حلول السحابة الأخرى إلى Azure.
  3. تثبيت عميل mysql، قم بالخطوات التالية:

  • تحديث فهرس الحزمة على جهاز Azure الظاهري الذي يعمل بنظام Linux عن طريق تشغيل الأمر التالي:
sudo apt update
  • تثبيت حزمة عميل mysql عن طريق تشغيل الأمر التالي:
sudo apt install mysql-client

تثبيت mydumper/myloader

لتثبيت mydumper/myloader، قم بالخطوات التالية.

  1. اعتماداً على توزيع نظام التشغيل الخاص بك، قم بتنزيل الحزمة المناسبة لـ mydumper/myloader، وتشغيل الأمر التالي:

    wget https://github.com/maxbube/mydumper/releases/download/v0.10.1/mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
    

    إشعار

    يساعد $(lsb_release -cs) على تحديد التوزيع الخاص بك.

  2. لتثبيت حزمة .deb لـ mydumper، قم بتشغيل الأمر التالي:

    sudo dpkg -i mydumper_0.10.1-2.$(lsb_release -cs)_amd64.deb
    

    تلميح

    سيختلف الأمر الذي تستخدمه لتثبيت الحزمة استناداً إلى توزيع Linux لديك لأن المثبتات مختلفة. يتوفر mydumper/myloader للتوزيعات التالية Fedora وRedHat وUbuntu وDebian وCentOS وopenSUSE وMacOSX. لمزيد من المعلومات، راجع كيفية تثبيت mydumper

إنشاء نسخة احتياطية باستخدام mydumper

  • لإنشاء نسخة احتياطية باستخدام mydumper، قم بتشغيل الأمر التالي:

    mydumper --host=<servername> --user=<username> --password=<Password> --outputdir=./backup --rows=100000 --compress --build-empty-files --threads=16 --compress-protocol --trx-consistency-only --ssl  --regex '^(<Db_name>\.)' -L mydumper-logs.txt
    

يستخدم هذا الأمر المتغيرات التالية:

  • --المضيف: المضيف للاتصال

  • --المستخدم: اسم المستخدم مع الامتيازات اللازمة

  • --كلمة المرور: كلمة مرور المستخدم

  • --الصفوف: حاول تقسيم الجداول إلى أجزاء من هذا العدد من الصفوف

  • --outputdir: دليل لتفريغ ملفات الإخراج إلى

  • --regex: تعبير عادي لمطابقة قاعدة البيانات.

  • --trx-consistency-only: تناسق المعاملات فقط

  • --مؤشرات الترابط: عدد مؤشرات الترابط التي يجب استخدامها، الافتراضي 4. يوصى باستخدام قيمة تساوي 2x من vCore للكمبيوتر.

    إشعار

    لمزيد من المعلومات حول الخيارات الأخرى، يمكنك استخدام مع mydumper، قم بتشغيل الأمر التالي: mydumper --help . لمزيد من التفاصيل، راجع وثائق mydumper\myloader
    لتفريغ قواعد بيانات متعددة بالتوازي، يمكنك تعديل متغير regex كما هو موضح في المثال: regex '^(DbName1.|DbName2.)

استعادة قاعدة البيانات باستخدام myloader

  • لاستعادة قاعدة البيانات التي قمت بنسخها احتياطياً باستخدام mydumper، قم بتشغيل الأمر التالي:

    myloader --host=<servername> --user=<username> --password=<Password> --directory=./backup --queries-per-transaction=500 --threads=16 --compress-protocol --ssl --verbose=3 -e 2>myloader-logs.txt
    

يستخدم هذا الأمر المتغيرات التالية:

  • --المضيف: المضيف للاتصال
  • --المستخدم: اسم المستخدم مع الامتيازات اللازمة
  • --كلمة المرور: كلمة مرور المستخدم
  • --الدليل: الموقع حيث يتم تخزين النسخة الاحتياطية.
  • --الاستعلامات لكل معاملة: التوصية بتعيين إلى قيمة لا تزيد عن 500
  • --مؤشرات الترابط: عدد مؤشرات الترابط التي يجب استخدامها، الافتراضي 4. يوصى باستخدام قيمة تساوي 2x من vCore للكمبيوتر

تلميح

لمزيد من المعلومات حول الخيارات الأخرى، يمكنك استخدام مع mydumper، قم بتشغيل الأمر التالي: mydumper --help

بعد استعادة قاعدة البيانات، يوصى دائما بالتحقق من صحة تناسق البيانات بين قواعد البيانات المصدر والهدف.

إشعار

أرسل أي مشكلات أو ملاحظات تتعلق بأدوات mydumper/myloader هنا.