Kuunda nakala rudufu ya MySQL kwa kutumia matumizi ya XtraBackup

Percona XtraBackup ni shirika kwa ajili ya chelezo moto database MySQL.

Wakati wa kuunda nakala rudufu ya data, hakuna meza zilizofungwa, na mfumo wako unaendelea kufanya kazi bila vizuizi vyovyote.

XtraBackup 2.4 inaweza kuunda nakala za chelezo za jedwali InnoDBXtraDB и MyISAM kwenye seva MySQL 5.11, 5.5, 5.6 na 5.7, na pia kwenye seva percona kwa MySQL с XtraDB.

Kufanya kazi na MySQL 8.x toleo inapaswa kutumika XtraBackup 8.x. Makala hii itazungumzia tu XtraBackup 2.4.

Faida kuu XtraBackup ni kwamba huduma hii inafaa kwa kuunda nakala rudufu za vitu vilivyopakiwa sana seva, na pia kwa mifumo yenye idadi ndogo ya miamala.

Ikiwa saizi ya jumla ya hifadhidata yako ya MySQL ni muhimu (makumi ya gigabytes), basi matumizi ya kawaida mysqldump haitakuruhusu kuunda nakala rudufu haraka, na kurejesha utupaji utachukua muda mwingi.

Ufungaji

Ufungaji XtraBackup kutoka kwa hazina anayeweza Percona.

Tekeleza amri zifuatazo kwa mlolongo:

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. Baada ya ufungaji, endesha amri xtrabackup -v. Kwa kuwa, ni muhimu kuhakikisha kuwa matumizi hufanya kazi kwa usahihi kwenye seva. Kama matokeo, kitu kama hiki kitaonyeshwa kwenye skrini:

xtrabackup: hoja za seva zinazotambuliwa: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup toleo la 2.4.20 kulingana na seva ya MySQL 5.7.26 Linux (x8664) (kitambulisho cha marekebisho: c8b4056)

Kuunda nakala rudufu ya MySQL kwa kutumia matumizi ya XtraBackup

Haki za ufikiaji, ruhusa na marupurupu 

XtraBackup inapaswa kuwa na uwezo wa:

  • Unganisha kwenye seva yako ya MySQL.

  • Kuwa na haki za kufikia saraka datadir

  • Wakati wa kuunda nakala rudufu, uwe na haki za uandishi kwa parameta maalum lengo-dir katalogi.

Datadir ni nini?

datadir ni saraka ambapo seva ya hifadhidata MySQL Huhifadhi data. Hifadhidata zote, majedwali yote yanapatikana hapo. Katika usambazaji mwingi Linux Kwa chaguo-msingi, saraka hii ni /var/lib/mysql.

Saraka ya target-dir ni nini?

lengo-dir - Hii ndio saraka ambapo chelezo itahifadhiwa.

Mtumiaji wa hifadhidata anahitaji haki zifuatazo za ufikiaji kwa majedwali na hifadhidata ili kuchelezwa:

  • PAKIA UPYA na FUNGA MEZA

  • REPLICATION CLIENT

  • TENGENEZA MEZA

  • PROCESS

  • SUPER

  • FUNGUA

  • Insert

  • SELECT

Usanidi 

Usanidi XtraBackup imefanywa kwa kutumia chaguzi ambazo zinafanya kazi sawa na chaguzi za kawaida za MySQL.

Hii inamaanisha nini?

Vigezo vya usanidi vinaweza kubainishwa ama kwenye safu ya amri au kwenye faili ya usanidi ya DBMS, kwa mfano katika /etc/my.cnf.

Huduma ya XtraBackup inasoma sehemu baada ya kuzinduliwa [mysqld] и [xtrabackup] kutoka kwa faili za usanidi za MySQL. Hii inafanywa ili shirika liweze kutumia mipangilio ya DBMS yako bila kulazimika kubainisha vigezo wakati wa kila chelezo.

Kwa mfano, thamani datadir na baadhi ya vigezo InnoDB Tunapata XtraBackup kutoka kwa usanidi wa DBMS yako.

Ikiwa kwa XtraBackup kufanya kazi unataka kubatilisha vigezo vilivyo kwenye sehemu hiyo [mysqld], kisha uwaeleze tu kwenye faili ya usanidi katika sehemu hiyo [xtrabackup]. Kwa kuwa zitasomwa baadaye, kipaumbele chao kitakuwa cha juu zaidi.

Huna haja ya kuongeza vigezo vyovyote yangu.cnf. Vigezo vyote vinavyohitajika vinaweza kutajwa kwenye mstari wa amri. Kawaida kitu pekee ambacho kinaweza kuwekwa kwa urahisi katika sehemu hiyo [xtrabackup] yako yangu.cnf ni kigezo target_dir, ambayo kwa chaguo-msingi hubainisha saraka ambapo chelezo zitawekwa. Lakini hii ni hiari.

Mfano wa kubainisha njia ya saraka na nakala ya chelezo ndani yangu.cnf:

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

Hati ya chelezo

Unaweza kutumia hati ifuatayo kuunda nakala rudufu:

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

Ni nini hufanyika wakati wa utekelezaji wa hati?

Kwanza kabisa, tunafuta (kufuta) saraka ambayo tutahifadhi nakala rudufu:

rm -rf /mysql/backup.

Kisha, kwa kutumia matumizi XtraBackup unda nakala rudufu na uihifadhi /mysql/chelezo/:

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

Hapo awali, tuliunda mtumiaji katika MySQL xtrabackup na haki zinazohitajika. Kwa kutumia parameter target-dir tunataja saraka ambapo chelezo inapaswa kuhifadhiwa.

Jambo muhimu!

Kumbuka mstari wa hati:

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

Data ya katalogi /mysql/chelezo haziwiani mpaka ziive. 

Ukweli ni kwamba mabadiliko yanaweza kutokea wakati wa kunakili faili. Operesheni xtrabackup --prepare --target-dir=/mysql/backup hufanya data ya chelezo ifanane kikamilifu baada ya muda.

Unaweza kufanya operesheni ya maandalizi ya data kwenye mashine yoyote. Hakuna haja ya kufanya hivyo kwenye seva ambapo DBMS ya chanzo iko. Unaweza kunakili chelezo kwenye seva inayolengwa na kuitayarisha hapo.

Jambo la mwisho tunalofanya ni kuunda kumbukumbu ambayo tunaweka nakala yetu:

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

Inarejesha nakala rudufu 

Kabla ya kurejesha nakala rudufu kwa seva inayolengwa, data lazima ipitie awamu ya utayarishaji. Tazama hapo juu jinsi ya kufanya hivyo.

Mchakato wa kurejesha data ni rahisi sana. Unahitaji kutoa nakala rudufu kutoka kwa kumbukumbu na ubadilishe data ndani datadir.

Jinsi ya kubadilisha data katika datadir?

Hebu fikiria chaguzi mbili.

Chaguo 1

Tumia matumizi XtraBackup. Unahitaji kutaja chaguo --nakala-nyuma

Amri iliyo hapa chini itahamisha nakala rudufu kwa datadir seva inayolengwa:

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

Chaguo 2

Unaweza kufanya hivyo tofauti, fanya bila matumizi XtraBackup.

Unachohitaji kufanya ni kunakili chelezo kwa datadir. Unaweza kufanya hivi na cp au rsync.

Ni muhimu kuelewa kuwa utaratibu wa kurejesha chelezo hupungua hadi kuchukua nafasi ya yaliyomo kwenye saraka. datadir.

Kabla ya kuanza kurejesha nakala rudufu kwenye seva inayolengwa, lazima:

  • Acha seva ya MySQL.

  • Futa folda datadir au uhamishe yaliyomo kwenye eneo lingine. Katalogi datadir lazima iwe tupu.

Baada ya kukamilisha uhamisho wa data kwa datadir Seva ya MySQL inaweza kuanza.

Vifaa vya kutumika

Nyaraka rasmi percona XtraBackup.

Chanzo: mapenzi.com

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS 🔥 Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster