Nggawe serep MySQL nggunakake utilitas XtraBackup

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 InnoDBXtraDB и 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-24

2. 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)

Nggawe serep MySQL nggunakake utilitas XtraBackup

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/backup

Apa 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/backup

Sadurunge, 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/backup

Mulihake 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/backup

Opsi 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

Dokumentasi resmi percona XtraBackup.

Source: www.habr.com

Tuku hosting sing dipercaya kanggo situs kanthi proteksi DDoS, server VPS VDS 🔥 Tuku hosting situs web sing bisa dipercaya nganggo proteksi DDoS, server VPS VDS | ProHoster