Percona XtraBackup iku sarana kanggo serep database panas MySQL.
Nalika nggawe serep data, ora ana tabel sing dikunci, lan sistem sampeyan terus bisa digunakake tanpa watesan.
XtraBackup 2.4 bisa nggawe salinan serep tabel InnoDB, XtraDB и MyISAM ing server MySQL 5.11, 5.5, 5.6 lan 5.7, lan uga ing server percona kanggo MySQL с XtraDB.
Kanggo nggarap MySQL 8.x versi kudu digunakake XtraBackup 8.x. Artikel iki mung bakal ngomong babagan XtraBackup 2.4.
Kauntungan utama XtraBackup yaiku utilitas iki cocok kanggo nggawe salinan serep saka sing dimuat banget server, uga kanggo sistem kanthi jumlah transaksi sing sithik.
Yen ukuran total database MySQL sampeyan signifikan (puluhan gigabyte), banjur utilitas standar myqldump ora bakal ngidini sampeyan nggawe salinan serep kanthi cepet, lan mulihake mbucal bakal entuk akeh wektu.
Instalasi
Instalasi XtraBackup saka gudang cocok Percona.
Jalanake perintah ing ngisor iki kanthi urutan:
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. Sawise instalasi, jalanake printah kasebut xtrabackup -v. Wiwit, penting kanggo mesthekake yen sarana kasebut bisa digunakake kanthi bener ing server. Akibaté, kaya iki bakal ditampilake ing layar:
xtrabackup: argumen server sing dikenali: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup versi 2.4.20 adhedhasar server MySQL 5.7.26 Linux (x8664) (id revisi: c8b4056)

Hak akses, ijin lan hak istimewa
XtraBackup kudu bisa:
Sambungake menyang server MySQL sampeyan.
Nduwe hak akses menyang direktori yaiku data.
Nalika nggawe salinan serep, duwe hak nulis kanggo parameter kasebut target-dir Katalog.
Apa datadir?
yaiku data iku direktori ngendi server database MySQL nyimpen data. Kabeh basis data, kabeh tabel dumunung ing kana. Ing umume distribusi Linux Sacara standar, direktori iki /var/lib/mysql.
Apa direktori target-dir?
target-dir - Iki minangka direktori ing ngendi serep bakal disimpen.
Pangguna basis data mbutuhake hak akses ing ngisor iki menyang tabel lan basis data supaya bisa digawe serep:
RELOAD lan KUNCI TABLES
KLIEN REPLIKASI
Nggawe Tabel SPACE
PROSES
SUPER
Nggawe
INSERT
Pilih
Konfigurasi
Konfigurasi XtraBackup rampung nggunakake opsi sing tumindak padha karo opsi MySQL standar.
Apa tegese iki?
Paramèter konfigurasi bisa ditemtokake ing baris printah utawa ing file konfigurasi DBMS, contone ing /etc/my.cnf.
Utilitas XtraBackup maca partisi sawise diluncurake [mysqld] и [xtrabackup] saka file konfigurasi MySQL. Iki ditindakake supaya sarana bisa nggunakake setelan DBMS sampeyan tanpa kudu nemtokake parameter kanthi manual sajrone saben serep.
Contone, nilai yaiku data lan sawetara paramèter InnoDB Kita entuk XtraBackup saka konfigurasi DBMS sampeyan.
Yen XtraBackup bisa digunakake, sampeyan pengin ngilangi paramèter sing ana ing bagean kasebut [mysqld], banjur mung nemtokake ing file konfigurasi ing bagean [xtrabackup]. Amarga bakal diwaca mengko, prioritase bakal luwih dhuwur.
Sampeyan ora kudu nambah parameter apa wae my.cnf. Kabeh parameter sing dibutuhake bisa ditemtokake ing baris printah. Biasane mung siji sing bisa diselehake ing bagean kasebut [xtrabackup] duweke dhewe my.cnf punika paramèter target_dir, sing kanthi standar nemtokake direktori ing ngendi serep bakal diselehake. Nanging iki opsional.
Conto nemtokake path menyang direktori kanthi salinan serep ing my.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/Skrip serep
Sampeyan bisa nggunakake skrip ing ngisor iki kanggo nggawe serep:
#!/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/backupApa sing kedadeyan sajrone eksekusi skrip?
Kaping pisanan, kita mbusak (mbusak) direktori ing ngendi kita bakal nyimpen salinan serep:
rm -rf /mysql/backup.
Banjur, nggunakake sarana XtraBackup gawe salinan serep lan simpen ing /mysql/cadangan/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backupSadurunge, kita nggawe pangguna ing MySQL xtrabackup kanthi hak istimewa sing dibutuhake. Nggunakake parameter target-dir kita nemtokake direktori ing ngendi serep kudu disimpen.
Titik penting!
Wigati baris skrip:
xtrabackup --prepare --target-dir=/mysql/backup
data Katalog /mysql/serep ora konsisten nganti masak.
Kasunyatane yaiku owah-owahan bisa kedadeyan nalika nyalin file. Operasi xtrabackup --prepare --target-dir=/mysql/backup ndadekake data serep sampurna konsisten liwat wektu.
Sampeyan bisa nindakake operasi nyiapake data ing mesin apa wae. Ora perlu nindakake iki ing server sing ana sumber DBMS. Sampeyan bisa nyalin serep menyang server target lan nyiyapake ing kana.
Babagan pungkasan sing kita lakoni yaiku nggawe arsip kanggo nggawe serep:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backupMulihake serep
Sadurunge sampeyan bisa mulihake serep menyang server target, data kudu ngliwati tahap persiapan. Waca ndhuwur kanggo carane nindakake iki.
Proses Recovery data prasaja banget. Sampeyan kudu extract serep saka arsip lan ngganti data ing yaiku data.
Carane ngganti data ing datadir?
Ayo dipikirake rong pilihan.
Opsi 1
Gunakake sarana XtraBackup. Sampeyan kudu nemtokake pilihan --copy-back.
Printah ing ngisor iki bakal nransfer serep menyang yaiku data server target:
xtrabackup --copy-back --target-dir=/mysql/backupOpsi 2
Sampeyan bisa nindakake kanthi beda, tanpa sarana XtraBackup.
Sampeyan mung kudu nyalin serep menyang yaiku data. Sampeyan bisa nindakake iki karo cp utawa rsync.
Penting kanggo ngerti yen prosedur kanggo mulihake serep bosok mung ngganti isi direktori. yaiku data.
Sadurunge miwiti mulihake serep ing server target, sampeyan kudu:
Mungkasi server MySQL.
Mbusak folder yaiku data utawa mindhah isine menyang panggonan liya. Katalog yaiku data kudu kosong.
Sawise rampung transfer data menyang yaiku data Server MySQL bisa diwiwiti.
Bahan sing digunakake
.
Source: www.habr.com
