MySQL biztonsági másolat létrehozása az XtraBackup segédprogram segítségével

Percona XtraBackup — egy olyan eszköz, amely lehetővé teszi az adatbázisok forró mentését MySQL.

Az adatok mentése alatt a táblák nem kerülnek zárolásra, így a rendszer zavartalanul működik mindenféle korlátozás nélkül.

XtraBackup 2.4 táblák mentésére képes InnoDB, XtraDB és MyISAM szolgáltatók MySQL 5.11, 5.5, 5.6 és 5.7, és továbbá a Percona a MySQL a XtraDB.

A MySQL 8.x verzióját kell használni XtraBackup 8.x-nek. Ebben a cikkben kizárólag a XtraBackup 2.4-ről lesz szó.

A fő előny XtraBackup előnye abban rejlik, hogy ez az eszköz alkalmas mind a nagy terhelésű, szerverek, mind az alacsony tranzakciószámú rendszerek számára.

Ha a MySQL adatbázisainak összes mérete jelentős (tíz vagy több gigabájt), akkor a standard eszköz mysqldump nem teszi lehetővé a gyors mentést, és a dump visszaállítása sok időt vesz igénybe.

Telepítés

Telepítés XtraBackup from the repository apt Percona.

Futtasd az alábbi parancsokat:

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. A telepítés után futtasd a parancsot xtrabackup -v. Fontos, hogy biztos legyél benne, hogy az eszköz megfelelően működik a szerveren. Az eredmény a képernyőn valami ilyesmire hasonlít:

xtrabackup: felismert szerver paraméterek: — 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 based on MySQL server 5.7.26 Linux (x8664) (revision id: c8b4056)

MySQL biztonsági másolat létrehozása az XtraBackup segédprogram segítségével

Hozzáférési jogok, engedélyek és jogosultságok 

XtraBackup-nak képesnek kell lennie a következőkre:

  • Csatlakozni a MySQL szerveredhez.

  • Hozzáférési jogokkal kell rendelkeznie a datadir. 

  • mappához. A mentés során írási jogosultsággal kell rendelkeznie a megadott target-dir

mappához.

datadir Mi az a datadir? MySQL — az a mappa, ahol az adatbázis szerver tárolja az adatokat. Minden adatbázis, minden tábla ott található. A legtöbb Linux disztribúció esetén alapértelmezés szerint ez a mappa /var/lib/mysql.

Mi az a target-dir mappa?

A mentés során írási jogosultsággal kell rendelkeznie a megadott — az a mappa, ahová a mentés kerül.

A felhasználónak a mentésre szánt táblákhoz és adatbázisokhoz a következő jogosultságokra van szüksége:

  • RELOAD és LOCK TABLES

  • REPLICATION CLIENT

  • CREATE TABLESPACE

  • PROCESS

  • SUPER

  • CREATE

  • INSERT

  • SELECT

Konfiguráció 

Konfiguráció XtraBackup a MySQL szokásos paramétereivel megegyező módon, amelyek ugyanúgy működnek.

Mit is jelent ez?

A konfigurációs beállításokat meg lehet adni vagy a parancssorban, vagy a DBMS konfigurációs fájljában, például a /etc/my.cnf.

Az XtraBackup segédprogram elindítása után beolvassa a szakaszokat [mysqld] és [xtrabackup] a MySQL konfigurációs fájlokból. Erre azért van szükség, hogy a segédprogram a DBMS beállításait használhassa anélkül, hogy minden egyes biztonsági mentéskor manuálisan kellene megadni a paramétereket.

Például az érték datadir és néhány paraméter InnoDB az XtraBackup-ban a DBMS konfigurációjából származik.

Ha az XtraBackup működéséhez szeretné felülbírálni a paramétereket, amelyek a szakaszban találhatók [mysqld], akkor egyszerűen adja meg őket a konfigurációs fájlban a szakaszban [xtrabackup]. Mivel azokat később olvassák be, a prioritásuk magasabb lesz.

Nem szükséges semmilyen paramétert hozzáadnia a my.cnf-hez. Minden szükséges paramétert meg lehet adni a parancssorban. Általában az egyetlen dolog, amit kényelmesen a szakaszban elhelyezhet, [xtrabackup] az Ön my.cnf — ez a paraméter target_dir, amely alapértelmezés szerint meghatározza a könyvtárat, ahová a biztonsági mentések kerülnek. De ez nem kötelező.

Példa a biztonsági másolat könyvtárának útvonalának megadására a my.cnf:

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

Biztonsági másolat készítési forgatókönyv

A biztonsági másolat elkészítéséhez a következő forgatókönyvet használhatja:

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

Mi történik a forgatókönyv végrehajtása során?

Először töröljük (eltávolítjuk) azt a könyvtárat, ahová a biztonsági másolatot menteni fogjuk:

rm -rf /mysql/backup.

Ezután, a segédprogram segítségével XtraBackup készítünk egy biztonsági másolatot, és elmentjük a következő helyre /mysql/backup/:

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

Előzetesen MySQL-ben létrehoztunk egy felhasználót xtrabackup a szükséges jogkörökkel. A paraméter segítségével A mentés során írási jogosultsággal kell rendelkeznie a megadott megadjuk a könyvtárat, ahová a biztonsági másolatot el kell menteni.

Fontos megjegyzés!

Figyeljen a forgatókönyv sorára:

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

Az adatok a könyvtárban /mysql/backup nem konzisztens állapotúak, amíg el nem készítik őket. 

Az a helyzet, hogy a fájlok másolása során változások történhettek. A művelet xtrabackup --prepare --target-dir=/mysql/backup ideálisan összehangolja az időben a biztonsági másolat adatait.

Az adatok előkészítésének művelete bármely gépen elvégezhető. Nincs szükség arra, hogy ezt a szerveren végezzük, ahol a forrás DBMS található. A biztonsági másolatot átmásolhatja a célszerverre, és ott elő készítheti.

Az utolsó lépésben archívumot készítünk, amelybe elhelyezzük a biztonsági másolatunkat:

tar -zcvf /home/developer/dumps/xtrabackup-all-dbs-«$(date +%F_%H_%M_%S)».gz /mysql/backup

Biztonsági mentés helyreállítása 

Mielőtt elkezdené a biztonsági másolat helyreállítását a célszerveren, az adatoknak előkészítési lépésen kell átesniük. Hogy ezt hogyan kell megtenni, lásd fent.

Az adataink helyreállítási folyamata nagyon egyszerű. Ki kell csomagolni a biztonsági másolatot az archívumból, és fel kell cserélni az adatokat a datadir.

Hogyan cseréljük ki az adatokat a datadir-ban?

Két lehetőséget veszünk figyelembe.

1. lehetőség

Használja az eszközt XtraBackup. Meg kell adni a következő opciót --copy-back. 

Az alábbi parancs áthelyezi a biztonsági másolatot a datadir célszerverre:

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

2. lehetőség

Más módon is eljárhat, az eszköz nélkül is XtraBackup.

Mindez annyit jelent, hogy a biztonsági másolatot át kell másolni datadir. Ezt megteheti a cp vagy rsync.

Fontos megérteni, hogy a biztonsági másolat helyreállítási eljárása valójában a könyvtár tartalmának cseréjére korlátozódik. datadir.

A biztonsági másolat helyreállítása előtt a célszerveren az alábbiakat kell tennie:

  • Állítsa le a MySQL szervert.

  • Tisztítsa meg a mappát datadir vagy húzza át a tartalmát egy másik helyre. A könyvtárnak datadir üresnek kell lennie.

A másolás befejezése után a datadir MySQL szervert el lehet indítani.

Felhasználásra kerülő anyagok

Hivatalos dokumentáció Percona XtraBackup.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster