MySQL-varmuuskopion luominen XtraBackup-apuohjelmalla

Percona XtraBackup on apuohjelma kuumaan tietokannan varmuuskopiointiin MySQL.

Tietojen varmuuskopiota luotaessa yhtään taulukkoa ei lukita, ja järjestelmäsi jatkaa toimintaansa ilman rajoituksia.

XtraBackup 2.4 voi luoda varmuuskopioita taulukoista InnoDBXtraDB и MyISAM palvelimilla MySQL 5.11, 5.5, 5.6 ja 5.7, ja myös palvelimella percona varten MySQL с XtraDB.

Työskennellä jonkun kanssa MySQL 8.x versiota tulee käyttää XtraBackup 8.x. Tässä artikkelissa puhutaan vain XtraBackup 2.4.

Tärkein etu XtraBackup Tämä apuohjelma soveltuu sekä varmuuskopioiden luomiseen erittäin kuormitetuista palvelimista että järjestelmiin, joissa on vähän tapahtumia.

Jos MySQL-tietokantojesi kokonaiskoko on merkittävä (kymmeniä gigatavuja), tavallinen apuohjelma mysqldump ei anna sinun luoda nopeasti varmuuskopiota, ja vedosten palauttaminen vie paljon aikaa.

Asennus

Asennus XtraBackup arkistosta osuva Percona.

Suorita seuraavat komennot peräkkäin:

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. Asennuksen jälkeen suorita komento xtrabackup -v. Siksi on tärkeää varmistaa, että apuohjelma toimii oikein palvelimella. Tämän seurauksena näytöllä näkyy jotain tämän kaltaista:

xtrabackup: tunnistetut palvelinargumentit: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect — innodbflushlogattrxcommit=0xtrabackup-versio 2.4.20 perustuu MySQL-palvelimeen 5.7.26 Linux (x8664) (versiotunnus: c8b4056)

MySQL-varmuuskopion luominen XtraBackup-apuohjelmalla

Käyttöoikeudet, käyttöoikeudet ja oikeudet 

XtraBackupin pitäisi pystyä:

  • Yhdistä MySQL-palvelimeesi.

  • Sinulla on käyttöoikeudet hakemistoon DATADIR

  • Kun luot varmuuskopiota, sinulla on kirjoitusoikeudet määritettyyn parametriin kohde-dir luettelo.

Mikä on datadir?

DATADIR on hakemisto, jossa tietokantapalvelin MySQL tallentaa tietoja. Kaikki tietokannat, kaikki taulukot ovat siellä. Useimmissa Linux-jakeluissa oletushakemisto on / var / lib / mysql.

Mikä on target-dir-hakemisto?

kohde-dir - Tämä on hakemisto, johon varmuuskopio tallennetaan.

Tietokannan käyttäjä tarvitsee seuraavat käyttöoikeudet taulukoihin ja tietokantoihin varmuuskopioidakseen:

  • LATAA UUDELLEEN ja LUKITTA PÖÖDÄT

  • TOISTUSASIAKAS

  • LUO PÖYTÄTILA

  • KÄSITELLÄ ASIAA

  • SUPER

  • LUODA

  • INSERT

  • VALITSE

kokoonpano 

kokoonpano XtraBackup tehdään käyttämällä valintoja, jotka toimivat samalla tavalla kuin tavalliset MySQL-asetukset.

Mitä tämä tarkoittaa?

Konfigurointiparametrit voidaan määrittää joko komentorivillä tai DBMS-määritystiedostossa, esimerkiksi in /etc/my.cnf.

XtraBackup-apuohjelma lukee osiot käynnistyksen jälkeen [Mysqld] и [xtrabackup] MySQL-määritystiedostoista. Tämä tehdään, jotta apuohjelma voi käyttää DBMS-asetuksiasi ilman, että parametreja on määritettävä manuaalisesti jokaisen varmuuskopioinnin aikana.

Esimerkiksi arvo DATADIR ja joitain parametreja InnoDB Saamme XtraBackupin DBMS:si määrityksistä.

Jos haluat, että XtraBackup toimisi, haluat ohittaa osiossa olevat parametrit [Mysqld], määritä ne sitten osion asetustiedostossa [xtrabackup]. Koska ne luetaan myöhemmin, niiden prioriteetti on korkeampi.

Sinun ei tarvitse lisätä mitään parametreja my.cnf. Kaikki vaaditut parametrit voidaan määrittää komentorivillä. Yleensä ainoa asia, joka voidaan kätevästi sijoittaa osastoon [xtrabackup] teidän my.cnf on parametri kohdehakemisto, joka määrittää oletusarvoisesti hakemiston, johon varmuuskopiot sijoitetaan. Mutta tämä on valinnaista.

Esimerkki polun määrittämisestä hakemistoon, jossa on varmuuskopio my.cnf:

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

Varmuuskopiointi

Voit käyttää seuraavaa komentosarjaa varmuuskopion luomiseen:

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

Mitä tapahtuu skriptin suorittamisen aikana?

Ensinnäkin tyhjennämme (poistamme) hakemiston, johon tallennamme varmuuskopion:

rm -rf /mysql/backup.

Sitten apuohjelman avulla XtraBackup luo varmuuskopio ja tallenna se /mysql/backup/:

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

Aiemmin loimme käyttäjän MySQL:ssä xtrabackup vaadituilla oikeuksilla. Parametrin käyttäminen target-dir määritämme hakemiston, johon varmuuskopio tulee tallentaa.

Tärkeä asia!

Huomaa skriptirivi:

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

Katalogin tiedot /mysql/backup eivät ole yhdenmukaisia ​​ennen kuin ne ovat kypsennettyjä. 

Tosiasia on, että muutoksia voi tapahtua kopioitaessa tiedostoja. Operaatio xtrabackup --prepare --target-dir=/mysql/backup tekee varmuuskopiotiedoista täydellisen yhdenmukaisia ​​ajan kuluessa.

Voit suorittaa tietojen valmistelutoiminnon millä tahansa koneella. Tätä ei tarvitse tehdä palvelimella, jossa lähdetietokantajärjestelmä sijaitsee. Voit kopioida varmuuskopion kohdepalvelimelle ja valmistella sen siellä.

Viimeinen asia, jonka teemme, on luoda arkisto, johon sijoitamme varmuuskopiomme:

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

Varmuuskopion palauttaminen 

Ennen kuin voit palauttaa varmuuskopion kohdepalvelimelle, tietojen on läpäistävä valmisteluvaihe. Katso edellä, kuinka tämä tehdään.

Tietojen palautusprosessi on hyvin yksinkertainen. Sinun on purettava varmuuskopio arkistosta ja korvattava tiedot DATADIR.

Kuinka korvata tiedot datahakemistossa?

Harkitse kahta vaihtoehtoa.

Vaihtoehto 1

Käytä apuohjelmaa XtraBackup. Sinun on määritettävä vaihtoehto --kopioi takaisin

Alla oleva komento siirtää varmuuskopion kohteeseen DATADIR kohdepalvelin:

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

Vaihtoehto 2

Voit tehdä sen toisin, ilman apuohjelmaa XtraBackup.

Sinun tarvitsee vain kopioida varmuuskopio kohteeseen DATADIR. Voit tehdä tämän kanssa cp tai rsync.

On tärkeää ymmärtää, että varmuuskopion palautusprosessi tiivistyy vain hakemiston sisällön korvaamiseen DATADIR.

Ennen kuin aloitat varmuuskopion palauttamisen kohdepalvelimella, sinun on:

  • Pysäytä MySQL-palvelin.

  • Tyhjennä kansio DATADIR tai siirrä sen sisältö toiseen paikkaan. Luettelo DATADIR on oltava tyhjä.

Kun tiedonsiirto on valmis DATADIR MySQL-palvelin voidaan käynnistää.

käytetyt materiaalit

Virallinen dokumentaatio percona XtraBackup.

Lähde: will.com

Lisää kommentti