Percona XtraBackup është një utilitar për kopjimin e nxehtë të bazave të të dhënave MySQL.
Gjatë krijimit të kopjes rezervë të të dhënave, nuk ndodh bllokimi i tabelave, sistemi juaj vazhdon të punojë pa asnjë kufizim.
XtraBackup 2.4 mund të krijojë kopje rezervë të tabelave InnoDB, XtraDB dhe MyISAM në servera MySQL 5.11, 5.5, 5.6 dhe 5.7, si dhe në serverin Percona për MySQL me XtraDB.
Për të punuar me MySQL 8.x duhet të përdoret versioni XtraBackup 8.x. Në këtë artikull do të flasim vetëm për XtraBackup 2.4.
Avantazhi kryesor XtraBackup ka avantazhin se ky utilitar është i përshtatshëm si për krijimin e kopjeve rezervë të ngarkesave të larta serverësh, ashtu edhe për sistemet me numër të ulët transaksionesh.
Nëse dimensioni total i bazave tuaja të të dhënave MySQL është i konsiderueshëm (dhjetëra gigabajt), atëherë utilitari standard mysqldump nuk do t'ju lejojë të krijoni shpejt një kopje rezervë, dhe rikuperimi i dump-it do t'ju kërkojë shumë kohë.
Instalimi
Instalimi XtraBackup nga repozitori apt Percona.
Shkoni radhazi nëpër komandat e mëposhtme:
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. Pas instalimit, ekzekutoni komandĂ«n xtrabackup -v. ĂshtĂ« e rĂ«ndĂ«sishme tĂ« siguroheni qĂ« utilitari punon siç duhet nĂ« server. Si rezultat, do tĂ« shfaqet diçka si:
xtrabackup: argumente tĂ« njohura tĂ« serverit: â datadir=/var/lib/mysql â tmpdir=/tmp â server-id=1 â logbin=/var/log/mysql/mysql-bin.log â innodbbufferpoolsize=16384M â innodbfilepertable=1 â innodbflushmethod=Odirect â innodbflushlogattrxcommit=0xtrabackup version 2.4.20 bazuar nĂ« MySQL server 5.7.26 Linux (x8664) (revision id: c8b4056)

TĂ« drejtat e aksesit, lejet dhe privilegjetÂ
XtraBackup duhet të ketë mundësinë të:
Lidhet me serverin tuaj MySQL.
TĂ« ketĂ« tĂ« drejtat e aksesit nĂ« katalogun datadir.Â
Gjatë krijimit të kopjes rezervë, të ketë të drejtat për të shkruar në katalogun e caktuar përmes parametrave target-dir katalogu.
ĂfarĂ« Ă«shtĂ« katalogu datadir?
datadir â Ă«shtĂ« katalogu ku serveri i bazave tĂ« tĂ« dhĂ«nave MySQL ruan tĂ« dhĂ«nat. TĂ« gjitha bazat e tĂ« dhĂ«nave, tĂ« gjitha tabelat janĂ« atje. NĂ« shumicĂ«n e distribuimeve tĂ« Linux, katalogu i tillĂ« Ă«shtĂ« me tĂ« drejtë /var/lib/mysql.
ĂfarĂ« Ă«shtĂ« katalogu target-dir?
target-dir â Ă«shtĂ« katalogu ku do tĂ« ruhet kopja rezervĂ«.
Përdoruesit e bazës së të dhënave i nevojiten të drejtë akses në tabelat dhe bazat e të dhënave që duhet të sillen për kopjim:
RELOAD dhe LOCK TABLES
REPLICATION CLIENT
CREAT TABLESPACE
PROCESS
SUPER
CREATE
SHTO
SELECT
KonfigurimiÂ
Konfigurimi XtraBackup realizohet me opsionet që sillen ashtu si parametrat standardë të MySQL.
ĂfarĂ« do tĂ« thotĂ« kjo?
Parametrat e konfigurimit mund të tregohen ose në linjën e komandës ose në skedarin e konfigurimit të DBMS, për shembull në /etc/my.cnf.
Utilita XtraBackup, pasi fillon, lexon seksionet [mysqld] dhe [xtrabackup] nga skedarët e konfigurimit të MySQL. Kjo bëhet në mënyrë që utilita të mund të përdorë cilësimet e DBMS-së suaj pa pasur nevojë të tregoni parametrat manualisht gjatë çdo kopjimi rezervë.
Për shembull, vlera datadir dhe disa parametra InnoDB XtraBackup i marrim nga konfigurimi i DBMS-së suaj.
Nëse dëshironi të tejkaloni parametrat për punën e XtraBackup, që janë në seksionin [mysqld], thjesht tregoni ata në skedarin e konfigurimit në seksionin [xtrabackup]. Duke qenë se ata do të lexohen më vonë, prioriteti i tyre do të jetë më i lartë.
Nuk keni nevojĂ« tĂ« shtoni ndonjĂ« parameter nĂ« my.cnf. TĂ« gjitha parametrat e kĂ«rkuar lejohet tĂ« tregohen nĂ« linjĂ«n e komandĂ«s. Normalisht, e vetmja gjĂ« qĂ« mund tĂ« jetĂ« e dobishme tĂ« vendoset nĂ« seksionin [xtrabackup] të my.cnf â Ă«shtĂ« parametri target_dir, i cili nĂ« mĂ«nyrĂ« default pĂ«rcakton katalogun nĂ« tĂ« cilin do tĂ« vendosen kopjet rezervĂ«. Por kjo Ă«shtĂ« e pafund.
Shembull i caktimit të rrugës në katalogun e kopjes rezervë në my.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/Skenari i krijimit të kopjes rezervë
Për të krijuar një kopje rezervë, mund të përdorni skenarin e mëposhtëm:
#!/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ĂfarĂ« ndodh gjatĂ« ekzekutimit tĂ« skenarit?
Së pari, ne pastruar (fshijmë) katalogun, në të cilin do të ruajmë kopjen rezervë:
rm -rf /mysql/backup.
Pastaj, duke përdorur utilitarin XtraBackup krijojmë kopjen rezervë dhe e ruajmë atë në /mysql/backup/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupMë parë në MySQL kemi krijuar përdoruesin xtrabackup me privilegjet e nevojshme. Duke përdorur parametrin target-dir tregojmë katalogun në të cilin duhet të ruhet kopja rezervë.
Momenti i rëndësishëm!
Kujdes, rreshti i skenarit:
xtrabackup --prepare --target-dir=/mysql/backup
TĂ« dhĂ«nat nĂ« katalogun /mysql/backup nuk janĂ« konsistente deri sa tĂ« pĂ«rgatiten.Â
Fakti është se gjatë kopjimit të skedareve mund të ndodhin ndryshime. Operacioni xtrabackup --prepare --target-dir=/mysql/backup bën që të dhënat e kopjes rezervë të jenë perfekt të sinkronizuara në kohë.
Ekzekutimi i operacionit të përgatitjes së të dhënave mund të bëhet në çdo makinë. Nuk është e nevojshme ta bëni këtë në serverin ku ndodhet DBMS origjinal. Ju mund të kopjoni kopjen rezervë në serverin e synuar dhe ta përgatisni atje.
E fundit që bëjmë është të krijojmë një arkiv në të cilin vendosim kopjen tonë rezervë:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date %F%H%M%S)».gz /mysql/backupRikuperimi i rezervĂ«sÂ
Para se të filloni rikuperimin e rezervës në serverin e synuar, të dhënat duhet të kalojnë në fazën e përgatitjes. Si ta bëni këtë shihni më sipër.
Procesi i rikuperimit të të dhënave është shumë i thjeshtë. Ju nevojitet të nxirrni rezervën nga arkivi dhe të zëvendësoni të dhënat në datadir.
Si të zëvendësoni të dhënat në datadir?
Le të shqyrtojmë dy opcione.
Varianti 1
PĂ«rdorni utilitarin XtraBackup. Duhet tĂ« specifikoni opsionin --copy-back.Â
Komanda më poshtë do të transferojë rezervën në datadir serverin e synuar:
xtrabackup --copy-back --target-dir=/mysql/backupVarianti 2
Mund të veproni ndryshe, pa përdorur utilitarin XtraBackup.
E gjithë ajo që ju nevojitet është të kopjoni rezervën në datadir. Ju mund ta bëni këtë me anë të cp ose rsync.
ĂshtĂ« e rĂ«ndĂ«sishme tĂ« kuptoni se procedura e rikuperimit tĂ« rezervĂ«s pĂ«rbĂ«het vetĂ«m nga zĂ«vendĂ«simi i pĂ«rmbajtjes sĂ« katalogut datadir.
Para se të filloni rikuperimin e rezervës në serverin e synuar duhet të:
Ndërprisni serverin MySQL.
Pastroni dosjen datadir ose transferoni përmbajtjen e saj në një vend tjetër. Katalogu datadir duhet të jetë patjetër i zbrazët.
Pas përfundimit të transferimit të të dhënave në datadir serverin MySQL mund të niset.
Materialet e përdorura
.
Burimi: habr.com
