Percona XtraBackup je pripomoček za vroče varnostne kopije baze podatkov MySQL.
Pri izdelavi varnostne kopije podatkov se nobena tabela ne zaklene in vaš sistem še naprej deluje brez kakršnih koli omejitev.
XtraBackup 2.4 lahko ustvari varnostne kopije tabel InnoDB, XtraDB и MyISAM na strežnikih MySQL 5.11, 5.5, 5.6 in 5.7, in tudi na strežniku Percona za MySQL с XtraDB.
Za delo z MySQL 8.x je treba uporabiti različico XtraBackup 8.x. Ta članek bo govoril samo o XtraBackup 2.4.
Glavna prednost XtraBackup je, da je ta pripomoček primeren za ustvarjanje varnostnih kopij zelo obremenjenih strežniki, kot tudi za sisteme z majhnim številom transakcij.
Če je skupna velikost vaših baz podatkov MySQL precejšnja (desetine gigabajtov), potem standardni pripomoček mysqldump vam ne bo omogočilo hitrega ustvarjanja varnostne kopije, obnovitev izpisa pa bo trajala veliko časa.
Namestitev
Namestitev XtraBackup iz repozitorija apt Percona.
Zaporedoma zaženite naslednje ukaze:
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. Po namestitvi zaženite ukaz xtrabackup -v. Ker je pomembno zagotoviti, da pripomoček pravilno deluje na strežniku. Posledično se bo na zaslonu prikazalo nekaj takega:
xtrabackup: prepoznani argumenti strežnika: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup različica 2.4.20, ki temelji na strežniku MySQL 5.7.26 Linux (x8664) (ID revizije: c8b4056)

Pravice dostopa, dovoljenja in privilegiji
XtraBackup bi moral imeti možnost:
Povežite se s svojim strežnikom MySQL.
Imeti pravice dostopa do imenika datadir.
Ko ustvarjate varnostno kopijo, imejte pravice pisanja v navedeni parameter ciljni-dir katalog.
Kaj je datadir?
datadir je imenik, kjer je strežnik baze podatkov MySQL shranjuje podatke. Vse baze podatkov, vse tabele se nahajajo tam. V večini distribucij Linux Privzeto je ta imenik /var/lib/mysql.
Kaj je imenik target-dir?
ciljni-dir - To je imenik, v katerega bo shranjena varnostna kopija.
Uporabnik baze podatkov potrebuje naslednje pravice dostopa do tabel in baz podatkov, ki jih je treba varnostno kopirati:
PONOVNO NALOŽI in ZAKLENI TABELE
PODVOJITEV ODJEMALCEV
USTVARI TABLE PROSTOR
PROCES
SUPER
USTVARI
INSERT
IZBIRA
Konfiguracija
Konfiguracija XtraBackup opravljeno z možnostmi, ki se obnašajo enako kot standardne možnosti MySQL.
Kaj to pomeni?
Konfiguracijske parametre je mogoče določiti v ukazni vrstici ali v konfiguracijski datoteki DBMS, na primer v /etc/my.cnf.
Pripomoček XtraBackup prebere particije po zagonu [mysqld] и [xtrabackup] iz konfiguracijskih datotek MySQL. To se naredi tako, da lahko pripomoček uporablja nastavitve vašega DBMS, ne da bi morali ročno določiti parametre med vsakim varnostnim kopiranjem.
Na primer vrednost datadir in nekaj parametrov InnoDB XtraBackup dobimo iz konfiguracije vašega DBMS.
Če želite, da XtraBackup deluje, želite preglasiti parametre, ki so v razdelku [mysqld], nato pa jih samo določite v konfiguracijski datoteki v razdelku [xtrabackup]. Ker bodo prebrani kasneje, bo njihova prednost večja.
Ni vam treba dodajati parametrov moj.cnf. Vse zahtevane parametre je mogoče določiti v ukazni vrstici. Ponavadi je edina stvar, ki jo je mogoče priročno postaviti v razdelek [xtrabackup] vaš moj.cnf je parameter ciljni_dir, ki privzeto določa imenik, kamor bodo nameščene varnostne kopije. Ampak to ni obvezno.
Primer določanja poti do imenika, v katerem je varnostna kopija moj.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/Skript za varnostno kopiranje
Za ustvarjanje varnostne kopije lahko uporabite naslednji skript:
#!/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/backupKaj se zgodi med izvajanjem skripta?
Najprej počistimo (izbrišemo) imenik, v katerega bomo shranili varnostno kopijo:
rm -rf /mysql/backup.
Nato z uporabo pripomočka XtraBackup ustvarite varnostno kopijo in jo shranite /mysql/backup/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupPrej smo ustvarili uporabnika v MySQL xtrabackup z zahtevanimi privilegiji. Uporaba parametra target-dir določimo imenik, kamor naj se varnostna kopija shrani.
Pomembna točka!
Upoštevajte vrstico skripta:
xtrabackup --prepare --target-dir=/mysql/backup
Kataloški podatki /mysql/backup niso konsistentni, dokler niso kuhani.
Dejstvo je, da lahko med kopiranjem datotek pride do sprememb. Delovanje xtrabackup --prepare --target-dir=/mysql/backup naredi varnostne kopije podatkov popolnoma dosledne skozi čas.
Operacijo priprave podatkov lahko izvedete na kateri koli napravi. Tega ni treba storiti na strežniku, kjer se nahaja izvorni DBMS. Varnostno kopijo lahko kopirate na ciljni strežnik in jo tam pripravite.
Zadnja stvar, ki jo naredimo, je ustvariti arhiv, v katerega postavimo svojo varnostno kopijo:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backupObnavljanje varnostne kopije
Preden lahko obnovite varnostno kopijo na ciljnem strežniku, morajo podatki skozi pripravljalno fazo. Kako to storite, glejte zgoraj.
Postopek obnovitve podatkov je zelo preprost. Varnostno kopijo morate ekstrahirati iz arhiva in zamenjati podatke datadir.
Kako zamenjati podatke v datadir?
Razmislimo o dveh možnostih.
Možnost 1
Uporabite pripomoček XtraBackup. Določiti morate možnost --copy-back.
Spodnji ukaz bo prenesel varnostno kopijo v datadir ciljni strežnik:
xtrabackup --copy-back --target-dir=/mysql/backupMožnost 2
To lahko storite drugače, brez pripomočka XtraBackup.
Vse, kar morate storiti, je kopirati varnostno kopijo v datadir. To lahko storite z cp ali rsync.
Pomembno je razumeti, da se postopek obnovitve varnostne kopije zmanjša le na zamenjavo vsebine imenika datadir.
Preden začnete obnavljati varnostno kopijo na ciljnem strežniku, morate:
Zaustavite strežnik MySQL.
Počisti mapo datadir ali njeno vsebino premaknete na drugo mesto. Katalog datadir mora biti prazno.
Po končanem prenosu podatkov v datadir Strežnik MySQL se lahko zažene.
uporabljeni materiali
.
Vir: www.habr.com
