بيركونا XtraBackup هي أداة مساعدة للنسخ الاحتياطي لقاعدة البيانات الساخنة MySQL.
عند إنشاء نسخة احتياطية للبيانات، لا يتم قفل أي جداول، ويستمر نظامك في العمل دون أي قيود.
XtraBackup 2.4 تحديث يمكن إنشاء نسخ احتياطية من الجداول ك InnoDB, XtraDB и MyISAM على الخوادم ماي إس كيو إل 5.11، 5.5، 5.6 و5.7وأيضا على الخادم Percona إلى MySQL с XtraDB.
للعمل مع إصدار MySQL 8.x. ينبغي استخدام الإصدار اكستراباك اب 8.x. هذه المقالة سوف تتحدث فقط عن اكستراباك اب 2.4.
والميزة الرئيسية XtraBackup تتمثل فائدة هذه الأداة في أنها مناسبة لإنشاء نسخ احتياطية من الملفات ذات الأحمال العالية الخوادموكذلك بالنسبة للأنظمة ذات عدد المعاملات المنخفض.
إذا كان الحجم الإجمالي لقواعد بيانات MySQL كبيرًا (عشرات الجيجابايت)، فستكون الأداة المساعدة القياسية الخلية لن يسمح لك بإنشاء نسخة احتياطية بسرعة، وستستغرق استعادة التفريغ الكثير من الوقت.
تركيب
تركيب XtraBackup من المستودع عرضة بيركونا.
قم بتشغيل الأوامر التالية بالتسلسل:
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
sudo dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
sudo apt-get update
sudo apt-get install percona-xtrabackup-242. بعد التثبيت، قم بتشغيل الأمر xtrabackup -v. نظرًا لأنه من المهم التأكد من أن الأداة تعمل بشكل صحيح على الخادم. ونتيجة لذلك، سيتم عرض شيء مثل هذا على الشاشة:
xtrabackup: تم التعرف على وسائط الخادم التالية: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0. إصدار xtrabackup 2.4.20 مبني على خادم MySQL 5.7.26 Linux (x8664) (معرف المراجعة: c8b4056)

حقوق الوصول والأذونات والامتيازات
يجب أن يكون XtraBackup قادرًا على:
اتصل بخادم MySQL الخاص بك.
لديك حقوق الوصول إلى الدليل DATADIR.
عند إنشاء نسخة احتياطية، لديك حقوق الكتابة إلى المعلمة المحددة الهدف دير فهرس.
ما هو داتادير؟
DATADIR هو الدليل حيث خادم قاعدة البيانات MySQL تُخزّن البيانات. جميع قواعد البيانات وجميع الجداول موجودة هناك. في معظم التوزيعات Linux هذا الدليل هو افتراضيًا / var / lib / mysql.
ما هو دليل الهدف-دير؟
الهدف دير - هذا هو الدليل الذي سيتم حفظ النسخة الاحتياطية فيه.
يحتاج مستخدم قاعدة البيانات إلى حقوق الوصول التالية إلى الجداول وقواعد البيانات المراد عمل نسخة احتياطية منها:
إعادة تحميل وقفل الجداول
عميل النسخ المتماثل
إنشاء مساحة طاولة
PROCESS
سوبر
خلق
INSERT
اختر
ترتيب
ترتيب XtraBackup يتم ذلك باستخدام الخيارات التي تتصرف بنفس طريقة خيارات MySQL القياسية.
ماذا يعني هذا؟
يمكن تحديد معلمات التكوين إما في سطر الأوامر أو في ملف تكوين نظام إدارة قواعد البيانات (DBMS)، على سبيل المثال في /etc/my.cnf.
تقوم الأداة المساعدة XtraBackup بقراءة الأقسام بعد التشغيل [mysqld] и [اكستراباك اب] من ملفات تكوين MySQL. يتم ذلك حتى تتمكن الأداة المساعدة من استخدام إعدادات نظام إدارة قواعد البيانات (DBMS) الخاص بك دون الحاجة إلى تحديد المعلمات يدويًا أثناء كل نسخة احتياطية.
على سبيل المثال، القيمة DATADIR وبعض المعلمات ك InnoDB نحصل على XtraBackup من تكوين نظام إدارة قواعد البيانات (DBMS) الخاص بك.
إذا كان XtraBackup يعمل، فأنت تريد تجاوز المعلمات الموجودة في القسم [mysqld]، ثم حددها فقط في ملف التكوين الموجود في القسم [اكستراباك اب]. وبما أنه سيتم قراءتها لاحقًا، فإن أولويتها ستكون أعلى.
ليس عليك إضافة أي معلمات إلى my.cnf. يمكن تحديد جميع المعلمات المطلوبة في سطر الأوامر. عادة ما يكون الشيء الوحيد الذي يمكن وضعه بشكل ملائم في القسم [اكستراباك اب] ك my.cnf هي معلمة target_dir، والذي يحدد بشكل افتراضي الدليل الذي سيتم وضع النسخ الاحتياطية فيه. لكن هذا اختياري.
مثال على تحديد المسار إلى الدليل مع وجود نسخة احتياطية فيه my.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/البرنامج النصي النسخ الاحتياطي
يمكنك استخدام البرنامج النصي التالي لإنشاء نسخة احتياطية:
#!/bin/bash
# Удаляем данные в каталоге бекапа
rm -rf /mysql/backup
# Cоздаём бекап
xtrabackup --user=xtrabackup
--password=xxxx_SECRET_xxxx
--backup
--target-dir=/mysql/backup
# Выполняем подготовку бекапа для развёртывания
xtrabackup --prepare --target-dir=/mysql/backup
# Создаём архив
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-"$(date +%F-%H:%M:%S)".gz /mysql/backupماذا يحدث أثناء تنفيذ البرنامج النصي؟
بادئ ذي بدء، نقوم بمسح (حذف) الدليل الذي سنحفظ فيه النسخة الاحتياطية:
rm -rf /mysql/backup.
ثم، باستخدام الأداة المساعدة XtraBackup إنشاء نسخة احتياطية وحفظها فيه / الخلية / النسخ الاحتياطي /:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupفي السابق، قمنا بإنشاء مستخدم في MySQL xtrabackup مع الامتيازات المطلوبة. باستخدام المعلمة target-dir نحدد الدليل الذي يجب حفظ النسخة الاحتياطية فيه.
نقطة مهمة!
لاحظ سطر البرنامج النصي:
xtrabackup --prepare --target-dir=/mysql/backup
بيانات الكتالوج /mysql/backup ليست متسقة حتى يتم طهيها.
والحقيقة هي أن التغييرات يمكن أن تحدث أثناء نسخ الملفات. عملية xtrabackup --prepare --target-dir=/mysql/backup يجعل بيانات النسخ الاحتياطي متسقة تمامًا مع مرور الوقت.
يمكنك إجراء عملية إعداد البيانات على أي جهاز. ليست هناك حاجة للقيام بذلك على الخادم حيث يوجد نظام إدارة قواعد البيانات المصدر. يمكنك نسخ النسخة الاحتياطية إلى الخادم الهدف وإعدادها هناك.
آخر شيء نقوم به هو إنشاء أرشيف نضع فيه النسخة الاحتياطية:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backupاستعادة نسخة احتياطية
قبل أن تتمكن من استعادة نسخة احتياطية إلى الخادم الهدف، يجب أن تمر البيانات بمرحلة إعداد. انظر أعلاه لمعرفة كيفية القيام بذلك.
عملية استعادة البيانات بسيطة للغاية. تحتاج إلى استخراج النسخة الاحتياطية من الأرشيف واستبدال البيانات الموجودة فيها DATADIR.
كيفية استبدال البيانات في datadir؟
دعونا نفكر في خيارين.
الخيار 1
استخدم الأداة المساعدة XtraBackup. تحتاج إلى تحديد خيار --النسخ الخلفي.
سيقوم الأمر أدناه بنقل النسخة الاحتياطية إلى DATADIR الخادم المستهدف:
xtrabackup --copy-back --target-dir=/mysql/backupالخيار 2
يمكنك القيام بذلك بشكل مختلف، الاستغناء عن الأداة المساعدة XtraBackup.
كل ما عليك فعله هو نسخ النسخة الاحتياطية إلى DATADIR. يمكنك القيام بذلك مع cp أو رسينك.
من المهم أن نفهم أن إجراء استعادة النسخة الاحتياطية يتلخص في استبدال محتويات الدليل فقط DATADIR.
قبل البدء في استعادة نسخة احتياطية على الخادم الهدف، يجب عليك:
إيقاف خادم MySQL.
مجلد فارغ DATADIR أو نقل محتوياته إلى مكان آخر. فهرس DATADIR يجب أن تكون فارغة.
بعد الانتهاء من نقل البيانات إلى DATADIR يمكن بدء تشغيل خادم MySQL.
المواد المستخدمة
.
المصدر: www.habr.com
