Percona XtraBackup is in hulpprogramma foar hot database backups MySQL.
By it meitsjen fan in gegevensreservekopy wurde gjin tabellen beskoattele, en jo systeem bliuwt sûnder beheiningen te wurkjen.
XtraBackup 2.4 kinne reservekopyen fan tabellen meitsje InnoDB, XtraDB и MyISAM op tsjinners MySQL 5.11, 5.5, 5.6 en 5.7, en ek op de tsjinner percona foar MySQL с XtraDB.
Om mei te wurkjen MySQL 8.x ferzje moat brûkt wurde XtraBackup 8.x. Dit artikel sil allinich prate oer XtraBackup 2.4.
It wichtichste foardiel XtraBackup is dat dit hulpprogramma geskikt is foar it meitsjen fan reservekopyen fan heech laden servers, lykas ek foar systemen mei in leech oantal transaksjes.
As de totale grutte fan jo MySQL-databases signifikant is (tsientallen gigabytes), dan is it standert hulpprogramma mysqldump sil jo net tastean om fluch in reservekopy te meitsjen, en it herstellen fan de dump sil in protte tiid nimme.
ynstelling
ynstelling XtraBackup út de repository apt Percona.
Folje it folgjende kommando yn:
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. Nei ynstallaasje, útfiere it kommando xtrabackup -v. Sûnt is it wichtich om te soargjen dat it hulpprogramma goed wurket op 'e tsjinner. As resultaat sil sa'n ding op it skerm werjûn wurde:
xtrabackup: erkende serverarguminten: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup ferzje 2.4.20 basearre op MySQL-server 5.7.26 Linux (x8664) (revisje-ID: c8b4056)

Tagongsrjochten, tagongsrjochten en privileezjes
XtraBackup moat yn steat wêze om:
Ferbine mei jo MySQL-tsjinner.
Hawwe tagongsrjochten foar de map is data.
By it meitsjen fan in reservekopy, hawwe skriuwrjochten foar de oantsjutte parameter target-dir katalogus.
Wat is datadir?
is data is de map wêr't de databanktsjinner MySQL bewarret gegevens. Alle databases, alle tabellen binne dêr te finen. Yn de measte distribúsjes Linux Standert is dizze map /var/lib/mysql.
Wat is target-dir directory?
target-dir - Dit is de map wêr't de reservekopy wurdt bewarre.
De databankbrûker hat de folgjende tagongsrjochten nedich foar de tabellen en databases om reservekopy te meitsjen:
RELOAD en SLOTTABELLEN
REPLICATION CLIENT
CREATE TABLESPACE
PROSES
SUPER
CREATE
YNFOEGJE
ÚTKIEZE
Konfiguraasje
Konfiguraasje XtraBackup dien mei opsjes dy't itselde gedrage as standert MySQL-opsjes.
Wat betsjut dit?
Konfiguraasjeparameters kinne wurde opjûn op 'e kommandorigel of yn it DBMS-konfiguraasjetriem, bygelyks yn /etc/my.cnf.
XtraBackup-hulpprogramma lêst partysjes nei lansearring [mysqld] и [xtrabackup] fan MySQL-konfiguraasjebestannen. Dit wurdt dien sadat it hulpprogramma de ynstellingen fan jo DBMS brûke kin sûnder de parameters manuell oan te jaan by elke reservekopy.
Bygelyks, de wearde is data en guon parameters InnoDB Wy krije XtraBackup út de konfiguraasje fan jo DBMS.
As foar XtraBackup om te wurkjen wolle jo de parameters oerskriuwe dy't yn 'e seksje binne [mysqld], spesifisearje se dan gewoan yn it konfiguraasjetriem yn 'e seksje [xtrabackup]. Om't se letter sille wurde lêzen, sil har prioriteit heger wêze.
Jo moatte gjin parameters tafoegje oan myn.cnf. Alle fereaske parameters kinne wurde oantsjutte op de kommandorigel. Meastentiids is it ienige ding dat maklik yn 'e seksje kin wurde pleatst [xtrabackup] dyn myn.cnf is in parameter target_dir, dy't standert de map spesifisearret wêr't backups pleatst wurde. Mar dit is opsjoneel.
In foarbyld fan it opjaan fan it paad nei de map mei in reservekopy yn myn.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/Reservekopy skript
Jo kinne it folgjende skript brûke om in reservekopy te meitsjen:
#!/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/backupWat bart der by it útfieren fan skript?
Earst wiskje (wiskje) wy de map wêryn wy de reservekopy sille bewarje:
rm -rf /mysql/backup.
Dan, mei help fan it nut XtraBackup meitsje in reservekopy en bewarje it yn /mysql/backup/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupEarder makken wy in brûker yn MySQL xtrabackup mei de fereaske privileezjes. It brûken fan de parameter target-dir wy spesifisearje de map wêr't de reservekopy bewarre wurde moat.
In wichtige punt!
Notysje de skriptline:
xtrabackup --prepare --target-dir=/mysql/backup
Katalogus gegevens /mysql/backup binne net konsekwint oant se wurde cooked.
It feit is dat feroarings kinne foarkomme by it kopiearjen fan bestannen. Operaasje xtrabackup --prepare --target-dir=/mysql/backup makket backupgegevens perfekt konsekwint oer de tiid.
Jo kinne de gegevenstariedingsoperaasje op elke masine útfiere. D'r is net nedich om dit te dwaan op 'e tsjinner wêr't de boarne DBMS leit. Jo kinne de reservekopy kopiearje nei de doeltsjinner en dêr tariede.
It lêste wat wy dogge is in argyf oanmeitsje wêryn wy ús reservekopy pleatse:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backupIn reservekopy weromsette
Foardat jo in reservekopy kinne weromsette nei de doeltsjinner, moatte de gegevens troch in tariedingsfaze gean. Sjoch hjirboppe foar hoe't jo dit dwaan.
De gegevens herstel proses is hiel simpel. Jo moatte de reservekopy út it argyf ekstrahearje en de gegevens yn ferfange is data.
Hoe kinne jo gegevens ferfange yn datadir?
Litte wy twa opsjes beskôgje.
Option 1
Brûk it nut XtraBackup. Jo moatte in opsje opjaan --kopy-werom.
It kommando hjirûnder sil de reservekopy oerdrage nei is data doeltsjinner:
xtrabackup --copy-back --target-dir=/mysql/backupOption 2
Jo kinne it oars dwaan, dwaan sûnder it nut XtraBackup.
Alles wat jo hoege te dwaan is de reservekopy nei te kopiearjen is data. Jo kinne dit dwaan mei cp of rsync.
It is wichtich om te begripen dat de proseduere foar it weromsetten fan in reservekopy delkomt op gewoan it ferfangen fan de ynhâld fan 'e map is data.
Foardat jo begjinne mei it herstellen fan in reservekopy op 'e doeltsjinner, moatte jo:
Stopje MySQL-tsjinner.
De map wiskje is data of ferpleatse de ynhâld nei in oare lokaasje. Katalogus is data moat leech wêze.
Nei it ynfoljen fan de gegevens oerdracht nei is data MySQL-tsjinner kin wurde starte.
Materialen brûkt
.
Boarne: www.habr.com
