Percona XtraBackup is 'n nut vir warm databasis-rugsteun MySQL.
Wanneer 'n data-rugsteun geskep word, word geen tabelle gesluit nie, en jou stelsel gaan voort om sonder enige beperkings te werk.
XtraBackup 2.4 kan rugsteunkopieë van tabelle skep InnoDB, XtraDB и MyISAM op bedieners MySQL 5.11, 5.5, 5.6 en 5.7, en ook op die bediener percona vir MySQL с XtraDB.
Om mee te werk MySQL 8.x weergawe gebruik moet word XtraBackup 8.x. Hierdie artikel sal net praat oor XtraBackup 2.4.
Die grootste voordeel XtraBackup is dat hierdie hulpmiddel geskik is vir die skep van rugsteun van hoogs gelaaide bedieners en vir stelsels met 'n lae aantal transaksies.
As die totale grootte van jou MySQL-databasisse beduidend is (tiene gigagrepe), dan is die standaardhulpmiddel mysqldump sal jou nie toelaat om vinnig 'n rugsteunkopie te skep nie, en die herstel van die storting sal baie tyd neem.
installasie
installasie XtraBackup uit die bewaarplek bekwaam Percona.
Voer die volgende opdragte opeenvolgend uit:
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. Na die installasie, voer die opdrag uit xtrabackup -v
. Aangesien dit belangrik is om seker te maak dat die hulpprogram korrek op die bediener werk. As gevolg hiervan sal iets soos hierdie op die skerm vertoon word:
xtrabackup: herkende bedienerargumente: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup weergawe 2.4.20 gebaseer op MySQL-bediener 5.7.26 Linux (x8664) (hersiening-ID: c8b4056)
Toegangsregte, toestemmings en voorregte
XtraBackup behoort in staat te wees om:
-
Koppel aan jou MySQL-bediener.
-
Het toegangsregte tot die gids datadir.
-
Wanneer u 'n rugsteunkopie skep, moet u skryfregte op die gespesifiseerde parameter hê teiken-dir katalogus.
Wat is datadir?
datadir is die gids waar die databasisbediener MySQL stoor data. Alle databasisse, alle tabelle is daar. Op die meeste Linux-verspreidings is die verstekgids /var/lib/mysql.
Wat is target-dir-gids?
teiken-dir - Dit is die gids waar die rugsteun gestoor sal word.
Die databasisgebruiker benodig die volgende toegangsregte tot die tabelle en databasisse om gerugsteun te word:
-
HERLAAI en SLUIT TAFELS
-
REPLIKASIE KLIËNT
-
SKEP TAFELRUIM
-
PROSES
-
SUPER
-
SKEP
-
INSERT
-
KIES
opset
opset XtraBackup gedoen met behulp van opsies wat dieselfde optree as standaard MySQL-opsies.
Wat beteken dit?
Konfigurasieparameters kan óf op die opdragreël óf in die DBMS-konfigurasielêer gespesifiseer word, byvoorbeeld in /ens/my.cnf.
XtraBackup-nutsding lees partisies na bekendstelling [Mysqld] и [xtrabackup] van MySQL-konfigurasielêers. Dit word gedoen sodat die hulpprogram die instellings van jou DBBS kan gebruik sonder om die parameters met die hand tydens elke rugsteun te spesifiseer.
Byvoorbeeld, die waarde datadir en sommige parameters InnoDB Ons kry XtraBackup uit die konfigurasie van jou DBBS.
As vir XtraBackup om te werk, wil jy die parameters wat in die afdeling is ignoreer [Mysqld], spesifiseer hulle dan net in die konfigurasielêer in die afdeling [xtrabackup]. Aangesien hulle later gelees sal word, sal hul prioriteit hoër wees.
Jy hoef geen parameters by te voeg nie my.cnf. Alle vereiste parameters kan op die opdragreël gespesifiseer word. Gewoonlik die enigste ding wat gerieflik in die afdeling geplaas kan word [xtrabackup] jou syne my.cnf is 'n parameter target_dir, wat by verstek die gids spesifiseer waar rugsteun geplaas sal word. Maar dit is opsioneel.
'n Voorbeeld van die spesifikasie van die pad na die gids met 'n rugsteunkopie in my.cnf:
[xtrabackup]
target_dir = /data/backups/mysql/
Rugsteun skrif
Jy kan die volgende skrip gebruik om 'n rugsteun te skep:
#!/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
Wat gebeur tydens skripuitvoering?
Eerstens vee ons die gids uit (vee uit) waarin ons die rugsteunkopie sal stoor:
rm -rf /mysql/backup.
Gebruik dan die hulpprogram XtraBackup skep 'n rugsteunkopie en stoor dit in /mysql/rugsteun/:
xtrabackup --user=xtrabackup --password=xxxxz1cYf95550Gc6xxxxxxxpE3rB03xxxx --backup --target-dir=/mysql/backup
Voorheen het ons 'n gebruiker in MySQL geskep xtrabackup
met die nodige voorregte. Gebruik die parameter target-dir
ons spesifiseer die gids waar die rugsteun gestoor moet word.
'N Belangrike punt!
Let op die skrifreël:
xtrabackup --prepare --target-dir=/mysql/backup
Katalogus data /mysql/rugsteun is nie konsekwent totdat hulle gaar is nie.
Die feit is dat veranderinge kan plaasvind tydens die kopiëring van lêers. Operasie xtrabackup --prepare --target-dir=/mysql/backup
maak rugsteundata perfek konsekwent oor tyd.
U kan die datavoorbereiding op enige masjien uitvoer. Dit is nie nodig om dit te doen op die bediener waar die bron-DBMS geleë is nie. U kan die rugsteun na die teikenbediener kopieer en dit daar voorberei.
Die laaste ding wat ons doen is om 'n argief te skep waarin ons ons rugsteun plaas:
tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date % F% H% M% S)».gz /mysql/backup
Herstel tans 'n rugsteun
Voordat jy 'n rugsteun na die teikenbediener kan herstel, moet die data deur 'n voorbereidingsfase gaan. Sien hierbo vir hoe om dit te doen.
Die dataherwinningsproses is baie eenvoudig. Jy moet die rugsteun uit die argief onttrek en die data in vervang datadir.
Hoe om data in datadir te vervang?
Kom ons kyk na twee opsies.
Opsie 1
Gebruik die nut XtraBackup. Jy moet 'n opsie spesifiseer --kopie-terug.
Die opdrag hieronder sal die rugsteun oordra na datadir teiken bediener:
xtrabackup --copy-back --target-dir=/mysql/backup
Opsie 2
Jy kan dit anders doen, doen sonder die nut XtraBackup.
Al wat jy hoef te doen is om die rugsteun na te kopieer datadir. Jy kan dit doen met cp of rsync.
Dit is belangrik om te verstaan dat die prosedure vir die herstel van 'n rugsteun neerkom op die vervanging van die inhoud van die gids datadir.
Voordat jy begin om 'n rugsteun op die teikenbediener te herstel, moet jy:
-
Stop MySQL-bediener.
-
Vee vouer uit datadir of skuif die inhoud daarvan na 'n ander plek. Katalogus datadir moet leeg wees.
Na voltooiing van die data-oordrag na datadir MySQL-bediener kan begin word.
Materiaal wat gebruik word
Bron: will.com