Percona XtraBackup hot database backups áá»á¬ážá¡ááœáẠá¡áá¯á¶ážáááºááŸá¯áá áºáá¯ááŒá áºáááºá á MySQL.
áá±áá¬á¡áááºáá°ážááŒááºážááᯠáááºáá®ážááá·áºá¡áá«á ááá¬ážáá»á¬ážááᯠáá±á¬á·ááºáá»ááŒááºážáááŸááá«á áááºáá áá áºááẠááá·áºáááºáá»ááºáá»á¬ážáááŸááá² áááºáááºáá¯ááºáá±á¬ááºáá±áá«áááºá
XtraBackup 2.4 ááá¬ážáá»á¬ážá á¡áááºáááá¹áá°áá»á¬ážááᯠáááºáá®ážááá¯ááºáááºá InnoDB, XtraDB О Myisam áá¬áá¬áá»á¬ážáá±á«áºááœáẠMySQL 5.11á 5.5á 5.6 ááŸáá·áº 5.7ááŸáá·áº áá¬áá¬áá±á«áºááœááºáááºáž ááŸááááºá percona á¡ááœáẠá MySQL Ñ XtraDB.
á¡áá°á¡áá¯ááºáá¯ááºááẠMySQL 8.x áá¬ážááŸááºážááᯠá¡áá¯á¶ážááŒá¯ááá·áºáá«áááºá XtraBackup 8.xá á€áá±á¬ááºážáá«ážááœááºáᬠááœá±ážááœá±ážáá«áááºá XtraBackup 2.4 á
á¡áááá¡á¬ážáá¬áá»áẠXtraBackup ဠutility ááẠááŒáá·áºáá¬ážáá±á¬ loaded áá¬áá¬áá»á¬ážá á¡áááºáá°ážááŸá¯áá»á¬ážááᯠáááºáá®ážáááºááŸáá·áº ááœá±áá±ážááœá±áá° á¡áá±á¡ááœááºáááºážáá±á¬ á áá áºáá»á¬ážá¡ááœáẠááŸá áºáá»áá¯ážáá¯á¶ážá¡ááœáẠááá·áºáá»á±á¬áºáá«áááºá
áááºá MySQL áá±áá¬áá±á·á áºáá»á¬ážá á á¯á á¯áá±á«ááºážá¡ááœááºá¡á á¬ážááẠáááá¬áááºááŸá¬ážáá±á¬ (áááºááááºážáá áºáá«ááá¯ááº) ááŒá áºáá«á á á¶á¡áá¯á¶ážááŒá¯ááŸá¯ áááºá¹ááá¬áá« á¡áááºáááá¹áá°áá áºáá¯ááᯠááŒááºááŒááºáááºááẠáááºáá®ážááá¯ááºáááá·áºáááºááá¯ááºáá±á á¡ááŸáá¯ááºáá¯á¶ážááᯠááŒááºáááºááá°ááẠá¡áá»áááºáá»á¬ážá áœá¬ ááŒá¬áá«áááá·áºáááºá
ustanovka
ustanovka XtraBackup repository á០apt Percona
á¡á±á¬ááºáá« command áá»á¬ážááᯠáááºááá¯ááºáá¯ááºáá±á¬ááºáá«á
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-24
2. áááºáááºááŒá®ážáá±á¬áẠcommand ááᯠrun áá«á xtrabackup -v
. á¡áááºááŒá±á¬áá·áºááá¯áá±á¬áºá utility ááá¯áá¬áá¬áá±á«áºááœááºááŸááºáááºá
áœá¬á¡áá¯ááºáá¯ááºááŒá±á¬ááºážáá±áá»á¬á
á±áááºá¡áá±ážááŒá®ážáá«áááºá ááááºá¡áá±ááŒáá·áºá á€áá²á·ááá¯á·áá±á¬á¡áá¬áá
áºáá¯ááᯠá
ááááºáá±á«áºááœáẠááŒááá«áááº-
xtrabackup- á¡ááá¡ááŸááºááŒá¯áá¬ážáá±á¬ áá¬áᬠá¡ááŒá±á¬ááºážááŒáá»ááºáá»á¬áž- - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect â innodbflushlogattrxcommit=0xtrabackup áá¬ážááŸááºáž 2.4.20 ááᯠá¡ááŒá±áá¶á MySQL áá¬áᬠ5.7.26 Linux (x8664) (áááºážááŒááºááŸá¯ ID- c8b4056)
áááá¯ááºááœáá·áºáá»á¬ážá ááœáá·áºááŒá¯áá»ááºáá»á¬ážááŸáá·áº á¡ááœáá·áºá¡áá±ážáá»á¬ážááᯠááá°áá¯á¶ážá áœá²áá«á
XtraBackup áá¯ááºááá¯ááºááááº-
-
áááºá MySQL áá¬áá¬ááá¯á· áá»áááºáááºáá«á
-
áááºážááœáŸááºááá¯á· áááºáá±á¬ááºááœáá·áºááŸááááºá datadir.
-
á¡áááºáááá¹áá°ááᯠáááºáá®ážáá±á¬á¡áá«á áááºááŸááºáá¬ážáá±á¬ ááá·áºáááºáá±á¬ááºááá¯á· áá±ážááá¯ááºááœáá·áºááŸááááºá áá áºááŸááº-áá®áá± áááºááá±á¬ááº
datadir ááá¯áá¬áá¬áá²á
datadir áá±áá¬áá±á·á áºáá¬áá¬ááááºážááœáŸááºáá»ááºááŒá áºáááºá á MySQL áá±áá¬ááá¯ááááºážáááºážáá«á áá±áá¬áá±á·á áºá¡á¬ážáá¯á¶ážá ááá¬ážáá»á¬ážá¡á¬ážáá¯á¶ážááŸááá«áá±ážáááºá Linux ááŒáá·áºáá±ááŸá¯á¡áá»á¬ážá á¯ááœááºá áá°áááºážáááºážááœáŸááºááŸá¬ááŒá áºáááºá /var/lib/mysql.
target-dir directory ááá¯áᬠáá¬áá²á
áá áºááŸááº-áá®áá± - á€áááºááŸá¬ á¡áááºááááºážááŒááºážááᯠááááºážáááºážááá·áº áááºážááœáŸááºááŒá áºáááºá
áá±áá¬áá±á·á áºá¡áá¯á¶ážááŒá¯áá°ááẠá¡áááºááááºážááẠááá¬ážáá»á¬ážááŸáá·áº áá±áá¬áá±á·á áºáá»á¬ážá¡ááœáẠá¡á±á¬ááºáá«áááºáá±á¬ááºááœáá·áºá¡ááœáá·áºá¡áá±ážáá»á¬áž ááá¯á¡ááºáááº-
-
ááá¬ážáá»á¬ážááᯠááŒááºááœáá·áºááŒá®áž áá±á¬á·ááºáá»áá«á
-
áá»áŸá±á¬ááºáá¬ážáá°
-
TableSPACE áááºáá®ážáá«á
-
PROCESS
-
SUPER
-
CREATE
-
ááá·áºááœááºážáá«
-
SELECT
configuration áá»á¬áž
configuration áá»á¬áž XtraBackup áá¯á¶ááŸáẠMySQL ááœá±ážáá»ááºááŸá¯áá»á¬ážáá²á·ááá¯á· ááŒá¯áá°áá±á¬ ááœá±ážáá»ááºááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á áá¯ááºáá±á¬ááºáááºá
áá«áá¬áá¬ááá¯ááá¯ááá¯ááá²
Configuration parameters áá»á¬ážááᯠcommand line ááœááºááŒá áºá á± ááá¯á·ááá¯áẠDBMS configuration file ááœááºááŒá áºá á± á¥ááá¬á¡á¬ážááŒáá·áº áááºááŸááºááá¯ááºáááºá /etc/my.cnf.
XtraBackup utility ááẠá áááºááŒá®ážáá±á¬áẠá¡áááºážááá·áºáá»á¬ážááᯠáááºáááºá [mysqld] О [xtrabackup] MySQL configuration ááá¯ááºáá»á¬ážááŸá á¡áááºáá°ážáá°ááŸá¯áá áºáá¯á á®ááœáẠáá«áá¬áá®áá¬áá»á¬ážááᯠááá¯ááºááá¯ááºáááºááŸááºááẠáááá¯á¡ááºáá² utility ááẠáááºá DBMS á áááºáááºáá»á¬ážááᯠáá¯á¶ážááá¯ááºá á±ááẠáááºážááᯠáá¯ááºáá±á¬ááºáá«áááºá
á¥ááᬠáááºááá¯áž datadir ááŸáá·áº á¡áá»áá¯á·áá±á¬ ááá·áºáááºáá»ááºáá»á¬áž InnoDB áááºá DBMS ááœá²á·á ááºážááŸá¯á áá áºá០XtraBackup ááᯠáá»áœááºá¯ááºááá¯á· áááŸááá«áááºá
XtraBackup á¡áá¯ááºáá¯ááºáááºá¡ááœáẠá¡áááºá áááºááẠá¡ááá¯ááºážááŸá áá±á¬ááºáá»á¬ážááᯠáá»á±á¬áºááœááºááá¯áá«áááºá [mysqld]ááá¯á·áá±á¬áẠáááºážááá¯á·ááᯠá¡ááá¯ááºážááŸá ááœá²á·á ááºážááŸá¯ááá¯ááºááœáẠáááºááŸááºáá±ážáá«á [xtrabackup]. áá±á¬ááºááŸáááºááá±á¬á·ááŸá¬ááá¯á· áá°ááá¯á·áá²á· áŠážá á¬ážáá±ážá ááá¯ááŒáá·áºáá¬áááºá
áááºááá·áº parameters ááŸááá·áºáááºáááá¯á¡ááºáá«á my.cnf. ááá¯á¡ááºáá±á¬ parameter á¡á¬ážáá¯á¶ážááᯠcommand line ááœááºáááºááŸááºááá¯ááºáááºá áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº á¡áááºááŒá±á áœá¬ áá¬ážááŸáááá¯ááºáá±á¬ áá áºáá¯áááºážáá±á¬ á¡áá¬ááŸá¬ á¡ááá¯ááºážááŒá áºáááºá [xtrabackup] áááºá·áá²á· my.cnf ááá·áºáááºáá»ááºáá áºáá¯ááŒá áºáááºá áá áºááŸááº_áá®áá¬ááá¯ááºááœá²áá»á¬ážáá¬ážááŸáááá·áº áááºážááœáŸááºááᯠáá°áááºážá¡á¬ážááŒáá·áº áááºááŸááºáá±ážáá«áááºá áá«áá±ááá·áº áá«á ááœá±ážáá»ááºááœáá·áºáá«á
á¡áááºáááá¹áá°ááŒáá·áº áááºážááœáŸááºááá¯á· áááºážááŒá±á¬ááºážááᯠáááºááŸááºááŒááºáž á¥ááᬠmy.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/
Backup áá¬ááºááœáŸááºáž
á¡áááºáá°ážáá°áááºáá®ážááẠá¡á±á¬ááºáá« script ááᯠáááºá¡áá¯á¶ážááŒá¯ááá¯ááºáááº-
#!/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
áá¬ááºááœáŸááºážáá±ážáá±á ááºá¡ááœááºáž áá¬ááŒá áºááœá¬ážááá²á
ááááŠážá áœá¬á áá»áœááºá¯ááºááá¯á·ááẠá¡áááºáááá¹áá°ááᯠááááºážáááºážááá·áº áááºážááœáŸááºááᯠááŸááºáž (áá»ááº) áááº-
rm -rf /mysql/backup.
ááá¯á·áá±á¬áẠutility ááᯠá¡áá¯á¶ážááŒá¯ XtraBackup á¡áááºáááá¹áá°áá áºáá¯ááᯠáááºáá®ážááŒá®áž ááááºážáááºážáá«á /mysql/backup/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backup
ááááºá áá»áœááºá¯ááºááá¯á·ááẠMySQL ááœáẠá¡áá¯á¶ážááŒá¯áá°áá
áºáŠážááᯠáááºáá®ážáá²á·áááºá xtrabackup
ááá¯á¡ááºáá±á¬á¡ááœáá·áºá¡áá±ážáá»á¬ážááŸáá·áºá¡áá°á parameter ááá¯á¡áá¯á¶ážááŒá¯ááŒááºážá target-dir
á¡áááºááááºážáááºážááá·áºááá·áº áááºážááœáŸááºááᯠáá»áœááºá¯ááºááá¯á· áááºááŸááºáá±ážáá«áááºá
á¡áá±ážááŒá®ážáá±á¬á¡áá»ááº!
áá¬ááºááœáŸááºážááá¯ááºážááᯠááŸááºáá¬ážáá«-
xtrabackup --prepare --target-dir=/mysql/backup
áááºááá±á¬ááºáá±áᬠ/mysql/backup áá»ááºááŒá¯ááºáááºá¡áá áááááºáááºážáááŒá áºáá«á
á¡ááŸááºááŸá¬ ááá¯ááºáá»á¬ážááᯠáá°ážáá°áá¬ááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬áž ááŒá
áºáá±á«áºááá¯ááºáááºá á
á
áºáááºáá±áž xtrabackup --prepare --target-dir=/mysql/backup
á¡áááºáá±áá¬ááᯠá¡áá»áááºááŒá¬áá¬áááºááŸáá·áºá¡áá»áŸ áááááºáááºážááŒá
áºá
á±áááºá
áááºááá·áºá ááºááœááºáááᯠáá±áá¬ááŒááºáááºááŸá¯áá¯ááºáá±á¬ááºááŸá¯ááᯠáááºáá¯ááºáá±á¬ááºááá¯ááºáááºá á¡áááºážá¡ááŒá ẠDBMS áááºááŸááᬠáá¬áá¬ááœáẠáááºážááᯠáá¯ááºáá±á¬ááºááẠáááá¯á¡ááºáá«á á¡áááºáá°ážáá°ááŸá¯ááᯠáá áºááŸááºáá¬áá¬ááá¯á· áá°ážáá°ááŒá®áž áááºážááᯠááá¯áá±áá¬ááœáẠááŒááºáááºááá¯ááºáááºá
áá»áœááºá¯ááºááá¯á·á áá±á¬ááºáá¯á¶ážá¡áá¬ááŸá¬ áá»áœááºá¯ááºááá¯á·á á¡áááºááááºážááŒááºážááᯠáá¬ážááŸáááá·áº áá±á¬áºááœááºážááá¯ááºáá áºáᯠáááºáá®ážááŒááºážááŒá áºáááº-
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backup
á¡áááºááááºážááŒááºážááᯠááŒááºáááºááá°ááŒááºážá
áá áºááŸááºáá¬áá¬ááá¯á· á¡áááºáá°ážáá°ááŒááºážááᯠáááºááŒááºáááºááá¯ááºáá±á¬ááºáá®á áá±áá¬ááẠááŒááºáááºááŸá¯á¡ááá·áºááᯠááŒááºáááºážááááºááŒá áºáááºá áá«ááá¯áá¯ááºáááºážááᯠá¡áá±á«áºáááŒáá·áºáá«á
áá±áá¬áááºáááºáá±ážáá¯ááºáááºážá ááºááẠá¡ááœááºááá¯ážááŸááºážáá«áááºá áááºááẠááŸááºáááºážáá±á¬ááºážá០á¡áááºáá°ážáá°ááŸá¯ááᯠáá¯ááºáá°ááŒá®áž áá±áá¬ááᯠá¡á á¬ážááá¯ážááẠááá¯á¡ááºáááºá datadir.
datadir ááŸá¬ áá±áá¬ááᯠáááºááá¯á¡á á¬ážááá¯ážááá²á
ááœá±ážáá»ááºá áá¬ááŸá áºáá¯ááᯠá ááºážá á¬ážááŒáá·áºáá¡á±á¬ááºá
option ááᯠ1
utility ááá¯áá¯á¶ážáá«á XtraBackup. áááºááœá±ážáá»ááºááŸá¯áá áºáá¯áááºááŸááºáááºááá¯á¡ááºáááºá --copy-back.
á¡á±á¬ááºáá±á¬áºááŒáá« command ááẠá¡áááºááᯠááœáŸá²ááŒá±á¬ááºážáá±ážáááºááŒá áºáááºá datadir áá áºááŸááºáá¬áá¬-
xtrabackup --copy-back --target-dir=/mysql/backup
option ááᯠ2
á¡áá¯á¶ážáááºááŸá¯áááŸááá²áááºáááœá²ááŒá¬ážááŒá¬ážáá¬ážá áœá¬ááŒá¯áá¯ááºááá¯ááºáááºá XtraBackup.
áááºáá¯ááºáááºááá¯á¡ááºáááºááŸá¬ áááá¹áá°áá°ážáááºááŒá áºáááºá datadir. áááºá€á¡áá°áá¯ááºááá¯ááºáá«áááºá cp ááá¯á·ááá¯áẠrsync.
á¡áááºáá°ážáá°ááŒááºážááᯠááŒááºáááºááá°ááŒááºážáá¯ááºáááºážá ááºááẠáááºážááœáŸááºáá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠá¡á á¬ážááá¯ážáá¯á¶ááŒáá·áº ááŒá¯ááºááœá¬ážáááºááᯠáá¬ážáááºááẠá¡áá±ážááŒá®ážáá«áááºá datadir.
áá áºááŸááºáá¬áá¬ááœáẠá¡áááºáá°ážáá°ááŒááºážááᯠáááºá áááºááŒááºážáááŒá¯áá®á áááºáááº-
-
MySQL áá¬áá¬ááᯠáááºáá«á
-
ááá¯ááºááœá²ááᯠááŸááºážáááºážáá«á datadir ááá¯á·ááá¯áẠáááºážáá¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠá¡ááŒá¬ážáá±áá¬ááá¯á· ááœáŸá±á·áá«á áááºááá±á¬áẠdatadir ááá¬ááŒá áºááááºá
ááŒá®ážááœá¬ážááẠdata ááœá±ááᯠááœáŸá²áá±ážááá¯ááºáá«á datadir MySQL server ááá¯á áááºááá¯ááºáá«áááºá
á¡áá¯á¶ážááŒá¯áá±á¬áá á¹á ááºážáá»á¬áž
source: www.habr.com