Percona XtraBackup ir utilÄ«ta karstu datu bÄzes dublÄÅ”anai MySQL.
Veidojot datu dublÄjumu, neviena tabula netiek bloÄ·Äta, un sistÄma turpina darboties bez ierobežojumiem.
XtraBackup 2.4 var izveidot tabulu rezerves kopijas InnoDB, XtraDB Šø MyISAM serveros MySQL 5.11, 5.5, 5.6 un 5.7un arÄ« serverÄ« Perkona par MySQL Ń XtraDB.
Lai strÄdÄtu ar MySQL 8.x versija ir jÄizmanto XtraBackup 8.x. Å ajÄ rakstÄ tiks runÄts tikai par XtraBackup 2.4.
GalvenÄ priekÅ”rocÄ«ba XtraBackup ir tÄ, ka Ŕī utilÄ«ta ir piemÄrota ļoti noslogotu failu rezerves kopiju izveidei serveriem, kÄ arÄ« sistÄmÄm ar nelielu darÄ«jumu skaitu.
Ja jÅ«su MySQL datu bÄzu kopÄjais lielums ir ievÄrojams (desmitiem gigabaitu), tad standarta utilÄ«ta mysqldump neļaus Ätri izveidot rezerves kopiju, un izgÄztuves atjaunoÅ”ana prasÄ«s daudz laika.
UzstÄdīŔana
UzstÄdīŔana XtraBackup no krÄtuves spÄjÄ«gs Perkona.
SecÄ«gi izpildiet Å”Ädas komandas:
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Äc instalÄÅ”anas palaidiet komandu xtrabackup -v. TÄ kÄ ir svarÄ«gi pÄrliecinÄties, vai utilÄ«ta pareizi darbojas serverÄ«. RezultÄtÄ ekrÄnÄ tiks parÄdÄ«ts kaut kas lÄ«dzÄ«gs Å”im:
xtrabackup: atpazÄ«tie servera argumenti: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup versija 2.4.20, kuras pamatÄ ir MySQL serveris 5.7.26 Linux (x8664) (revÄ«zijas ID: c8b4056)

Piekļuves tiesÄ«bas, atļaujas un privilÄÄ£ijas
XtraBackup jÄspÄj:
Izveidojiet savienojumu ar savu MySQL serveri.
Ir piekļuves tiesības direktorijam datu direktorijs.
Veidojot rezerves kopiju, jums ir rakstīŔanas tiesÄ«bas uz norÄdÄ«to parametru mÄrÄ·is-rež katalogu.
Kas ir datadir?
datu direktorijs ir direktorijs, kurÄ atrodas datu bÄzes serveris MySQL glabÄ datus. Visas datubÄzes, visas tabulas atrodas tur. VairumÄ distribÅ«ciju Linux PÄc noklusÄjuma Å”is direktorijs ir /var/lib/mysql.
Kas ir mÄrÄ·a direktorija direktorijs?
mÄrÄ·is-rež - Å is ir direktorijs, kurÄ tiks saglabÄts dublÄjums.
Datu bÄzes lietotÄjam ir nepiecieÅ”amas Å”Ädas piekļuves tiesÄ«bas tabulÄm un datu bÄzÄm, lai tÄs varÄtu dublÄt:
ATKÄRTOTI IELÄDÄJIET un BLOĶÄT TABULU
REPLIKÄCIJAS KLIENTS
IZVEIDOT TABLESPLACE
PROCESS
SUPER
CREATE
INSERT
SELECT
KonfigurÄcija
KonfigurÄcija XtraBackup tiek darÄ«ts, izmantojot opcijas, kas darbojas tÄpat kÄ standarta MySQL opcijas.
Ko tas nozÄ«mÄ?
KonfigurÄcijas parametrus var norÄdÄ«t vai nu komandrindÄ, vai DBVS konfigurÄcijas failÄ, piemÄram, in /etc/my.cnf.
XtraBackup utilÄ«ta nolasa nodalÄ«jumus pÄc palaiÅ”anas [mysqld] Šø [xtrabackup] no MySQL konfigurÄcijas failiem. Tas tiek darÄ«ts, lai utilÄ«ta varÄtu izmantot jÅ«su DBVS iestatÄ«jumus, katras dublÄÅ”anas laikÄ manuÄli nenorÄdot parametrus.
PiemÄram, vÄrtÄ«ba datu direktorijs un daži parametri InnoDB MÄs iegÅ«stam XtraBackup no jÅ«su DBVS konfigurÄcijas.
Ja vÄlaties, lai XtraBackup darbotos, vÄlaties ignorÄt sadaÄ¼Ä norÄdÄ«tos parametrus [mysqld], pÄc tam vienkÄrÅ”i norÄdiet tos konfigurÄcijas failÄ sadaÄ¼Ä [xtrabackup]. TÄ kÄ tie tiks lasÄ«ti vÄlÄk, viÅu prioritÄte bÅ«s augstÄka.
Jums nav jÄpievieno nekÄdi parametri my.cnf. KomandrindÄ var norÄdÄ«t visus nepiecieÅ”amos parametrus. Parasti vienÄ«gais, ko var Ärti ievietot sadaÄ¼Ä [xtrabackup] tavs my.cnf ir parametrs mÄrÄ·a_dir, kas pÄc noklusÄjuma norÄda direktoriju, kurÄ tiks ievietotas dublÄjumkopijas. Bet tas nav obligÄti.
PiemÄrs, kÄ norÄdÄ«t ceļu uz direktoriju ar rezerves kopiju my.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/Rezerves skripts
Lai izveidotu dublÄjumu, varat izmantot Å”Ädu 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/backupKas notiek skripta izpildes laikÄ?
PirmkÄrt, mÄs notÄ«rÄm (izdzÄÅ”am) direktoriju, kurÄ saglabÄsim rezerves kopiju:
rm -rf /mysql/backup.
PÄc tam, izmantojot utilÄ«tu XtraBackup izveidojiet rezerves kopiju un saglabÄjiet to /mysql/backup/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupIepriekÅ” mÄs izveidojÄm lietotÄju MySQL xtrabackup ar nepiecieÅ”amajÄm privilÄÄ£ijÄm. Izmantojot parametru target-dir mÄs norÄdÄm direktoriju, kurÄ jÄsaglabÄ dublÄjums.
Svarīgs punkts!
Å emiet vÄrÄ skripta rindiÅu:
xtrabackup --prepare --target-dir=/mysql/backup
Kataloga dati /mysql/backup nav konsekventi, kamÄr tie nav pagatavoti.
Fakts ir tÄds, ka failu kopÄÅ”anas laikÄ var rasties izmaiÅas. DarbÄ«ba xtrabackup --prepare --target-dir=/mysql/backup padara dublÄjuma datus perfekti konsekventus laika gaitÄ.
JÅ«s varat veikt datu sagatavoÅ”anas darbÄ«bu jebkurÄ maŔīnÄ. Tas nav jÄdara serverÄ«, kurÄ atrodas avota DBVS. Varat kopÄt dublÄjumu uz mÄrÄ·a serveri un sagatavot to tur.
PÄdÄjÄ lieta, ko mÄs darÄm, ir izveidot arhÄ«vu, kurÄ ievietojam dublÄjumu:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-Ā«$(date % F% H% M% S)Ā».gz /mysql/backupDublÄjuma atjaunoÅ”ana
Lai varÄtu atjaunot dublÄjumu mÄrÄ·a serverÄ«, datiem ir jÄiziet sagatavoÅ”anas posms. Skatiet iepriekÅ”, kÄ to izdarÄ«t.
Datu atkopÅ”anas process ir ļoti vienkÄrÅ”s. Jums ir jÄizÅem dublÄjums no arhÄ«va un jÄaizstÄj dati datu direktorijs.
KÄ nomainÄ«t datus datu direktorijÄ?
ApsvÄrsim divus variantus.
iespÄja 1
Izmantojiet utilÄ«tu XtraBackup. Jums jÄnorÄda opcija --kopÄt atpakaļ.
TÄlÄk esoÅ”Ä komanda pÄrsÅ«tÄ«s dublÄjumu uz datu direktorijs mÄrÄ·a serveris:
xtrabackup --copy-back --target-dir=/mysql/backupiespÄja 2
To var izdarÄ«t savÄdÄk, iztikt bez utilÄ«tas XtraBackup.
Viss, kas jums jÄdara, ir kopÄt dublÄjumu uz datu direktorijs. To var izdarÄ«t ar cp vai rsync.
Ir svarÄ«gi saprast, ka dublÄjuma atjaunoÅ”anas procedÅ«ra ir tikai direktorija satura aizstÄÅ”ana datu direktorijs.
Pirms sÄkat atjaunot dublÄjumu mÄrÄ·a serverÄ«, jums ir:
ApturÄt MySQL serveri.
NotÄ«rÄ«t mapi datu direktorijs vai pÄrvietot tÄ saturu uz citu vietu. Katalogs datu direktorijs jÄbÅ«t tukÅ”am.
PÄc datu pÄrsÅ«tīŔanas pabeigÅ”anas uz datu direktorijs MySQL serveri var palaist.
izmantoti materiÄli
.
Avots: www.habr.com
