Percona XtraBackup — on andmete kuumvarundamise utiliit MySQL.
Andmete varundamise ajal ei blokeerita tabeleid, teie süsteem töötab jätkuvalt ilma piiranguteta.
XtraBackup 2.4 suudab luua tabeleid varukoopiaid InnoDB, XtraDB ja MyISAM serverites MySQL 5.11, 5.5, 5.6 ja 5.7, samuti serveris integreeris jaoks MySQL jot XtraDB.
Töötamiseks MySQL 8.x tuleb kasutada versiooni XtraBackup 8.x. Selles artiklis käsitletakse ainult XtraBackup 2.4.
Peamine eelis XtraBackup on see, et see utiliit sobib nii kõrge koormusega varukoopiate loomiseks serverid, kui ka süsteemide jaoks, kus tehingute arv on väike.
Kui teie MySQL andmebaaside kokkuvõttes on märkimisväärne (kümned gigabaitid), siis standardne utiliit mysqldump ei võimalda kiiresti varukoopia loomist ja dump'i taastamine võtab palju aega.
Paigaldamine
Paigaldamine XtraBackup repositooriumist apt Percona.
Palun täitke järjestikku järgmised käsud:
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ärast installimist täitke käsk xtrabackup -v. Oluline on veenduda, et utiliit töötab serveris õigesti. Tulemuseks kuvatakse ekraanil midagi sellist:
xtrabackup: recognized server arguments: — 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 based on MySQL server 5.7.26 Linux (x8664) (revision id: c8b4056)

Ligipääs, load, ja õigused
XtraBackup peab olema võimeline:
Ühenduma teie MySQL serveriga.
Omama ligipääsu kausta datadir.
Varukoopia loomise ajal peab olema kirjutamisõigus määratud target-dir kausta.
Mis on datadir?
datadir — see on kaust, kus andmebaasiserver MySQL salvestab andmed. Kõik andmebaasid, kõik tabelid asuvad seal. Enamikus Linuxi distributsioonides on vaikimisi selline kaust /var/lib/mysql.
Mis on target-dir kaust?
target-dir — see on kaust, kuhu varukoopia salvestatakse.
Andmebaasi kasutajal on vajalikud järgmised ligipääsuõigused tabelitele ja andmebaasidele, mida tuleb varundada:
RELOAD ja LOCK TABLES
REPLICATION CLIENT
CREATE TABLESPACE
PROCESS
SUPER
CREATE
INSERT
SELECT
Konfiguratsioon
Konfiguratsioon XtraBackup teostatakse valikute abil, mis käituvad sarnaselt tavaliste MySQL parameetritega.
Mis see tähendab?
Konfiguratsiooniparameetreid saab määrata kas käsureal või andmebaasi konfigureerimisfailis, näiteks /etc/my.cnf.
XtraBackupi tööriist loeb pärast käivitamist osasid [mysqld] ja [xtrabackup] MySQL konfigureerimisfailidest. See toimub, et tööriist saaks kasutada teie andmebaasi seadeid, ilma et peaksite igakord käsitsi parameetreid määrama, kui teete varukoopia.
Näiteks väärtus datadir ja mõned parameetrid InnoDB saame XtraBackupi kohta teie andmebaasi konfiguratsioonist.
Kui soovite XtraBackupi tööks üle kirjutada parameetreid, mis asuvad sektsioonis [mysqld], lihtsalt määrake need konfigureerimisfailis sektsioonis [xtrabackup]. Kuna need loetakse hiljem, on nende prioriteet kõrgem.
Te ei pea lisama mingeid parameetreid my.cnf. Kõiki vajalikke parameetreid võib määrata käsureal. Üldiselt on ainus, mida tasub sektsiooni lisada [xtrabackup] teie my.cnf — see on parameeter target_dir, mis vaikeväärtusena määrab katalooge, kuhu varukoopiad paigutatakse. Kuid see pole kohustuslik.
Näide varukoopia katalooge teed määratlemiseks my.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/Varukoopia loomiseks
Saate kasutada järgmist skripti:
#!/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/backupMis toimub skripti täitmise ajal?
Esmalt puhastame (kustutame) katalooge, kuhu varukoopia salvestame:
rm -rf /mysql/backup.
Seejärel loome tööriista abil XtraBackup varukoopia ja salvestame selle /mysql/backup/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupEelnevalt oleme MySQL-is loonud kasutaja xtrabackup vajalike õigustega. Parameetri abil target-dir määra me kataloog, kuhu varukoopia salvestada.
Oluline punkt!
Pöörake tähelepanu skripti reale:
xtrabackup --prepare --target-dir=/mysql/backup
Kataloogis olevad andmed /mysql/backup pole kooskõlastatud, kuni need on ette valmistatud.
Asjaolu on see, et failide kopeerimise ajal võisid toimuda muutused. Operatsioon xtrabackup --prepare --target-dir=/mysql/backup teeb varukoopia andmed ajaliselt ideaalselt kooskõlastatuks.
Andmete ettevalmistamise operatsiooni saab teostada igas masina. Pole vajalik, et seda teha serveris, kus asub algne andmebaas. Saate varukoopia kopeerida sihtserverisse ja seal see ette valmistada.
Viimane asi, mida me teeme, on arhiivi loomine, kuhu paneme meie varukoopia:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date %F%H%M%S)».gz /mysql/backupVarukoopia taastamine
Enne varukoopia taastamise alustamist sihtserveris peavad andmed läbima ettevalmistusetapi. Kuidas seda teha, vaadake ülal.
Andmete taastamise protsess on väga lihtne. Te peate varukoopia arhiivist välja võtma ja andmed asendama datadir.
Kuidas asendada andmed datadir'is?
Vaatame kahte varianti.
Variant 1
Kasutada utiliiti XtraBackup. Tuleb määrata valik --copy-back.
Allolev käsk toob varukoopia datadir sihtserverisse:
xtrabackup --copy-back --target-dir=/mysql/backupOption 2
Võib ka teisiti toimida, utiliidita hakkama saada XtraBackup.
Kõik, mida vajate, on varukoopia kopeerimine datadir. Seda saate teha cp või rsync.
Oluline on mõista, et varukoopia taastamise protseduur koosneb vaid katalooge sisu asendamisest datadir.
Enne varukoopia taastamise alustamist sihtserveris tuleb:
Peatada MySQL server.
Kustutada kaust datadir või teisaldada selle sisu mujale. Kataloog datadir tohib kindlasti olla tühi.
Pärast andmete ülekandmist datadir saate MySQL serveri käivitada.
Kasutatud materjalid
.
Allikas: habr.com
