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 on see, et see utiliit sobib väga koormatud failide varukoopiate loomiseks serverid, samuti süsteemide jaoks, millel on väike tehingute arv.
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-242. 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 - server-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 serveril 5.7.26 Linux (x8664) (versiooni 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 ja kõik tabelid asuvad seal. Enamikus distributsioonides Linux Vaikimisi on see kataloog /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/backupMis 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/backupVarem 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/backupVarukoopia 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/backupValik 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
