MySQL varundamine XtraBackup utiliidi abil

Percona XtraBackup — on utiliit andmete kuumaks varukoopiate tegemiseks MySQL.

Andmete varundamise ajal ei toimu tabelite lukustamist, teie süsteem töötab jätkuvalt ilma piiranguteta.

XtraBackup 2.4 suudab luua tabelite varukoopiaid InnoDBXtraDB ja MyISAM serverites MySQL 5.11, 5.5, 5.6 ja 5.7, samuti serveris Percona kuna MySQL koos XtraDB.

Kasutamiseks MySQL 8.x tuleb kasutada versiooni XtraBackup 8.x. Selles artiklis käsitleme ainult XtraBackup 2.4.

Peamine eelis XtraBackup on see, et see utiliit sobib nii kõrgelt koormatud varukoopiate tegemiseks serverite, kui ka madala tehingute arvuga süsteemide jaoks.

Kui teie MySQL andmebaaside kogumaht on märkimisväärne (kümned gigabaitid), siis standardne utiliit mysqldump ei võimalda kiiresti varukoopiaid teha ja dumpi taastamine nõuab palju aega.

Installeerimine

Installeerimine XtraBackup hoidlast apt Percona.

Tehke järjestikku järgmised komandod:

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. Pärast paigaldamist käivitage käsk xtrabackup -v. On oluline veenduda, et utiliit töötab serveris korrektselt. Ekraanil kuvatakse midagi sellist:

xtrabackup: tuvastatud serveri argumendid: — datadir=/var/lib/mysql — tmpdir=/tmp — server-id=1 — logbin=/var/log/mysql/mysql-bin.log — innodb_buffer_pool_size=16384M — innodb_file_per_table=1 — innodb_flush_method=Odirect — innodb_flush_log_at_xcommit=0 xtrabackup versioon 2.4.20, mis põhineb MySQL serveril 5.7.26 Linux (x86_64) (revision id: c8b4056)

MySQL varundamine XtraBackup utiliidi abil

Kasutusõigused, õigused ja privileegid 

XtraBackup peab olema võimeline:

  • Ühenduma teie MySQL serveriga.

  • Omama juurdepääsu kataloogile datadir

  • Varukoopia loomise ajal olema kirjutamisõigused, mis on määratud parameetriga target-dir kataloog.

Mis on datadir?

datadir — see on kataloog, kus andmebaasi server MySQL salvestab andmeid. Kõik andmebaasid ja tabelid asuvad seal. Enamikus Linuxi distributsioonides on vaikimisi see kataloog /var/lib/mysql.

Mis on target-dir kataloog?

target-dir — see on kataloog, kuhu varukoopia salvestatakse.

Andmebaasi kasutajal on vajalikud järgmised juurdepääsuõigused varukoopia tegemiseks tabelitele ja andmebaasidele:

  • RELOAD ja LOCK TABLES

  • REPLICATION CLIENT

  • CREATE TABLESPACE

  • PROCESS

  • SUPER

  • CREATE

  • INSERT

  • SELECT

Konfiguratsioon 

Konfiguratsioon XtraBackup teostatakse valikute kaudu, mis käituvad nagu standardseid MySQL parameetreid.

Mida see tähendab?

Konfiguratsiooniparameetreid saab määrata kas käsureal või andmebaasi konfiguratsioonifailis, näiteks /etc/my.cnf.

Käivitatud utiliit XtraBackup loeb jaotuseid [mysqld] ja [xtrabackup] MySQL konfiguratsioonifailidest. See on vajalik, et utiliit saaks kasutada teie andmebaasi seadeid ilma, et peaksite iga varundamise ajal parameetreid käsitsi määrama.

Näiteks väärtus datadir ja mõned parameetrid InnoDB XtraBackup saame teie andmebaasi konfigureerimisest.

Kui soovite määrata XtraBackupi tööks parameetreid, mis asuvad sektsioonis [mysqld], siis lihtsalt määrake need konfiguratsioonifailis sektsioonis [xtrabackup]. Kuna neid loetakse hiljem, on nende prioriteet kõrgem.

Te ei pruugi lisada ühtegi parameetrit my.cnf. Kõiki vajalikke parameetreid on lubatud määrata käsureal. Tavaline asi, mida võib olla mugav paigutada sektsioonis [xtrabackup] teie my.cnf — see on parameeter target_dir, mis vaikimisi määrab katalooge, kuhu varukopeerimised paigutatakse. Aga see ei ole kohustuslik.

Näide varukoopia kataloogi tee määramisest my.cnf:

[xtrabackup]
target_dir = /data/backups/mysql/

Varukoopia loomise skript

Varukoopia loomiseks võib 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/backup

Mis toimub skripti käivitamise ajal?

Esmalt puhastame (kustutame) katalooge, kuhu varukoopia salvestame:

rm -rf /mysql/backup.

Seejärel, kasutades utiliiti XtraBackup loomme varukoopia ja salvestame selle /mysql/backup/:

xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backup

Eelnevalt oleme MySQL-is loonud kasutaja xtrabackup vajalike õigustega. Parameetri abil target-dir näitame katalooge, kuhu varukoopia salvestada.

Oluline punkt!

Pange tähele skripti rida:

xtrabackup --prepare --target-dir=/mysql/backup

Andmed kataloogis /mysql/backup ei ole konsistentsed, kuni need on ette valmistatud. 

Asi on selles, et failide kopeerimise ajal võivad toimuda muudatused. Operatsioon xtrabackup --prepare --target-dir=/mysql/backup teeb varukoopia andmed ajaliselt ideaalselt kooskõlaliseks.

Andmete ettevalmistamise operatsiooni saab teostada mistahes masinal. Pole vajalik seda teha serveris, kus asub algne andmebaas. Võite varukoopia kopeerida sihtserverisse ja valmistada selle seal ette.

Viimane asi, mida me teeme, on arhivi loomine, kuhu paneme meie varukoopia:

tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date +%F_%H_%M_%S)».gz /mysql/backup

Varukoopia taastamine 

Enne varukoopia taastamist sihtserveris peavad andmed läbima ettevalmistusetapi. Kuidas seda teha, vaadake ülal.

Andmete taastamisprotsess on väga lihtne. Peate varukoopia arhivist välja voolima ja asendama andmed datadir.

Kuidas andmeid datadir'is asendada?

Vaadakem kahte võimalust.

Valik 1

Kasutage utiliiti XtraBackup. Peate määrama valiku --copy-back

Allolev käsk edastab varukoopia datadir sihtserverisse:

xtrabackup --copy-back --target-dir=/mysql/backup

Variant 2

Võite toimida ka teisiti, ilma utiliiti kasutamata. XtraBackup.

Kõik, mida vajate, on varukoopia kopeerimine datadir. Saate seda teha cp või rsync.

Oluline on mõista, et varukoopia taastamise protseduur seisneb ainult katalooge sisu asendamises. datadir.

Enne varukoopia taastamise alustamist sihtserveris on vajalik:

  • Peatada MySQL server.

  • Puhastada kaust datadir või viia selle sisu teise kohta. Kataloog datadir peab kindlasti olema tühi.

Andmete migreerimise lõppedes on datadir MySQL serveri käivitamine võimalik.

Kasutatud materjalid

Ametlik dokumentatsioon Percona XtraBackup.

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster