إنشاء نسخة احتياطية لـ MySQL باستخدام الأداة المساعدة XtraBackup

بيركونا XtraBackup هي أداة مساعدة للنسخ الاحتياطي لقاعدة البيانات الساخنة MySQL.

عند إنشاء نسخة احتياطية للبيانات، لا يتم قفل أي جداول، ويستمر نظامك في العمل دون أي قيود.

XtraBackup 2.4 تحديث يمكن إنشاء نسخ احتياطية من الجداول ك InnoDBXtraDB и 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-24

2. بعد التثبيت، قم بتشغيل الأمر xtrabackup -v. نظرًا لأنه من المهم التأكد من أن الأداة تعمل بشكل صحيح على الخادم. ونتيجة لذلك، سيتم عرض شيء مثل هذا على الشاشة:

xtrabackup: وسيطات الخادم المعترف بها: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup الإصدار 2.4.20 استنادًا إلى خادم MySQL 5.7.26 Linux (x8664) (معرف المراجعة: c8b4056)

إنشاء نسخة احتياطية لـ MySQL باستخدام الأداة المساعدة XtraBackup

حقوق الوصول والأذونات والامتيازات 

يجب أن يكون 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.

المواد المستخدمة

الوثائق الرسمية Percona XtraBackup.

المصدر: www.habr.com

إضافة تعليق