Að búa til MySQL öryggisafrit með XtraBackup tólinu

Percona XtraBackup er tól fyrir heitt afrit af gagnagrunni MySQL.

Þegar búið er til öryggisafrit af gögnum eru engar töflur læstar og kerfið þitt heldur áfram að starfa án nokkurra takmarkana.

XtraBackup 2.4 getur búið til öryggisafrit af töflum InnoDBXtraDB и MyISAM á netþjónum MySQL 5.11, 5.5, 5.6 og 5.7, og einnig á þjóninum percona í MySQL с XtraDB.

Til að vinna með MySQL 8.x útgáfu ætti að nota XtraBackup 8.x. Þessi grein mun aðeins tala um XtraBackup 2.4.

Helsti kosturinn XtraBackup er að þetta tól hentar bæði til að búa til öryggisafrit af mjög hlaðnum netþjónum og fyrir kerfi með fáan fjölda viðskipta.

Ef heildarstærð MySQL gagnagrunna þinna er umtalsverð (tugir gígabæta), þá er staðlað tól mysqldump mun ekki leyfa þér að búa til öryggisafrit á fljótlegan hátt og endurheimt sorphaugsins mun taka mikinn tíma.

Uppsetning

Uppsetning XtraBackup úr geymslunni íbúð Percona.

Keyrðu eftirfarandi skipanir í röð:

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. Eftir uppsetningu skaltu keyra skipunina xtrabackup -v. Þar sem það er mikilvægt að ganga úr skugga um að tólið virki rétt á þjóninum. Fyrir vikið mun eitthvað eins og þetta birtast á skjánum:

xtrabackup: viðurkennd rök miðlara: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup útgáfa 2.4.20 byggð á MySQL miðlara 5.7.26 Linux (x8664) (endurskoðunarkenni: c8b4056)

Að búa til MySQL öryggisafrit með XtraBackup tólinu

Aðgangsréttur, heimildir og réttindi 

XtraBackup ætti að geta:

  • Tengstu við MySQL netþjóninn þinn.

  • Hafa aðgangsrétt að skránni datadir

  • Þegar þú býrð til öryggisafrit skaltu hafa skrifrétt á tilgreindri færibreytu target-dir vörulista.

Hvað er datadir?

datadir er skráin þar sem gagnagrunnsþjónninn MySQL geymir gögn. Allir gagnagrunnar, allar töflur eru til staðar. Í flestum Linux dreifingum er sjálfgefna skráin /var/lib/mysql.

Hvað er target-dir mappa?

target-dir - Þetta er skráin þar sem öryggisafritið verður vistað.

Gagnagrunnsnotandinn þarf eftirfarandi aðgangsréttindi að töflunum og gagnagrunnum sem á að taka öryggisafrit:

  • ENDURLAÐAÐU OG LÆSTU TÖFLU

  • AFTAKA VIÐSKIPTI

  • BÚA TIL BORÐSPLAÐI

  • Ferli

  • SUPER

  • CREATE

  • INSERT

  • VELJA

Stillingar 

Stillingar XtraBackup gert með því að nota valkosti sem hegða sér eins og venjulegir MySQL valkostir.

Hvað þýðir þetta?

Stillingarfæribreytur er hægt að tilgreina annað hvort á skipanalínunni eða í DBMS stillingarskránni, til dæmis í /etc/my.cnf.

XtraBackup tólið les skipting eftir ræsingu [mysqld] и [xtrabackup] úr MySQL stillingarskrám. Þetta er gert til að tólið geti notað stillingar DBMS án þess að þurfa að tilgreina færibreytur handvirkt við hverja öryggisafrit.

Til dæmis gildið datadir og nokkrar breytur InnoDB Við fáum XtraBackup frá uppsetningu DBMS þíns.

Ef til að XtraBackup virki viltu hnekkja breytunum sem eru í hlutanum [mysqld], tilgreindu þá bara í stillingarskránni í hlutanum [xtrabackup]. Þar sem þær verða lesnar síðar verður forgangur þeirra meiri.

Þú þarft ekki að bæta neinum breytum við mitt.cnf. Hægt er að tilgreina allar nauðsynlegar breytur á skipanalínunni. Venjulega það eina sem hægt er að setja á þægilegan hátt í hlutanum [xtrabackup] þinn mitt.cnf er færibreyta target_dir, sem sjálfgefið tilgreinir möppuna þar sem öryggisafrit verða sett. En þetta er valfrjálst.

Dæmi um að tilgreina slóðina að möppunni með afriti í mitt.cnf:

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

Öryggishandrit

Þú getur notað eftirfarandi forskrift til að búa til öryggisafrit:

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

Hvað gerist við framkvæmd handrits?

Fyrst af öllu hreinsum við (eyðum) möppunni þar sem við munum vista öryggisafritið:

rm -rf /mysql/backup.

Notaðu síðan tólið XtraBackup búa til öryggisafrit og vista það í /mysql/afrit/:

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

Áður bjuggum við til notanda í MySQL xtrabackup með tilskilin réttindi. Með því að nota færibreytuna target-dir við tilgreinum möppuna þar sem öryggisafritið á að vista.

Mikilvægt atriði!

Athugaðu handritslínuna:

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

Skráargögn /mysql/afrit eru ekki stöðugar fyrr en þær eru soðnar. 

Staðreyndin er sú að breytingar gætu átt sér stað þegar skrár eru afritaðar. Aðgerð xtrabackup --prepare --target-dir=/mysql/backup gerir öryggisafritunargögn fullkomlega samkvæm með tímanum.

Þú getur framkvæmt gagnaundirbúningsaðgerðina á hvaða vél sem er. Það er engin þörf á að gera þetta á þjóninum þar sem uppruna-DBMS er staðsett. Þú getur afritað öryggisafritið á miðþjóninn og undirbúið það þar.

Það síðasta sem við gerum er að búa til skjalasafn þar sem við setjum öryggisafritið okkar:

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

Endurheimtir öryggisafrit 

Áður en hægt er að endurheimta öryggisafrit á markþjóninn verða gögnin að fara í gegnum undirbúningsfasa. Sjá hér að ofan hvernig á að gera þetta.

Gagnabati ferlið er mjög einfalt. Þú þarft að taka öryggisafritið út úr skjalasafninu og skipta um gögnin inn datadir.

Hvernig á að skipta um gögn í datadir?

Við skulum íhuga tvo valkosti.

Valkostur 1

Notaðu tólið XtraBackup. Þú þarft að tilgreina valmöguleika --afrita-til baka

Skipunin hér að neðan mun flytja öryggisafritið til datadir markþjónn:

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

Valkostur 2

Þú getur gert það öðruvísi, ekki án tólsins XtraBackup.

Allt sem þú þarft að gera er að afrita öryggisafritið til datadir. Þú getur gert þetta með cp eða rsync.

Það er mikilvægt að skilja að aðferðin við að endurheimta öryggisafrit snýst bara um að skipta um innihald möppunnar datadir.

Áður en þú byrjar að endurheimta öryggisafrit á markþjóninum verður þú að:

  • Stöðva MySQL miðlara.

  • Hreinsa möppu datadir eða færa innihald þess á annan stað. Vörulisti datadir verður að vera tómt.

Eftir að hafa lokið gagnaflutningi til datadir Hægt er að ræsa MySQL netþjón.

Efni sem notuð eru

Opinber skjöl percona XtraBackup.

Heimild: www.habr.com

Bæta við athugasemd