Percona XtraBackup یک ابزار برای پشتیبان گیری از پایگاه داده داغ است خروجی.
هنگام ایجاد یک نسخه پشتیبان از اطلاعات، هیچ جدولی قفل نمی شود و سیستم شما بدون هیچ محدودیتی به کار خود ادامه می دهد.
XtraBackup 2.4 می تواند یک نسخه پشتیبان از جداول ایجاد کند InnoDB, XtraDB и MyISAM روی سرورها MySQL 5.11، 5.5، 5.6 و 5.7و همچنین روی سرور پرکونا برای خروجی с XtraDB.
برای کار با MySQL 8.x نسخه باید استفاده شود XtraBackup 8.x. این مقاله فقط در مورد صحبت خواهد کرد XtraBackup 2.4.
مزیت اصلی XtraBackup این است که این ابزار برای ایجاد نسخههای پشتیبان از فایلهای با بار زیاد مناسب است. سرورهاو همچنین برای سیستمهایی با تعداد تراکنشهای کم.
اگر حجم کل پایگاه داده های MySQL شما قابل توجه است (ده ها گیگابایت)، پس ابزار استاندارد mysqldump به شما اجازه نمی دهد که به سرعت یک نسخه پشتیبان ایجاد کنید و بازیابی dump زمان زیادی می برد.
نصب
نصب 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 - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0 xtrabackup نسخه ۲.۴.۲۰ مبتنی بر سرور MySQL نسخه ۵.۷.۲۶ Linux (x8664) (شناسه ویرایش: c8b4056)

دسترسی به حقوق، مجوزها و امتیازات
XtraBackup باید بتواند:
به سرور MySQL خود متصل شوید.
حق دسترسی به دایرکتوری را داشته باشید datadir.
هنگام ایجاد یک نسخه پشتیبان، حقوق نوشتن پارامتر مشخص شده را داشته باشید هدف- کارگردان کاتالوگ
datadir چیست؟
datadir دایرکتوری است که در آن سرور پایگاه داده است خروجی دادهها را ذخیره میکند. همه پایگاههای داده، همه جداول در آنجا قرار دارند. در بیشتر توزیعها Linux به طور پیشفرض، این دایرکتوری /var/lib/mysql.
فهرست target-dir چیست؟
هدف- کارگردان - این دایرکتوری است که نسخه پشتیبان در آن ذخیره می شود.
کاربر پایگاه داده به حقوق دسترسی زیر به جداول و پایگاه های داده برای پشتیبان گیری نیاز دارد:
بارگذاری مجدد و قفل کردن جداول
RePLICATION CLIENT
فضای جدول ایجاد کنید
روند
SUPER
ايجاد كردن
INSERT
انتخاب کنید
پیکربندی
پیکربندی XtraBackup با استفاده از گزینه هایی انجام می شود که مانند گزینه های استاندارد MySQL عمل می کنند.
این به چه معناست؟
پارامترهای پیکربندی را می توان در خط فرمان یا در فایل پیکربندی DBMS مشخص کرد، به عنوان مثال در /etc/my.cnf.
ابزار XtraBackup پس از راه اندازی پارتیشن ها را می خواند [mysqld] и [xtrabackup] از فایل های پیکربندی MySQL. این کار به این دلیل انجام می شود که ابزار بتواند از تنظیمات DBMS شما بدون نیاز به تعیین دستی پارامترها در طول هر پشتیبان استفاده کند.
به عنوان مثال، ارزش datadir و برخی پارامترها InnoDB ما XtraBackup را از پیکربندی DBMS شما دریافت می کنیم.
اگر برای XtraBackup کار میکنید، میخواهید پارامترهای موجود در بخش را لغو کنید [mysqld]، سپس فقط آنها را در فایل پیکربندی در بخش مشخص کنید [xtrabackup]. از آنجایی که بعدا خوانده خواهند شد، اولویت آنها بیشتر خواهد بود.
لازم نیست هیچ پارامتری به آن اضافه کنید my.cnf. تمام پارامترهای مورد نیاز را می توان در خط فرمان مشخص کرد. معمولاً تنها چیزی که می توان به راحتی در بخش قرار داد [xtrabackup] مال شما 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 یک نسخه پشتیبان ایجاد کنید و آن را در آن ذخیره کنید /mysql/پشتیبان گیری/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupقبلاً یک کاربر در MySQL ایجاد کردیم xtrabackup با امتیازات لازم با استفاده از پارامتر target-dir ما دایرکتوری را مشخص می کنیم که نسخه پشتیبان باید در آن ذخیره شود.
نکته مهم
به خط اسکریپت توجه کنید:
xtrabackup --prepare --target-dir=/mysql/backup
داده های کاتالوگ /mysql/پشتیبان گیری تا زمانی که پخته نشوند سازگار نیستند.
واقعیت این است که تغییرات ممکن است هنگام کپی کردن فایل ها رخ دهد. عمل xtrabackup --prepare --target-dir=/mysql/backup داده های پشتیبان گیری را در طول زمان کاملاً سازگار می کند.
شما می توانید عملیات آماده سازی داده ها را بر روی هر ماشینی انجام دهید. نیازی به انجام این کار در سروری که منبع DBMS در آن قرار دارد وجود ندارد. می توانید نسخه پشتیبان را در سرور مورد نظر کپی کرده و در آنجا آماده کنید.
آخرین کاری که انجام می دهیم این است که یک آرشیو ایجاد کنیم که در آن نسخه پشتیبان خود را قرار دهیم:
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 یا rsync.
درک این نکته مهم است که روند بازیابی نسخه پشتیبان فقط به جایگزینی محتویات فهرست خلاصه می شود. datadir.
قبل از شروع بازیابی یک نسخه پشتیبان در سرور مورد نظر، باید:
سرور MySQL را متوقف کنید.
پوشه را پاک کنید datadir یا محتویات آن را به مکان دیگری منتقل کنید. کاتالوگ datadir باید خالی باشد
پس از تکمیل انتقال اطلاعات به datadir سرور MySQL می تواند راه اندازی شود.
مواد مورد استفاده
.
منبع: www.habr.com
