Percona XtraBackup je uslužni program za vruće sigurnosne kopije baze podataka MySQL.
Prilikom kreiranja sigurnosne kopije podataka, nijedna tabela nije zaključana, a vaš sistem nastavlja raditi bez ikakvih ograničenja.
XtraBackup 2.4 može kreirati rezervne kopije tabela InnoDB, XtraDB и MyISAM na serverima MySQL 5.11, 5.5, 5.6 i 5.7, kao i na serveru percona do MySQL с XtraDB.
Za rad sa MySQL 8.x verziju treba koristiti XtraBackup 8.x. Ovaj članak će govoriti samo o tome XtraBackup 2.4.
Glavna prednost XtraBackup je da je ovaj uslužni program pogodan za kreiranje sigurnosnih kopija visoko opterećenih serveri, kao i za sisteme sa malim brojem transakcija.
Ako je ukupna veličina vaših MySQL baza podataka značajna (desetine gigabajta), tada standardni uslužni program mysqldump neće vam omogućiti da brzo napravite sigurnosnu kopiju, a vraćanje dumpa će potrajati dosta vremena.
postavljanje
postavljanje XtraBackup iz spremišta pogodan Percona.
Pokrenite sljedeće komande uzastopno:
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. Nakon instalacije, pokrenite naredbu xtrabackup -v. Budući da je važno osigurati da uslužni program ispravno radi na serveru. Kao rezultat, na ekranu će se prikazati nešto poput ovoga:
xtrabackup: prepoznati argumenti servera: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0 xtrabackup verzija 2.4.20 zasnovana na MySQL serveru 5.7.26 Linux (x8664) (id revizije: c8b4056)

Prava pristupa, dozvole i privilegije
XtraBackup bi trebao biti u mogućnosti:
Povežite se na vaš MySQL server.
Imaju prava pristupa direktoriju je podaci.
Prilikom kreiranja sigurnosne kopije, imajte prava pisanja na navedeni parametar target-dir katalog.
Šta je datadir?
je podaci je direktorij u kojem se nalazi poslužitelj baze podataka MySQL pohranjuje podatke. Sve baze podataka, sve tabele se tamo nalaze. U većini distribucija Linux Podrazumevano, ovaj direktorijum je /var/lib/mysql.
Šta je ciljni direktorij?
target-dir - Ovo je direktorij u koji će sigurnosna kopija biti sačuvana.
Korisniku baze podataka su potrebna sljedeća prava pristupa tabelama i bazama podataka za izradu sigurnosne kopije:
RELOAD i LOCK TABLES
REPLICATION CLIENT
CREATE TABLESPACE
PROCES
SUPER
CREATE
INSERT
SELECT
Konfiguracija
Konfiguracija XtraBackup urađeno korištenjem opcija koje se ponašaju isto kao i standardne MySQL opcije.
Šta to znači?
Parametri konfiguracije se mogu specificirati ili u komandnoj liniji ili u konfiguracijskoj datoteci DBMS-a, na primjer u /etc/my.cnf.
Uslužni program XtraBackup čita particije nakon pokretanja [mysqld] и [xtrabackup] iz MySQL konfiguracijskih datoteka. Ovo je učinjeno tako da uslužni program može koristiti postavke vašeg DBMS-a bez potrebe da ručno specificira parametre tokom svake sigurnosne kopije.
Na primjer, vrijednost je podaci i neki parametri InnoDB Dobijamo XtraBackup iz konfiguracije vašeg DBMS-a.
Ako želite da XtraBackup radi, želite nadjačati parametre koji se nalaze u odjeljku [mysqld], a zatim ih samo navedite u konfiguracijskoj datoteci u odjeljku [xtrabackup]. Pošto će se čitati kasnije, njihov prioritet će biti veći.
Ne morate dodavati nikakve parametre my.cnf. Svi potrebni parametri se mogu specificirati na komandnoj liniji. Obično jedina stvar koja se može prikladno smjestiti u odjeljak [xtrabackup] your my.cnf je parametar target_dir, koji po defaultu specificira direktorij u koji će biti smještene sigurnosne kopije. Ali ovo nije obavezno.
Primjer specificiranja putanje do direktorija s sigurnosnom kopijom my.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/Backup skripta
Za kreiranje sigurnosne kopije možete koristiti sljedeću skriptu:
#!/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Šta se dešava tokom izvršavanja skripte?
Prije svega, obrišemo (izbrišemo) direktorij u koji ćemo spremiti sigurnosnu kopiju:
rm -rf /mysql/backup.
Zatim, koristeći uslužni program XtraBackup napravite rezervnu kopiju i sačuvajte je /mysql/backup/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupRanije smo kreirali korisnika u MySQL-u xtrabackup sa potrebnim privilegijama. Korištenje parametra target-dir specificiramo direktorij u koji treba pohraniti sigurnosnu kopiju.
Važna stvar!
Obratite pažnju na liniju skripte:
xtrabackup --prepare --target-dir=/mysql/backup
Kataloški podaci /mysql/backup nisu konzistentni dok se ne skuvaju.
Činjenica je da može doći do promjena prilikom kopiranja datoteka. Operacija xtrabackup --prepare --target-dir=/mysql/backup čini sigurnosne kopije podataka savršeno konzistentnim tokom vremena.
Možete izvršiti operaciju pripreme podataka na bilo kojoj mašini. Nema potrebe da se to radi na serveru na kojem se nalazi izvorni DBMS. Možete kopirati rezervnu kopiju na ciljni server i tamo je pripremiti.
Zadnje što radimo je da kreiramo arhivu u koju stavljamo rezervnu kopiju:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backupVraćanje rezervne kopije
Prije nego što možete vratiti rezervnu kopiju na ciljni server, podaci moraju proći kroz pripremnu fazu. Pogledajte iznad kako to učiniti.
Proces oporavka podataka je vrlo jednostavan. Morate izvući sigurnosnu kopiju iz arhive i zamijeniti podatke je podaci.
Kako zamijeniti podatke u datadir?
Razmotrimo dvije opcije.
Opcija 1
Koristite uslužni program XtraBackup. Morate navesti opciju --copy-back.
Naredba u nastavku će prenijeti sigurnosnu kopiju na je podaci ciljni server:
xtrabackup --copy-back --target-dir=/mysql/backupOpcija 2
Možete to učiniti drugačije, bez uslužnog programa XtraBackup.
Sve što treba da uradite je da kopirate rezervnu kopiju u je podaci. Možete to učiniti sa cp ili rsync.
Važno je shvatiti da se postupak vraćanja sigurnosne kopije svodi samo na zamjenu sadržaja direktorija je podaci.
Prije nego počnete obnavljati sigurnosnu kopiju na ciljnom serveru, morate:
Zaustavite MySQL server.
Obriši folder je podaci ili premjestite njegov sadržaj na drugu lokaciju. Katalog je podaci mora biti prazan.
Nakon završetka prijenosa podataka na je podaci MySQL server se može pokrenuti.
Korišćeni materijali
.
izvor: www.habr.com
