MySQL varukoopia loomine XtraBackup utiliidi abil

Percona XtraBackup — on andmete kuumvarundamise utiliit MySQL.

Andmete varundamise ajal ei blokeerita tabeleid, teie süsteem töötab jätkuvalt ilma piiranguteta.

XtraBackup 2.4 suudab luua tabeleid varukoopiaid InnoDBXtraDB ja MyISAM serverites MySQL 5.11, 5.5, 5.6 ja 5.7, samuti serveris integreeris jaoks MySQL jot XtraDB.

Töötamiseks MySQL 8.x tuleb kasutada versiooni XtraBackup 8.x. Selles artiklis käsitletakse ainult XtraBackup 2.4.

Peamine eelis XtraBackup on see, et see utiliit sobib nii kõrge koormusega varukoopiate loomiseks serverid, kui ka süsteemide jaoks, kus tehingute arv on väike.

Kui teie MySQL andmebaaside kokkuvõttes on märkimisväärne (kümned gigabaitid), siis standardne utiliit mysqldump ei võimalda kiiresti varukoopia loomist ja dump'i taastamine võtab palju aega.

Paigaldamine

Paigaldamine XtraBackup repositooriumist apt Percona.

Palun täitke järjestikku järgmised käsud:

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 installimist täitke käsk xtrabackup -v. Oluline on veenduda, et utiliit töötab serveris õigesti. Tulemuseks kuvatakse ekraanil midagi sellist:

xtrabackup: recognized server arguments: — datadir=/var/lib/mysql — tmpdir=/tmp — server-id=1 — logbin=/var/log/mysql/mysql-bin.log — innodbbufferpoolsize=16384M — innodbfilepertable=1 — innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup version 2.4.20 based on MySQL server 5.7.26 Linux (x8664) (revision id: c8b4056)

MySQL varukoopia loomine XtraBackup utiliidi abil

Ligipääs, load, ja õigused 

XtraBackup peab olema võimeline:

  • Ühenduma teie MySQL serveriga.

  • Omama ligipääsu kausta datadir

  • Varukoopia loomise ajal peab olema kirjutamisõigus määratud target-dir kausta.

Mis on datadir?

datadir — see on kaust, kus andmebaasiserver MySQL salvestab andmed. Kõik andmebaasid, kõik tabelid asuvad seal. Enamikus Linuxi distributsioonides on vaikimisi selline kaust /var/lib/mysql.

Mis on target-dir kaust?

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

Andmebaasi kasutajal on vajalikud järgmised ligipääsuõigused tabelitele ja andmebaasidele, mida tuleb varundada:

  • RELOAD ja LOCK TABLES

  • REPLICATION CLIENT

  • CREATE TABLESPACE

  • PROCESS

  • SUPER

  • CREATE

  • INSERT

  • SELECT

Konfiguratsioon 

Konfiguratsioon XtraBackup teostatakse valikute abil, mis käituvad sarnaselt tavaliste MySQL parameetritega.

Mis see tähendab?

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

XtraBackupi tööriist loeb pärast käivitamist osasid [mysqld] ja [xtrabackup] MySQL konfigureerimisfailidest. See toimub, et tööriist saaks kasutada teie andmebaasi seadeid, ilma et peaksite igakord käsitsi parameetreid määrama, kui teete varukoopia.

Näiteks väärtus datadir ja mõned parameetrid InnoDB saame XtraBackupi kohta teie andmebaasi konfiguratsioonist.

Kui soovite XtraBackupi tööks üle kirjutada parameetreid, mis asuvad sektsioonis [mysqld], lihtsalt määrake need konfigureerimisfailis sektsioonis [xtrabackup]. Kuna need loetakse hiljem, on nende prioriteet kõrgem.

Te ei pea lisama mingeid parameetreid my.cnf. Kõiki vajalikke parameetreid võib määrata käsureal. Üldiselt on ainus, mida tasub sektsiooni lisada [xtrabackup] teie my.cnf — see on parameeter target_dir, mis vaikeväärtusena määrab katalooge, kuhu varukoopiad paigutatakse. Kuid see pole kohustuslik.

Näide varukoopia katalooge teed määratlemiseks my.cnf:

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

Varukoopia loomiseks

Saate 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 täitmise ajal?

Esmalt puhastame (kustutame) katalooge, kuhu varukoopia salvestame:

rm -rf /mysql/backup.

Seejärel loome tööriista abil XtraBackup 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 määra me kataloog, kuhu varukoopia salvestada.

Oluline punkt!

Pöörake tähelepanu skripti reale:

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

Kataloogis olevad andmed /mysql/backup pole kooskõlastatud, kuni need on ette valmistatud. 

Asjaolu on see, et failide kopeerimise ajal võisid toimuda muutused. Operatsioon xtrabackup --prepare --target-dir=/mysql/backup teeb varukoopia andmed ajaliselt ideaalselt kooskõlastatuks.

Andmete ettevalmistamise operatsiooni saab teostada igas masina. Pole vajalik, et seda teha serveris, kus asub algne andmebaas. Saate varukoopia kopeerida sihtserverisse ja seal see ette valmistada.

Viimane asi, mida me teeme, on arhiivi 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 taastamise alustamist sihtserveris peavad andmed läbima ettevalmistusetapi. Kuidas seda teha, vaadake ülal.

Andmete taastamise protsess on väga lihtne. Te peate varukoopia arhiivist välja võtma ja andmed asendama datadir.

Kuidas asendada andmed datadir'is?

Vaatame kahte varianti.

Variant 1

Kasutada utiliiti XtraBackup. Tuleb määrata valik --copy-back

Allolev käsk toob varukoopia datadir sihtserverisse:

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

Option 2

Võib ka teisiti toimida, utiliidita hakkama saada XtraBackup.

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

Oluline on mõista, et varukoopia taastamise protseduur koosneb vaid katalooge sisu asendamisest datadir.

Enne varukoopia taastamise alustamist sihtserveris tuleb:

  • Peatada MySQL server.

  • Kustutada kaust datadir või teisaldada selle sisu mujale. Kataloog datadir tohib kindlasti olla tühi.

Pärast andmete ülekandmist datadir saate MySQL serveri käivitada.

Kasutatud materjalid

Ametlik dokumentatsioon integreeris XtraBackup.

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster