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-242. 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)

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/backupMi 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/backupElő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/backupBiztonsá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/backup2. 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
.
Forrás: habr.com
