MySQL atsarginės kopijos kūrimas naudojant XtraBackup įrankį

Percona XtraBackup yra karštų duomenų bazių atsarginių kopijų kūrimo įrankis MySQL.

Kuriant atsarginę duomenų kopiją, jokios lentelės nėra užrakinamos, o jūsų sistema toliau veikia be jokių apribojimų.

XtraBackup 2.4 gali sukurti atsargines lentelių kopijas InnoDB„XtraDB“ и „MyISAM“ serveriuose MySQL 5.11, 5.5, 5.6 ir 5.7, taip pat serveryje perkona už MySQL с „XtraDB“.

Dirbti su „MySQL 8.x“ versija turėtų būti naudojama XtraBackup 8.x. Šiame straipsnyje bus kalbama tik apie XtraBackup 2.4.

Pagrindinis privalumas XtraBackup Šis įrankis tinka tiek labai apkrautų serverių atsarginėms kopijoms kurti, tiek sistemoms su mažu operacijų skaičiumi.

Jei bendras jūsų MySQL duomenų bazių dydis yra didelis (dešimtys gigabaitų), tada standartinė programa mysqldump neleis greitai sukurti atsarginės kopijos, o iškeltos atkūrimas užtruks daug laiko.

Montavimas

Montavimas XtraBackup iš saugyklos linkęs Percona.

Iš eilės vykdykite šias komandas:

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. Įdiegę paleiskite komandą xtrabackup -v. Todėl svarbu įsitikinti, kad įrankis tinkamai veikia serveryje. Dėl to ekrane bus rodomas kažkas panašaus į tai:

xtrabackup: atpažinti serverio argumentai: - datadir=/var/lib/mysql - tmpdir=/tmp - serverio ID=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect – innodbflushlogattrxcommit=0xtrabackup versija 2.4.20, pagrįsta MySQL serverio 5.7.26 Linux (x8664) (revizijos ID: c8b4056)

MySQL atsarginės kopijos kūrimas naudojant XtraBackup įrankį

Prieigos teisės, leidimai ir privilegijos 

„XtraBackup“ turėtų turėti galimybę:

  • Prisijunkite prie savo MySQL serverio.

  • Turite prieigos prie katalogo teises duomenų vad

  • Kurdami atsarginę kopiją, turėkite rašymo teises į nurodytą parametrą taikinys-rež katalogą.

Kas yra datadir?

duomenų vad yra katalogas, kuriame yra duomenų bazės serveris MySQL saugo duomenis. Yra visos duomenų bazės, visos lentelės. Daugumoje Linux platinimų numatytasis katalogas yra / var / lib / mysql.

Kas yra tikslinio katalogo katalogas?

taikinys-rež - Tai katalogas, kuriame bus išsaugota atsarginė kopija.

Duomenų bazės vartotojas turi turėti šias prieigos teises prie lentelių ir duomenų bazių, kad būtų sukurtos atsarginės kopijos:

  • PERKRAUTI ir UŽRAKINTI LENTELES

  • REPLIKACIJOS KLIENTAS

  • KURTI STALO VIETĄ

  • PROCESAS

  • SUPER

  • CREATE

  • ĮRAŠYTI

  • SELECT

Konfigūravimas 

Konfigūravimas XtraBackup atliekama naudojant parinktis, kurios veikia taip pat, kaip ir standartinės MySQL parinktys.

Ką tai reiškia?

Konfigūracijos parametrus galima nurodyti komandinėje eilutėje arba DBVS konfigūracijos faile, pvz /etc/my.cnf.

„XtraBackup“ programa nuskaito skaidinius po paleidimo [mysqld] и [xtrabackup] iš MySQL konfigūracijos failų. Tai daroma tam, kad paslaugų programa galėtų naudoti jūsų DBVS nustatymus, nereikėtų rankiniu būdu nurodyti parametrų kiekvienos atsarginės kopijos metu.

Pavyzdžiui, vertė duomenų vad ir kai kurie parametrai InnoDB XtraBackup gauname iš jūsų DBVS konfigūracijos.

Jei norite, kad XtraBackup veiktų, norite nepaisyti parametrų, kurie yra skyriuje [mysqld], tada tiesiog nurodykite juos konfigūracijos faile skyriuje [xtrabackup]. Kadangi jie bus skaitomi vėliau, jų prioritetas bus didesnis.

Jums nereikia pridėti jokių parametrų mano.cnf. Visus reikalingus parametrus galima nurodyti komandinėje eilutėje. Paprastai vienintelis dalykas, kurį galima patogiai įdėti į sekciją [xtrabackup] tavo mano.cnf yra parametras target_dir, kuris pagal numatytuosius nustatymus nurodo katalogą, kuriame bus dedamos atsarginės kopijos. Bet tai neprivaloma.

Pavyzdys, kaip nurodyti kelią į katalogą su atsargine kopija mano.cnf:

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

Atsarginis scenarijus

Norėdami sukurti atsarginę kopiją, galite naudoti šį scenarijų:

#!/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

Kas nutinka scenarijaus vykdymo metu?

Pirmiausia išvalome (ištriname) katalogą, kuriame išsaugosime atsarginę kopiją:

rm -rf /mysql/backup.

Tada naudodamiesi programa XtraBackup sukurkite atsarginę kopiją ir išsaugokite ją /mysql/backup/:

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

Anksčiau mes sukūrėme vartotoją MySQL xtrabackup su reikiamomis privilegijomis. Naudojant parametrą target-dir nurodome katalogą, kuriame turi būti išsaugota atsarginė kopija.

Svarbus dalykas!

Atkreipkite dėmesį į scenarijaus eilutę:

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

Katalogo duomenys /mysql/backup nėra vienodi, kol neiškepa. 

Faktas yra tai, kad kopijuojant failus gali atsirasti pakeitimų. Operacija xtrabackup --prepare --target-dir=/mysql/backup užtikrina, kad atsarginės duomenų kopijos laikui bėgant visiškai nuoseklios.

Duomenų paruošimo operaciją galite atlikti bet kurioje mašinoje. Serveryje, kuriame yra šaltinio DBVS, to daryti nereikia. Galite nukopijuoti atsarginę kopiją į tikslinį serverį ir ten ją paruošti.

Paskutinis dalykas, kurį darome, yra sukurti archyvą, kuriame dedame atsarginę kopiją:

tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backup

Atsarginės kopijos atkūrimas 

Kad galėtumėte atkurti atsarginę kopiją tiksliniame serveryje, duomenys turi būti paruošti. Žr. aukščiau, kaip tai padaryti.

Duomenų atkūrimo procesas yra labai paprastas. Turite išimti atsarginę kopiją iš archyvo ir pakeisti duomenis duomenų vad.

Kaip pakeisti duomenis datadir?

Apsvarstykime du variantus.

Parinktis 1

Naudokite naudingumą XtraBackup. Turite nurodyti parinktį --kopijuoti atgal

Toliau pateikta komanda perkels atsarginę kopiją į duomenų vad tikslinis serveris:

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

Parinktis 2

Galite tai padaryti kitaip, apsieikite be komunalinių paslaugų XtraBackup.

Viskas, ką jums reikia padaryti, tai nukopijuoti atsarginę kopiją į duomenų vad. Tai galite padaryti su cp arba rsync.

Svarbu suprasti, kad atsarginės kopijos atkūrimo procedūra apsiriboja tik katalogo turinio pakeitimu duomenų vad.

Prieš pradėdami atkurti atsarginę kopiją tiksliniame serveryje, turite:

  • Sustabdyti MySQL serverį.

  • Išvalyti aplanką duomenų vad arba perkelti jo turinį į kitą vietą. Katalogas duomenų vad turi būti tuščias.

Baigę duomenų perdavimą į duomenų vad MySQL serverį galima paleisti.

naudojamos medžiagos

Oficiali dokumentacija perkona XtraBackup.

Šaltinis: www.habr.com

Добавить комментарий