Paghimo og MySQL backup gamit ang XtraBackup utility

Percona XtraBackup usa ka gamit alang sa mainit nga pag-backup sa database MySQL.

Kung maghimo usa ka backup sa datos, wala’y mga lamesa nga naka-lock, ug ang imong sistema nagpadayon sa paglihok nga wala’y mga pagdili.

XtraBackup 2.4 makahimo og backup nga mga kopya sa mga lamesa InnoDBXtraDB ΠΈ Akong ISAM sa mga server MySQL 5.11, 5.5, 5.6 ug 5.7, ug usab sa server percona alang sa MySQL Ρ XtraDB.

Aron magtrabaho kauban MySQL 8.x ang bersyon kinahanglan gamiton XtraBackup 8.x. Kini nga artikulo maghisgot lamang bahin sa XtraBackup 2.4.

Ang nag-unang bentaha XtraBackup mao nga kini nga utility angay alang sa paghimo og mga backup sa mga server nga puno kaayo ug alang sa mga sistema nga adunay gamay nga gidaghanon sa mga transaksyon.

Kung ang kinatibuk-ang gidak-on sa imong MySQL database mahinungdanon (napulo ka gigabytes), nan ang standard utility mysqldump dili motugot kanimo nga dali nga maghimo usa ka backup nga kopya, ug ang pagpahiuli sa dump magkinahanglan daghang oras.

Pag-instalar

Pag-instalar XtraBackup gikan sa repository haom Percona.

Pagdalagan ang mosunod nga mga sugo sunodsunod:

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. Human sa pag-instalar, pagdagan ang command xtrabackup -v. Tungod kay, hinungdanon nga masiguro nga ang utility nagtrabaho sa husto sa server. Ingon usa ka sangputanan, usa ka butang nga sama niini ang ipakita sa screen:

xtrabackup: giila nga mga argumento sa server: - 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 base sa MySQL server 5.7.26 Linux (x8664) (revision id: c8b4056)

Paghimo og MySQL backup gamit ang XtraBackup utility

Mga katungod sa pag-access, pagtugot ug mga pribilehiyo 

Ang XtraBackup kinahanglan nga makahimo sa:

  • Sumpaysumpaya ang imong MySQL server.

  • Adunay mga katungod sa pag-access sa direktoryo mao ang data

  • Kung maghimo usa ka backup nga kopya, adunay mga katungod sa pagsulat sa gitakda nga parameter target-dir katalogo.

Unsa ang datadir?

mao ang data mao ang direktoryo diin ang database server MySQL nagtipig og datos. Tanan nga mga database, tanan nga mga lamesa naa didto. Sa kadaghanan sa mga distribusyon sa Linux, ang default nga direktoryo mao ang /var/lib/mysql.

Unsa ang direktoryo sa target-dir?

target-dir - Kini ang direktoryo diin ang backup maluwas.

Ang tiggamit sa database nagkinahanglan sa mosunod nga mga katungod sa pag-access sa mga lamesa ug mga database nga i-back up:

  • RELOAD ug LOCK TABLES

  • REPLICATION CLIENT

  • PAGHIMO TABLESPACE

  • PROSESO

  • SUPER

  • PAGHIMO OG

  • INSERT

  • Pinili nga

Pagsalig 

Pagsalig XtraBackup gihimo gamit ang mga kapilian nga parehas sa pamatasan nga mga kapilian sa MySQL.

Unsa ang gipasabut niini?

Ang mga parameter sa pag-configure mahimong matino sa linya sa mando o sa DBMS file sa pagsumpo, pananglitan sa /etc/my.cnf.

Ang XtraBackup utility nagbasa sa mga partisyon pagkahuman sa paglansad [mysqld] ΠΈ [xtrabackup] gikan sa MySQL configuration files. Gihimo kini aron magamit sa utility ang mga setting sa imong DBMS nga dili kinahanglan nga mano-mano nga ipiho ang mga parameter sa matag backup.

Pananglitan, ang bili mao ang data ug pipila ka mga parameter InnoDB Nakuha namo ang XtraBackup gikan sa configuration sa imong DBMS.

Kung alang sa XtraBackup nga magtrabaho gusto nimo nga i-override ang mga parameter nga naa sa seksyon [mysqld], unya ipiho lang kini sa configuration file sa seksyon [xtrabackup]. Tungod kay mabasa kini sa ulahi, mas taas ang ilang prayoridad.

Dili nimo kinahanglan nga idugang ang bisan unsang mga parameter akong.cnf. Ang tanan nga gikinahanglan nga mga parameter mahimong itakda sa command line. Kasagaran ang bugtong butang nga mahimong komportable nga ibutang sa seksyon [xtrabackup] imong akong.cnf kay usa ka parameter target_dir, nga pinaagi sa default nagtino sa direktoryo diin ang mga backup ibutang. Apan kini opsyonal.

Usa ka pananglitan sa pagtino sa agianan sa direktoryo nga adunay backup nga kopya sa akong.cnf:

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

Pag-backup nga script

Mahimo nimong gamiton ang mosunod nga script sa paghimo og 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

Unsa ang mahitabo sa panahon sa pagpatuman sa script?

Una sa tanan, among gilimpyohan (gitangtang) ang direktoryo diin among i-save ang backup nga kopya:

rm -rf /mysql/backup.

Unya, gamit ang utility XtraBackup paghimo og backup nga kopya ug i-save kini sa /mysql/backup/:

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

Kaniadto, naghimo kami usa ka tiggamit sa MySQL xtrabackup uban sa gikinahanglan nga mga pribilehiyo. Paggamit sa parameter target-dir among gipiho ang direktoryo diin ang backup kinahanglan nga maluwas.

Usa ka importante nga punto!

Timan-i ang linya sa script:

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

Data sa katalogo /mysql/backup dili consistent hangtod maluto. 

Ang tinuod mao nga ang mga pagbag-o mahimong mahitabo samtang nagkopya sa mga file. Operasyon xtrabackup --prepare --target-dir=/mysql/backup naghimo sa backup data nga hingpit nga makanunayon sa paglabay sa panahon.

Mahimo nimong buhaton ang operasyon sa pag-andam sa datos sa bisan unsang makina. Dili kinahanglan nga buhaton kini sa server diin nahimutang ang gigikanan nga DBMS. Mahimo nimong kopyahon ang backup sa target nga server ug andama kini didto.

Ang katapusan nga butang nga among buhaton mao ang paghimo og usa ka archive diin among gibutang ang among backup:

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

Pag-uli sa usa ka backup 

Sa dili pa nimo mapasig-uli ang usa ka backup sa target nga server, ang datos kinahanglan nga moagi sa usa ka yugto sa pagpangandam. Tan-awa sa ibabaw kon unsaon pagbuhat niini.

Ang proseso sa pagbawi sa datos yano kaayo. Kinahanglan nimo nga makuha ang backup gikan sa archive ug ilisan ang data sa mao ang data.

Unsaon pag-ilis sa data sa datadir?

Atong tagdon ang duha ka kapilian.

Pagpili 1

Gamita ang utility XtraBackup. Kinahanglan nimong ipiho ang usa ka kapilian --kopya-balik

Ang sugo sa ubos ibalhin ang backup sa mao ang data target nga server:

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

Pagpili 2

Mahimo nimo kini nga lahi, buhaton nga wala ang utility XtraBackup.

Ang kinahanglan nimong buhaton mao ang pagkopya sa backup sa mao ang data. Mahimo nimo kini sa cp o rsync.

Mahinungdanon nga masabtan nga ang pamaagi alang sa pagpasig-uli sa usa ka backup nagbukal sa pag-ilis lang sa mga sulud sa direktoryo mao ang data.

Sa dili ka pa magsugod sa pagpahiuli sa usa ka backup sa target nga server, kinahanglan nimo:

  • Hunong ang MySQL server.

  • Klaro nga folder mao ang data o ibalhin ang mga sulod niini sa laing lokasyon. Katalogo mao ang data kinahanglan nga walay sulod.

Human makompleto ang data transfer sa mao ang data Ang MySQL server mahimong masugdan.

Mga gamit nga gigamit

Opisyal nga dokumentasyon percona XtraBackup.

Source: www.habr.com

Idugang sa usa ka comment