Percona XtraBackup on utiliit kuumade andmebaaside varukoopiate tegemiseks MySQL.
Andmete varukoopia loomisel ei lukustata ühtegi tabelit ja teie süsteem töötab edasi ilma piiranguteta.
XtraBackup 2.4 saab luua tabelitest varukoopiaid InnoDB, XtraDB и MinuISAM serverites MySQL 5.11, 5.5, 5.6 ja 5.7, ja ka serveris percona eest MySQL с XtraDB.
Töötamiseks MySQL 8.x versiooni tuleks kasutada XtraBackup 8.x. See artikkel räägib ainult sellest XtraBackup 2.4.
Peamine eelis XtraBackup See utiliit sobib nii suure koormusega serverite varukoopiate loomiseks kui ka väikese tehingute arvuga süsteemide jaoks.
Kui teie MySQL-i andmebaaside kogumaht on märkimisväärne (kümneid gigabaite), siis standardutiliit mysqldump ei võimalda teil kiiresti varukoopiat luua ja prügila taastamine võtab palju aega.
Paigaldamine
Paigaldamine XtraBackup hoidlast asjakohane Percona.
Käivitage järjestikku järgmised käsud:
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. Pärast installimist käivitage käsk xtrabackup -v
. Kuna on oluline veenduda, et utiliit töötab serveris õigesti. Selle tulemusena kuvatakse ekraanil midagi sellist:
xtrabackup: tuvastatud serveri argumendid: - datadir=/var/lib/mysql - tmpdir=/tmp - serveri-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup versioon 2.4.20, mis põhineb MySQL serveri versioonil 5.7.26 Linux (x8664) (revisjoni ID: c8b4056)
Juurdepääsuõigused, load ja privileegid
XtraBackup peaks suutma:
-
Ühendage oma MySQL-serveriga.
-
Omama juurdepääsuõigusi kataloogile andmekataloog.
-
Varukoopia loomisel omage määratud parameetri kirjutamisõigusi sihtmärk-rež kataloog.
Mis on datadir?
andmekataloog on kataloog, kus asub andmebaasiserver MySQL salvestab andmeid. Kõik andmebaasid, kõik tabelid on olemas. Enamikus Linuxi distributsioonides on vaikekataloog /var/lib/mysql.
Mis on sihtkataloogi kataloog?
sihtmärk-rež - See on kataloog, kuhu varukoopia salvestatakse.
Andmebaasi kasutajal on varundamiseks vaja järgmisi juurdepääsuõigusi tabelitele ja andmebaasidele:
-
LAADI TAAS JA LUKUSTAGE TABELID
-
REPLIKATSIOONIKLIENT
-
LOO LAUAPISA
-
PROTSESS
-
SUPER
-
LUUA
-
INSERT
-
SELECT
Konfiguratsioon
Konfiguratsioon XtraBackup tehakse suvandite abil, mis käituvad samamoodi nagu tavalised MySQL-i suvandid.
Mida see tähendab?
Konfiguratsiooniparameetreid saab määrata kas käsureal või DBMS-i konfiguratsioonifailis, näiteks in /etc/my.cnf.
XtraBackupi utiliit loeb partitsioonid pärast käivitamist [mysqld] и [xtrabackup] MySQL-i konfiguratsioonifailidest. Seda tehakse selleks, et utiliit saaks kasutada teie DBMS-i sätteid, ilma et peaks iga varundamise ajal parameetreid käsitsi määrama.
Näiteks väärtus andmekataloog ja mõned parameetrid InnoDB Saame XtraBackupi teie DBMS-i konfiguratsioonist.
Kui soovite, et XtraBackup töötaks, soovite jaotises olevad parameetrid alistada [mysqld], seejärel määrake need jaotises konfiguratsioonifailis [xtrabackup]. Kuna neid loetakse hiljem, on nende prioriteet kõrgem.
Te ei pea parameetreid lisama minu.cnf. Kõik nõutavad parameetrid saab määrata käsureal. Tavaliselt ainuke asi, mille saab mugavalt sektsiooni panna [xtrabackup] oma minu.cnf on parameeter siht_kataloog, mis vaikimisi määrab kataloogi, kuhu varukoopiad paigutatakse. Kuid see on valikuline.
Näide kataloogi tee määramisest koos varukoopiaga minu.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/
Varundamisskript
Varukoopia loomiseks saate 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/backup
Mis juhtub skripti täitmise ajal?
Kõigepealt tühjendame (kustutame) kataloogi, kuhu varukoopia salvestame:
rm -rf /mysql/backup.
Seejärel utiliidi abil XtraBackup looge varukoopia ja salvestage see /mysql/backup/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backup
Varem lõime kasutaja MySQL-is xtrabackup
nõutavate õigustega. Parameetri kasutamine target-dir
määrame kataloogi, kuhu varukoopia salvestada.
Oluline punkt!
Pange tähele skripti rida:
xtrabackup --prepare --target-dir=/mysql/backup
Kataloogi andmed /mysql/backup ei ole ühtlased enne, kui need on keedetud.
Fakt on see, et failide kopeerimisel võivad tekkida muudatused. Operatsioon xtrabackup --prepare --target-dir=/mysql/backup
muudab varundusandmed aja jooksul täiuslikult järjepidevaks.
Andmete ettevalmistamise toimingut saate teha mis tahes masinas. Seda pole vaja teha serveris, kus asub lähte-DBMS. Saate kopeerida varukoopia sihtserverisse ja selle seal ette valmistada.
Viimase asjana loome arhiivi, kuhu varundame:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backup
Varukoopia taastamine
Enne sihtserverisse varukoopia taastamist peavad andmed läbima ettevalmistusfaasi. Vaadake ülalt, kuidas seda teha.
Andmete taastamise protsess on väga lihtne. Peate arhiivist varukoopia välja võtma ja andmed asendama andmekataloog.
Kuidas andmekataloogis andmeid asendada?
Vaatleme kahte võimalust.
Valik 1
Kasutage utiliiti XtraBackup. Peate määrama valiku --kopeeri-tagasi.
Allolev käsk kannab varukoopia üle andmekataloog sihtserver:
xtrabackup --copy-back --target-dir=/mysql/backup
Valik 2
Saate seda teha erinevalt, ilma utiliidita XtraBackup.
Kõik, mida pead tegema, on kopeerida varukoopia asukohta andmekataloog. Saate seda teha koos cp või rsync.
Oluline on mõista, et varukoopia taastamise protseduur taandub lihtsalt kataloogi sisu asendamisele andmekataloog.
Enne sihtserveris varukoopia taastamise alustamist peate:
-
Peatage MySQL server.
-
Tühjenda kaust andmekataloog või teisaldage selle sisu teise kohta. Kataloog andmekataloog peab olema tühi.
Pärast andmete edastamise lõpetamist andmekataloog MySQL serveri saab käivitada.
Kasutatud materjalid
Allikas: www.habr.com