Percona XtraBackup se yon sèvis piblik pou sovgad baz done cho Miskl.
Lè w ap kreye yon backup done, pa gen okenn tab fèmen, epi sistèm ou a ap kontinye opere san okenn restriksyon.
XtraBackup 2.4 ka kreye kopi backup tab yo InnoDB, XtraDB и MyISAM sou serveurs MySQL 5.11, 5.5, 5.6 ak 5.7, epi tou sou sèvè a Pèkona pou Miskl с XtraDB.
Pou travay avèk MySQL 8.x vèsyon yo ta dwe itilize XtraBackup 8.x. Atik sa a pral sèlman pale sou XtraBackup 2.4.
Avantaj prensipal la XtraBackup se ke sèvis piblik sa a apwopriye pou kreye kopi backup nan bagay ki chaje anpil sèvè yo, osi byen ke pou sistèm ki gen yon ti kantite tranzaksyon.
Si gwosè total baz done MySQL ou yo enpòtan (dè dizèn jigokte), Lè sa a, sèvis piblik estanda a mysqldump pa pral pèmèt ou byen vit kreye yon kopi backup, ak restore pil fatra a pral pran anpil tan.
Enstalasyon
Enstalasyon XtraBackup soti nan depo a nimewo apatman Pèkona.
Kouri kòmandman sa yo an sekans:
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. Apre enstalasyon, kouri lòd la xtrabackup -v. Depi, li enpòtan pou asire w ke sèvis piblik la ap travay kòrèkteman sou sèvè a. Kòm yon rezilta, yon bagay tankou sa a pral parèt sou ekran an:
xtrabackup: agiman sèvè rekonèt: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup vèsyon 2.4.20 ki baze sou sèvè MySQL 5.7.26 Linux (x8664) (id revizyon: c8b4056)

Aksè dwa, otorizasyon ak privilèj
XtraBackup ta dwe kapab:
Konekte ak sèvè MySQL ou a.
Gen dwa aksè nan anyè a datadir.
Lè w ap kreye yon kopi backup, gen dwa ekri sou paramèt espesifye a target-dir katalòg.
Ki sa ki datadir?
datadir se anyè kote sèvè baz done a Miskl estoke done yo. Tout baz done yo, tout tablo yo sitiye la. Nan pifò distribisyon yo Linux Pa default, anyè sa a se /var/lib/mysql.
Ki sa ki anyè target-dir?
target-dir - Sa a se anyè kote yo pral sove backup la.
Itilizatè baz done a bezwen dwa aksè sa yo nan tab yo ak baz done yo dwe fè bak:
RECHARGE ak BLOKE TAB yo
REPLIKASYON KLIYAN
KREYE TABLESPACE
PWOSÈ
SUPER
KREYE
INSERT
Chwazi
Konfigirasyon
Konfigirasyon XtraBackup fè lè l sèvi avèk opsyon ki konpòte menm jan ak opsyon estanda MySQL.
Kisa sa vle di?
Paramèt konfigirasyon yo ka espesifye swa sou liy lòd la oswa nan dosye a konfigirasyon DBMS, pou egzanp nan /etc/my.cnf.
XtraBackup sèvis piblik li patisyon apre lansman [mysqld] и [xtrabackup] soti nan dosye konfigirasyon MySQL. Sa a se fè pou sèvis piblik la ka itilize anviwònman yo nan DBMS ou san yo pa bezwen presize paramèt yo manyèlman pandan chak backup.
Pou egzanp, valè a datadir ak kèk paramèt InnoDB Nou jwenn XtraBackup nan konfigirasyon DBMS ou a.
Si pou XtraBackup travay ou vle pase sou plas paramèt ki nan seksyon an [mysqld], Lè sa a, jis presize yo nan fichye a konfigirasyon nan seksyon an [xtrabackup]. Piske yo pral li pita, priyorite yo pral pi wo.
Ou pa bezwen ajoute okenn paramèt my.cnf. Tout paramèt obligatwa yo ka espesifye sou liy lòd la. Anjeneral bagay la sèlman ki ka fasilman mete nan seksyon an [xtrabackup] ou li my.cnf se yon paramèt target_dir, ki pa default presize anyè a kote sovgad yo pral mete. Men, sa a se opsyonèl.
Yon egzanp ki espesifye chemen an nan anyè a ak yon kopi backup nan my.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/Script sovgad
Ou ka itilize script sa a pou kreye yon backup:
#!/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/backupKisa k ap pase pandan ekzekisyon script?
Premye a tout, nou klè (efase) anyè a nan ki nou pral sove kopi backup la:
rm -rf /mysql/backup.
Lè sa a, sèvi ak sèvis piblik la XtraBackup kreye yon kopi backup epi sove li nan /mysql/sovgad/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupPrécédemment, nou te kreye yon itilizatè nan MySQL xtrabackup ak privilèj yo mande yo. Sèvi ak paramèt la target-dir nou presize anyè kote backup la ta dwe sove.
Yon pwen enpòtan!
Remake liy script la:
xtrabackup --prepare --target-dir=/mysql/backup
Katalòg done /mysql/backup yo pa konsistan jiskaske yo kwit.
Reyalite a se ke chanjman ka rive pandan w ap kopye dosye yo. Operasyon xtrabackup --prepare --target-dir=/mysql/backup fè done backup parfe konsistan sou tan.
Ou ka fè operasyon an preparasyon done sou nenpòt machin. Pa gen okenn nesesite pou fè sa sou sèvè kote DBMS sous la ye. Ou ka kopye backup la nan sèvè a sib epi prepare li la.
Dènye bagay nou fè se kreye yon achiv kote nou mete backup nou an:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backupRestore yon backup
Anvan ou ka retabli yon backup nan sèvè a sib, done yo dwe ale nan yon faz preparasyon. Gade pi wo a pou kijan pou fè sa.
Pwosesis rekiperasyon done trè senp. Ou bezwen ekstrè backup la nan achiv la epi ranplase done yo nan datadir.
Ki jan yo ranplase done nan datadir?
Ann konsidere de opsyon.
Opsyon 1
Sèvi ak sèvis piblik la XtraBackup. Ou bezwen presize yon opsyon --kopi-tounen.
Kòmand ki anba a pral transfere backup la nan datadir sèvè sib:
xtrabackup --copy-back --target-dir=/mysql/backupOpsyon 2
Ou ka fè li yon fason diferan, fè san sèvis piblik la XtraBackup.
Tout sa ou bezwen fè se kopye backup la datadir. Ou ka fè sa ak cp oswa rsync.
Li enpòtan pou w konprann ke pwosedi a pou restore yon backup se jis ranplase sa ki nan anyè a. datadir.
Anvan ou kòmanse restore yon backup sou sèvè sib la, ou dwe:
Sispann sèvè MySQL.
Klè katab datadir oswa deplase sa ki ladan l nan yon lòt kote. Katalòg datadir dwe vid.
Apre w fin ranpli transfè done a datadir Sèvè MySQL ka kòmanse.
Materyèl yo itilize
.
Sous: www.habr.com
