Percona XtraBackup issiq ma'lumotlar bazasini zaxiralash uchun yordamchi dasturdir MySQL.
Ma'lumotlarning zahira nusxasini yaratishda hech qanday jadval bloklanmaydi va tizimingiz hech qanday cheklovlarsiz ishlashda davom etadi.
XtraBackup 2.4 jadvallarning zaxira nusxalarini yaratishi mumkin InnoDB, XtraDB и MyISAM serverlarda MySQL 5.11, 5.5, 5.6 va 5.7, shuningdek, serverda Perkona uchun MySQL с XtraDB.
Bilan ishlash MySQL 8.x versiyasidan foydalanish kerak XtraBackup 8.x. Ushbu maqola faqat haqida gapiradi XtraBackup 2.4.
Asosiy afzallik XtraBackup ushbu yordamchi dastur yuqori yuklangan fayllarning zaxira nusxalarini yaratish uchun mos keladimi? serverlar, shuningdek, tranzaksiyalar soni kam bo'lgan tizimlar uchun.
Agar MySQL ma'lumotlar bazangizning umumiy hajmi sezilarli bo'lsa (o'nlab gigabayt), u holda standart yordam dasturi mysqldump tezda zaxira nusxasini yaratishga imkon bermaydi va axlatni qayta tiklash juda ko'p vaqtni oladi.
sozlama
sozlama XtraBackup omboridan apt Percona.
Quyidagi buyruqlarni ketma-ket bajaring:
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. O'rnatishdan so'ng buyruqni bajaring xtrabackup -v. Shu sababli, yordamchi dastur serverda to'g'ri ishlashiga ishonch hosil qilish muhimdir. Natijada, ekranda shunga o'xshash narsa ko'rsatiladi:
xtrabackup: recognized server arguments: — datadir=/var/lib/mysql — tmpdir=/tmp — server-id=1 — logbin=/var/log/mysql/mysql-bin.log — innodbbufferpoolsize=16384M — innodbfilepertable=1 — innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup version 2.4.20 based on MySQL server 5.7.26 Linux (x8664) (revision id: c8b4056)

Kirish huquqlari, ruxsatlari va imtiyozlari
XtraBackup quyidagilarga qodir bo'lishi kerak:
MySQL serveringizga ulaning.
Katalogga kirish huquqiga ega bo'ling datadir.
Zaxira nusxasini yaratishda ko'rsatilgan parametrga yozish huquqiga ega bo'ling maqsad-dir katalog.
Datadir nima?
datadir ma'lumotlar bazasi serveri joylashgan katalogdir MySQL хранит данные. Все базы данных, все таблицы находятся там. В большинстве дистрибутивов Linux по умолчанию таким каталогом является /var/lib/mysql.
target-dir katalogi nima?
maqsad-dir - Bu zaxira nusxasi saqlanadigan katalog.
Ma'lumotlar bazasi foydalanuvchisi zaxira nusxasini yaratish uchun jadvallar va ma'lumotlar bazalariga quyidagi huquqlarga ega bo'lishi kerak:
JADVALLARNI QAYTA YUKLASH VA QULFLASH
REPLIKATSIYA MIJOSI
TABLESPACE YARATING
PROSES
SUPER
CREATE
KIRITMOQ
SELECT
Konfiguratsiya
Konfiguratsiya XtraBackup standart MySQL opsiyalari bilan bir xil harakat qiladigan variantlar yordamida amalga oshiriladi.
Bu nimani anglatadi?
Konfiguratsiya parametrlari buyruq satrida yoki DBMS konfiguratsiya faylida ko'rsatilishi mumkin, masalan /etc/my.cnf.
XtraBackup yordam dasturi ishga tushirilgandan so'ng bo'limlarni o'qiydi [mysqld] и [xtrabackup] MySQL konfiguratsiya fayllaridan. Bu yordam dasturi har bir zahira nusxasi paytida parametrlarni qo'lda ko'rsatmasdan, ma'lumotlar bazasi ma'lumotlar bazasi sozlamalaridan foydalanishi uchun amalga oshiriladi.
Masalan, qiymat datadir va ba'zi parametrlar InnoDB Biz XtraBackup-ni DBMS konfiguratsiyasidan olamiz.
Agar XtraBackup ishlashi uchun siz bo'limdagi parametrlarni bekor qilishni xohlaysiz [mysqld], keyin ularni faqat bo'limdagi konfiguratsiya faylida ko'rsating [xtrabackup]. Ular keyinroq o'qilishi sababli, ularning ustuvorligi yuqoriroq bo'ladi.
Hech qanday parametr qo'shishingiz shart emas my.cnf. Barcha kerakli parametrlar buyruq satrida ko'rsatilishi mumkin. Odatda bo'limga qulay tarzda joylashtirilishi mumkin bo'lgan yagona narsa [xtrabackup] sizning my.cnf parametr hisoblanadi target_dir, bu sukut bo'yicha zaxira nusxalari joylashtiriladigan katalogni belgilaydi. Lekin bu ixtiyoriy.
Zaxira nusxasi bilan katalogga yo'lni ko'rsatishga misol my.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/Zaxira skript
Zaxira nusxasini yaratish uchun quyidagi skriptdan foydalanishingiz mumkin:
#!/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/backupSkriptni bajarish paytida nima sodir bo'ladi?
Avvalo, biz zaxira nusxasini saqlaydigan katalogni tozalaymiz (yo'q qilamiz):
rm -rf /mysql/backup.
Keyin, yordamchi dasturdan foydalaning XtraBackup zaxira nusxasini yarating va uni saqlang /mysql/backup/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupIlgari biz MySQL-da foydalanuvchi yaratgan edik xtrabackup zarur imtiyozlar bilan. Parametrdan foydalanish target-dir zaxira nusxasi saqlanishi kerak bo'lgan katalogni belgilaymiz.
Muhim nuqta!
Skript qatoriga e'tibor bering:
xtrabackup --prepare --target-dir=/mysql/backup
Katalog ma'lumotlari /mysql/backup ular pishirilgunga qadar izchil emas.
Gap shundaki, fayllarni nusxalashda o'zgarishlar yuz berishi mumkin. Operatsiya xtrabackup --prepare --target-dir=/mysql/backup zaxira ma'lumotlarini vaqt o'tishi bilan mukammal darajada moslashtiradi.
Ma'lumotlarni tayyorlash jarayonini istalgan mashinada bajarishingiz mumkin. Manba DBMS joylashgan serverda buni qilishning hojati yo'q. Zaxira nusxasini maqsadli serverga nusxalashingiz va u erda tayyorlashingiz mumkin.
Biz qiladigan oxirgi narsa - zaxira nusxasini joylashtiradigan arxiv yaratish:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backupZaxira nusxasini tiklash
Maqsadli serverga zaxira nusxasini tiklashdan oldin, ma'lumotlar tayyorgarlik bosqichidan o'tishi kerak. Buni qanday qilishni yuqorida ko'ring.
Ma'lumotni tiklash jarayoni juda oddiy. Arxivdan zaxira nusxasini olib, undagi ma'lumotlarni almashtirishingiz kerak datadir.
Datadir-da ma'lumotlarni qanday almashtirish mumkin?
Keling, ikkita variantni ko'rib chiqaylik.
variant 1
Yordamchi dasturdan foydalaning XtraBackup. Variantni belgilashingiz kerak --qayta nusxalash.
Quyidagi buyruq zaxira nusxasini o'tkazadi datadir maqsadli server:
xtrabackup --copy-back --target-dir=/mysql/backupvariant 2
Siz buni boshqacha qilishingiz mumkin, yordamchi dastursiz bajaring XtraBackup.
Siz qilishingiz kerak bo'lgan yagona narsa zaxira nusxasini nusxalashdir datadir. Buni bilan qilishingiz mumkin cp yoki rsync.
Zaxira nusxasini tiklash tartibi faqat katalog tarkibini almashtirishdan iborat ekanligini tushunish muhimdir. datadir.
Maqsadli serverda zaxira nusxasini tiklashni boshlashdan oldin siz:
MySQL serverini to'xtating.
Jildni tozalash datadir yoki uning mazmunini boshqa joyga ko'chiring. Katalog datadir bo'sh bo'lishi kerak.
Ma'lumot uzatishni tugatgandan so'ng datadir MySQL serverini ishga tushirish mumkin.
Amaldagi materiallar
.
Manba: www.habr.com
