Percona XtraBackup — on utiliit andmete kuumaks varukoopiate tegemiseks MySQL.
Andmete varundamise ajal ei toimu tabelite lukustamist, teie süsteem töötab jätkuvalt ilma piiranguteta.
XtraBackup 2.4 suudab luua tabelite varukoopiaid InnoDB, XtraDB ja MyISAM serverites MySQL 5.11, 5.5, 5.6 ja 5.7, samuti serveris Percona kuna MySQL koos XtraDB.
Kasutamiseks MySQL 8.x tuleb kasutada versiooni XtraBackup 8.x. Selles artiklis käsitleme ainult XtraBackup 2.4.
Peamine eelis XtraBackup on see, et see utiliit sobib nii kõrgelt koormatud varukoopiate tegemiseks serverite, kui ka madala tehingute arvuga süsteemide jaoks.
Kui teie MySQL andmebaaside kogumaht on märkimisväärne (kümned gigabaitid), siis standardne utiliit mysqldump ei võimalda kiiresti varukoopiaid teha ja dumpi taastamine nõuab palju aega.
Installeerimine
Installeerimine XtraBackup hoidlast apt Percona.
Tehke järjestikku järgmised komandod:
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. Pärast paigaldamist käivitage käsk xtrabackup -v. On oluline veenduda, et utiliit töötab serveris korrektselt. Ekraanil kuvatakse midagi sellist:
xtrabackup: tuvastatud serveri argumendid: — datadir=/var/lib/mysql — tmpdir=/tmp — server-id=1 — logbin=/var/log/mysql/mysql-bin.log — innodb_buffer_pool_size=16384M — innodb_file_per_table=1 — innodb_flush_method=Odirect — innodb_flush_log_at_xcommit=0 xtrabackup versioon 2.4.20, mis põhineb MySQL serveril 5.7.26 Linux (x86_64) (revision id: c8b4056)

Kasutusõigused, õigused ja privileegid
XtraBackup peab olema võimeline:
Ühenduma teie MySQL serveriga.
Omama juurdepääsu kataloogile datadir.
Varukoopia loomise ajal olema kirjutamisõigused, mis on määratud parameetriga target-dir kataloog.
Mis on datadir?
datadir — see on kataloog, kus andmebaasi server MySQL salvestab andmeid. Kõik andmebaasid ja tabelid asuvad seal. Enamikus Linuxi distributsioonides on vaikimisi see kataloog /var/lib/mysql.
Mis on target-dir kataloog?
target-dir — see on kataloog, kuhu varukoopia salvestatakse.
Andmebaasi kasutajal on vajalikud järgmised juurdepääsuõigused varukoopia tegemiseks tabelitele ja andmebaasidele:
RELOAD ja LOCK TABLES
REPLICATION CLIENT
CREATE TABLESPACE
PROCESS
SUPER
CREATE
INSERT
SELECT
Konfiguratsioon
Konfiguratsioon XtraBackup teostatakse valikute kaudu, mis käituvad nagu standardseid MySQL parameetreid.
Mida see tähendab?
Konfiguratsiooniparameetreid saab määrata kas käsureal või andmebaasi konfiguratsioonifailis, näiteks /etc/my.cnf.
Käivitatud utiliit XtraBackup loeb jaotuseid [mysqld] ja [xtrabackup] MySQL konfiguratsioonifailidest. See on vajalik, et utiliit saaks kasutada teie andmebaasi seadeid ilma, et peaksite iga varundamise ajal parameetreid käsitsi määrama.
Näiteks väärtus datadir ja mõned parameetrid InnoDB XtraBackup saame teie andmebaasi konfigureerimisest.
Kui soovite määrata XtraBackupi tööks parameetreid, mis asuvad sektsioonis [mysqld], siis lihtsalt määrake need konfiguratsioonifailis sektsioonis [xtrabackup]. Kuna neid loetakse hiljem, on nende prioriteet kõrgem.
Te ei pruugi lisada ühtegi parameetrit my.cnf. Kõiki vajalikke parameetreid on lubatud määrata käsureal. Tavaline asi, mida võib olla mugav paigutada sektsioonis [xtrabackup] teie my.cnf — see on parameeter target_dir, mis vaikimisi määrab katalooge, kuhu varukopeerimised paigutatakse. Aga see ei ole kohustuslik.
Näide varukoopia kataloogi tee määramisest my.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/Varukoopia loomise skript
Varukoopia loomiseks võib kasutada järgmist skripti:
#!/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/backupMis toimub skripti käivitamise ajal?
Esmalt puhastame (kustutame) katalooge, kuhu varukoopia salvestame:
rm -rf /mysql/backup.
Seejärel, kasutades utiliiti XtraBackup loomme varukoopia ja salvestame selle /mysql/backup/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupEelnevalt oleme MySQL-is loonud kasutaja xtrabackup vajalike õigustega. Parameetri abil target-dir näitame katalooge, kuhu varukoopia salvestada.
Oluline punkt!
Pange tähele skripti rida:
xtrabackup --prepare --target-dir=/mysql/backup
Andmed kataloogis /mysql/backup ei ole konsistentsed, kuni need on ette valmistatud.
Asi on selles, et failide kopeerimise ajal võivad toimuda muudatused. Operatsioon xtrabackup --prepare --target-dir=/mysql/backup teeb varukoopia andmed ajaliselt ideaalselt kooskõlaliseks.
Andmete ettevalmistamise operatsiooni saab teostada mistahes masinal. Pole vajalik seda teha serveris, kus asub algne andmebaas. Võite varukoopia kopeerida sihtserverisse ja valmistada selle seal ette.
Viimane asi, mida me teeme, on arhivi loomine, kuhu paneme meie varukoopia:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date +%F_%H_%M_%S)».gz /mysql/backupVarukoopia taastamine
Enne varukoopia taastamist sihtserveris peavad andmed läbima ettevalmistusetapi. Kuidas seda teha, vaadake ülal.
Andmete taastamisprotsess on väga lihtne. Peate varukoopia arhivist välja voolima ja asendama andmed datadir.
Kuidas andmeid datadir'is asendada?
Vaadakem kahte võimalust.
Valik 1
Kasutage utiliiti XtraBackup. Peate määrama valiku --copy-back.
Allolev käsk edastab varukoopia datadir sihtserverisse:
xtrabackup --copy-back --target-dir=/mysql/backupVariant 2
Võite toimida ka teisiti, ilma utiliiti kasutamata. XtraBackup.
Kõik, mida vajate, on varukoopia kopeerimine datadir. Saate seda teha cp või rsync.
Oluline on mõista, et varukoopia taastamise protseduur seisneb ainult katalooge sisu asendamises. datadir.
Enne varukoopia taastamise alustamist sihtserveris on vajalik:
Peatada MySQL server.
Puhastada kaust datadir või viia selle sisu teise kohta. Kataloog datadir peab kindlasti olema tühi.
Andmete migreerimise lõppedes on datadir MySQL serveri käivitamine võimalik.
Kasutatud materjalid
.
Allikas: habr.com
