MySQL-i varukoopia loomine utiliidi XtraBackup abil

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 InnoDBXtraDB и 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)

MySQL-i varukoopia loomine utiliidi XtraBackup abil

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

Ametlik dokumentatsioon percona XtraBackup.

Allikas: www.habr.com

Lisa kommentaar