Skep 'n MySQL-rugsteun met die XtraBackup-nutsding

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 InnoDBXtraDB и 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)

Skep 'n MySQL-rugsteun met die XtraBackup-nutsding

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

Amptelike dokumentasie percona XtraBackup.

Bron: will.com

Voeg 'n opmerking