MySQL babeskopia bat sortzea XtraBackup utilitatea erabiliz

Percona XtraBackup — datu-baseen babeskopia beroak egiteko utilitate bat da MySQL.

Datuen babeskopia bat sortzen ari zaren bitartean, ez da taularik blokeatzen, eta zure sistemak inolako mugarik gabe funtzionatzen jarraitzen du.

XtraBackup 2.4 taulen babeskopiak sor ditzake InnoDBXtraDB и NireISAM zerbitzarietan MySQL 5.11, 5.5, 5.6 eta 5.7, baita zerbitzarian ere percona egiteko MySQL с XtraDB.

Lan egiteko MySQL 8.x bertsioa erabili behar da XtraBackup 8.x. Artikulu honek honi buruz bakarrik hitz egingo du XtraBackup 2.4.

Abantaila nagusia XtraBackup utilitate hau egokia da karga handiko fitxategien babeskopiak sortzeko zerbitzariak, baita transakzio kopuru txikia duten sistemetarako ere.

Zure MySQL datu-baseen tamaina osoa esanguratsua bada (hamarnaka gigabyte), orduan utilitate estandarra mysqldump ez dizu babeskopia azkar bat sortzen utziko, eta zabortegia leheneratzea denbora asko beharko da.

Instalazio-

Instalazio- XtraBackup biltegitik apt Perkona.

Exekutatu komando hauek sekuentzian:

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

2Instalatu ondoren, exekutatu komandoa xtrabackup -vGarrantzitsua da utilitateak zerbitzarian behar bezala funtzionatzen duela ziurtatzea. Ondorioz, honelako zerbait agertuko da pantailan:

xtrabackup: aitortutako zerbitzari-argumentuak: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup 2.4.20 bertsioa MySQL 5.7.26 zerbitzarian oinarrituta Linux (x8664) (berrikuspenaren IDa: c8b4056)

MySQL babeskopia bat sortzea XtraBackup utilitatea erabiliz

Sarbide eskubideak, baimenak eta pribilegioak 

XtraBackup-ek gai izan beharko luke:

  • Konektatu zure MySQL zerbitzarira.

  • Direktoriorako sarbide eskubideak izan datu-direktorioa

  • Babeskopia bat sortzerakoan, zehaztutako parametroan idazteko eskubideak izan behar dituzu helburu-direktorioa katalogoa.

Zer da datadir?

datu-direktorioa - Datu-basearen zerbitzaria dagoen direktorioa da hau. MySQL datuak gordetzen ditu. Datu-base guztiak, taula guztiak bertan daude. Banaketa gehienetan Linux Berez, direktorio hau da /var/lib/mysql.

Zer da target-dir direktorioa?

helburu-direktorioa — hau da babeskopia gordeko den direktorioa.

Datu-basearen erabiltzaileak honako sarbide-eskubide hauek behar ditu babeskopia egin beharreko tauletarako eta datu-baseetarako:

  • TAULAK BERKARGATU ETA BLOKEATU

  • ERREPLIKAZIO BEZEROA

  • SORTU TAULA-ESPAZIOA

  • PROZESUA

  • SUPER

  • SORTU

  • INSERT

  • AUKERATU

konfigurazioa 

konfigurazioa XtraBackup MySQL parametro estandarrek bezala jokatzen duten aukerak erabiliz lortzen da.

Zer esan nahi du horrek?

Konfigurazio-parametroak komando-lerroan edo DBMS konfigurazio-fitxategian zehaztu daitezke, adibidez /etc/my.cnf.

XtraBackup utilitateak partizioak irakurtzen ditu abiarazi ondoren [Mysqld] и [xtrabackup] MySQL konfigurazio fitxategietatik. Horrela egiten da utilitateak zure DBMS ezarpenak erabil ditzake babeskopia bakoitzerako eskuz zehaztu beharrik gabe.

Adibidez, esanahia datu-direktorioa eta parametro batzuk InnoDB XtraBackup zure DBMS konfiguraziotik lortzen dugu.

XtraBackup ataleko ezarpenak gainidatzi nahi badituzu [Mysqld], zehaztu besterik ez duzu egin behar konfigurazio fitxategian atalean [xtrabackup]Geroago irakurriko direnez, lehentasun handiagoa izango dute.

Ez duzu parametrorik gehitu beharrik nire.cnfBeharrezko parametro guztiak komando-lerroan zehaztu daitezke. Normalean, atalean eroso jar daitekeen gauza bakarra [xtrabackup] zure nire.cnf - hau parametro bat da helburu_direktorioa, zeinak lehenespenez babeskopiak non jarriko diren zehazten duen. Hala ere, hau ez da beharrezkoa.

Babeskopia duen direktoriorako bidea zehazteko adibide bat nire.cnf:

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

Babeskopiak sortzeko gidoia

Babeskopia bat sortzeko, script hau erabil dezakezu:

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

Zer gertatzen da script bat exekutatzen denean?

Lehenengo gauza babeskopia gordeko dugun direktorioa garbitzea (ezabatzea) da:

rm -rf /mysql/backup.

Ondoren, utilitatea erabiliz XtraBackup babeskopia bat sortu eta gorde ezazu /mysql/babeskopia/:

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

Aurretik erabiltzaile bat sortu genuen MySQL-n. xtrabackup beharrezko pribilegioekin. Parametroa erabiliz target-dir Babeskopia gorde behar den direktorioa zehaztuko dugu.

Puntu garrantzitsu bat!

Kontuan izan gidoi-lerroa:

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

Katalogoko datuak. /mysql/backup ez dira koherenteak prestatu arte. 

Kontua da aldaketak gerta zitezkeela fitxategiak kopiatzen ari ziren bitartean. Eragiketa xtrabackup --prepare --target-dir=/mysql/backup babeskopien datuak denboran zehar guztiz koherenteak egiten ditu.

Datuak prestatzeko eragiketa edozein makinatan egin dezakezu. Ez dago iturburuko DBMSa ostatatzen duen zerbitzarian egin beharrik. Babeskopia helburuko zerbitzarira kopiatu eta han prestatu dezakezu.

Azkenik egiten dugun gauza artxibo bat sortzea da, eta bertan gure babeskopia jartzen dugu:

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

Babeskopia bat leheneratzea 

Babeskopia helburuko zerbitzarira leheneratu aurretik, datuek prestaketa-fase bat igaro behar dute. Ikusi goian hori nola egin jakiteko argibideak.

Datuak berreskuratzeko prozesua oso erraza da. Babeskopia artxibotik atera eta datuak ordezkatu besterik ez duzu egin behar. datu-direktorioa.

Nola ordezkatu datuak datadir-en?

Demagun bi aukera.

Aukera 1

Erabili utilitatea. XtraBackupAukera zehaztu behar duzu. —kopia-atzealdea

Beheko komandoak babeskopia honera eramango du datu-direktorioa helburu zerbitzaria:

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

Aukera 2

Beste era batera egin dezakezu eta erabilgarritasunik gabe egin. XtraBackup.

Egin behar duzun guztia babeskopia kopiatzea da datu-direktorioaHau egin dezakezu honen laguntzarekin cp edo rsync.

Garrantzitsua da ulertzea babeskopia berreskuratzeko prozedura direktorioaren edukia ordezkatzea besterik ez dela. datu-direktorioa.

Helburuko zerbitzarian babeskopia bat leheneratzen hasi aurretik, hau egin behar duzu:

  • Gelditu MySQL zerbitzaria.

  • Garbitu karpeta datu-direktorioa edo edukia beste kokapen batera eraman Katalogoa datu-direktorioa hutsik egon behar du.

Datuen transferentzia amaitu ondoren, datu-direktorioa MySQL zerbitzaria abiarazi daiteke.

Erabilitako materialak

Dokumentazio ofiziala percona XtraBackup.

Iturria: www.habr.com

Erosi hosting fidagarria DDoS babesa duten guneetarako, VPS VDS zerbitzariak 🔥 Erosi webguneentzako ostatu fidagarria DDoS babesarekin, VPS VDS zerbitzariak | ProHoster