Ħolqien ta 'backup MySQL billi tuża l-utilità XtraBackup

Percona XtraBackup hija utilità għall-backups tad-database sħun MySQL.

Meta toħloq backup tad-dejta, l-ebda tabelli ma huma msakkra, u s-sistema tiegħek tkompli topera mingħajr ebda restrizzjoni.

XtraBackup 2.4 jista 'joħloq kopji ta' backup tat-tabelli InnoDBXtraDB и MyISAM fuq servers MySQL 5.11, 5.5, 5.6 u 5.7, u wkoll fuq is-server percona għall- MySQL с XtraDB.

Biex taħdem magħhom MySQL 8.x verżjoni għandha tintuża XtraBackup 8.x. Dan l-artikolu se jitkellem biss dwar XtraBackup 2.4.

Il-vantaġġ ewlieni XtraBackup hija li din l-utilità hija adattata għall-ħolqien ta' kopji ta' backup ta' tagħbija għolja servers, kif ukoll għal sistemi b'numru baxx ta' tranżazzjonijiet.

Jekk id-daqs totali tad-databases MySQL tiegħek huwa sinifikanti (għexieren ta 'gigabytes), allura l-utilità standard mysqldump mhux se jippermettilek li toħloq kopja ta 'backup malajr, u r-restawr tad-dump jieħu ħafna ħin.

Installazzjoni

Installazzjoni XtraBackup mir-repożitorju apt Percona.

Mexxi l-kmandi li ġejjin b'mod sekwenzjali:

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. Wara l-installazzjoni, mexxi l-kmand xtrabackup -v. Peress li, huwa importanti li jiġi żgurat li l-utilità taħdem b'mod korrett fuq is-server. Bħala riżultat, xi ħaġa bħal din se tintwera fuq l-iskrin:

xtrabackup: argumenti tas-server rikonoxxuti: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup verżjoni 2.4.20 ibbażata fuq is-server MySQL 5.7.26 Linux (x8664) (id tar-reviżjoni: c8b4056)

Ħolqien ta 'backup MySQL billi tuża l-utilità XtraBackup

Drittijiet ta' aċċess, permessi u privileġġi 

XtraBackup għandu jkun kapaċi:

  • Qabbad mas-server MySQL tiegħek.

  • Ikollok drittijiet ta' aċċess għad-direttorju hija data

  • Meta toħloq kopja ta 'backup, għandek id-drittijiet tal-kitba għall-parametru speċifikat mira-dir katalogu.

X'inhu datadir?

hija data huwa d-direttorju fejn is-server tad-database MySQL jaħżen id-dejta. Id-databases kollha, it-tabelli kollha jinsabu hemm. Fil-biċċa l-kbira tad-distribuzzjonijiet Linux B'mod awtomatiku, dan id-direttorju huwa /var/lib/mysql.

X'inhu direttorju target-dir?

mira-dir - Dan huwa d-direttorju fejn il-backup se jiġi ffrankat.

L-utent tad-database jeħtieġ id-drittijiet ta' aċċess li ġejjin għat-tabelli u d-databases li għandhom jiġu appoġġjati:

  • RELOAD u LOCK TWELLI

  • REPLIKAZZJONI KLIJENT

  • OĦLOQ TABLESPACE

  • PROĊESS

  • SUPER

  • JINħOLOQ

  • DAĦĦAL

  • SELECT

Konfigurazzjoni 

Konfigurazzjoni XtraBackup isir bl-użu ta 'għażliet li jġibu ruħhom l-istess bħall-għażliet MySQL standard.

Dak li jfisser dan?

Il-parametri tal-konfigurazzjoni jistgħu jiġu speċifikati jew fuq il-linja tal-kmand jew fil-fajl tal-konfigurazzjoni tad-DBMS, pereżempju fi /etc/my.cnf.

L-utilità XtraBackup taqra diviżorji wara t-tnedija [mysqld] и [xtrabackup] mill-fajls tal-konfigurazzjoni MySQL. Dan isir sabiex l-utilità tkun tista' tuża s-settings tad-DBMS tiegħek mingħajr ma jkollok għalfejn tispeċifika manwalment il-parametri matul kull backup.

Per eżempju, il-valur hija data u xi parametri InnoDB Nieħdu XtraBackup mill-konfigurazzjoni tad-DBMS tiegħek.

Jekk biex XtraBackup jaħdem trid tegħleb il-parametri li jinsabu fit-taqsima [mysqld], imbagħad speċifikahom biss fil-fajl tal-konfigurazzjoni fit-taqsima [xtrabackup]. Peress li se jinqraw aktar tard, il-prijorità tagħhom tkun ogħla.

M'għandekx għalfejn iżżid xi parametru tiegħi.cnf. Il-parametri kollha meħtieġa jistgħu jiġu speċifikati fuq il-linja tal-kmand. Normalment l-unika ħaġa li tista 'titqiegħed b'mod konvenjenti fis-sezzjoni [xtrabackup] tiegħek tiegħi.cnf huwa parametru target_dir, li b'mod awtomatiku jispeċifika d-direttorju fejn se jitqiegħdu l-backups. Iżda dan huwa fakultattiv.

Eżempju ta 'speċifikazzjoni tal-mogħdija għad-direttorju b'kopja ta' backup ġewwa tiegħi.cnf:

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

Iskrittura tal-backup

Tista' tuża l-iskrittura li ġejja biex toħloq backup:

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

X'jiġri waqt l-eżekuzzjoni tal-iskript?

L-ewwelnett, aħna niċċaraw (neħħu) id-direttorju li fih se nsalvaw il-kopja tal-backup:

rm -rf /mysql/backup.

Imbagħad, billi tuża l-utilità XtraBackup oħloq kopja ta' backup u ssalvaha fiha /mysql/backup/:

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

Preċedentement, ħloqna utent fil-MySQL xtrabackup bil-privileġġi meħtieġa. Bl-użu tal-parametru target-dir aħna nispeċifikaw id-direttorju fejn għandha tiġi ssejvjata l-backup.

Punt importanti!

Innota l-linja tal-iskrittura:

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

Data tal-katalogu /mysql/backup mhumiex konsistenti sakemm ikunu msajra. 

Il-fatt hu li l-bidliet jistgħu jseħħu waqt l-ikkupjar tal-fajls. Operazzjoni xtrabackup --prepare --target-dir=/mysql/backup jagħmel id-data tal-backup perfettament konsistenti maż-żmien.

Tista 'twettaq l-operazzjoni tal-preparazzjoni tad-dejta fuq kwalunkwe magna. M'hemmx għalfejn tagħmel dan fuq is-server fejn jinsab is-sors DBMS. Tista 'tikkopja l-backup fis-server fil-mira u tippreparaha hemmhekk.

L-aħħar ħaġa li nagħmlu hija li noħolqu arkivju li fih inpoġġu l-backup tagħna:

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

Ir-restawr ta' backup 

Qabel ma tkun tista 'terġa backup għas-server fil-mira, id-data trid tgħaddi minn fażi ta' preparazzjoni. Ara hawn fuq kif tagħmel dan.

Il-proċess ta 'rkupru tad-data huwa sempliċi ħafna. Għandek bżonn tiġbed il-backup mill-arkivju u tissostitwixxi d-data ġewwa hija data.

Kif tissostitwixxi d-data fid-datadir?

Ejja nikkunsidraw żewġ għażliet.

Għażla 1

Uża l-utilità XtraBackup. Għandek bżonn tispeċifika għażla --kopja lura

Il-kmand hawn taħt se tittrasferixxi l-backup għal hija data server fil-mira:

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

Għażla 2

Tista 'tagħmel dan b'mod differenti, tagħmel mingħajr l-utilità XtraBackup.

Kull ma trid tagħmel hu li tikkopja l-backup fuq hija data. Tista 'tagħmel dan ma' cp jew rsync.

Huwa importanti li wieħed jifhem li l-proċedura għar-restawr ta 'backup titbaxxa biss biex tissostitwixxi l-kontenut tad-direttorju hija data.

Qabel ma tibda tirrestawra backup fuq is-server fil-mira, trid:

  • Waqqaf is-server MySQL.

  • Fowlder ċar hija data jew iċċaqlaq il-kontenut tiegħu għal post ieħor. Katalgu hija data irid ikun vojt.

Wara li tlesti t-trasferiment tad-data lejn hija data MySQL server jista 'jinbeda.

Materjali użati

Dokumentazzjoni uffiċjali percona XtraBackup.

Sors: www.habr.com

Ixtri hosting affidabbli għal siti bi protezzjoni DDoS, servers VPS VDS 🔥 Ixtri hosting ta' websajts affidabbli bi protezzjoni DDoS, servers VPS VDS | ProHoster