MySQL biztonsági másolat készítése az XtraBackup segédprogrammal

Percona XtraBackup egy segédprogram forró adatbázis-mentésekhez MySQL.

Adatmentés létrehozásakor egyetlen tábla sem zárolódik, és a rendszer korlátozások nélkül működik tovább.

XtraBackup 2.4 biztonsági másolatot készíthet a táblázatokról InnoDBXtraDB и MyISAM szervereken MySQL 5.11, 5.5, 5.6 és 5.7, és a szerveren is percona a MySQL с XtraDB.

Valakivel együtt dolgozni MySQL 8.x verziót kell használni XtraBackup 8.x. Ebben a cikkben csak erről lesz szó XtraBackup 2.4.

A fő előnye XtraBackup az, hogy ez a segédprogram alkalmas a nagy terhelésű fájlok biztonsági másolatainak létrehozására szervereket, valamint alacsony tranzakciószámú rendszerek esetében.

Ha a MySQL adatbázisok teljes mérete jelentős (tíz gigabájt), akkor a szabványos segédprogram mysqldump nem teszi lehetővé a biztonsági másolat gyors létrehozását, és a dump visszaállítása sok időt vesz igénybe.

Telepítés

Telepítés XtraBackup az adattárból hajlamos Percona.

Futtassa egymás után a következő 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 futtassa a parancsot xtrabackup -v. Mivel fontos megbizonyosodni arról, hogy a segédprogram megfelelően működik a szerveren. Ennek eredményeként valami ehhez hasonló jelenik meg a képernyőn:

xtrabackup: felismert szerver argumentumok: - datadir=/var/lib/mysql - tmpdir=/tmp - server-id=1 - logbin=/var/log/mysql/mysql-bin.log - innodbbufferpoolsize=16384M - innodbfilepertable=1 - innodbflushmethod=Odirect - innodbflushlogattrxcommit=0xtrabackup 2.4.20 verzió a MySQL szerver 5.7.26 alapján Linux (x8664) (verzióazonosító: c8b4056)

MySQL biztonsági másolat készítése az XtraBackup segédprogrammal

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

Az XtraBackupnak képesnek kell lennie:

  • Csatlakozzon a MySQL szerverhez.

  • Hozzáférési jogokkal kell rendelkeznie a címtárhoz adatkönyvtár

  • Biztonsági másolat készítésekor legyen írási joga a megadott paraméterhez cél-dir katalógus.

Mi az a datadir?

adatkönyvtár az a könyvtár, ahol az adatbázis-kiszolgáló található MySQL adatokat tárol. Minden adatbázis, minden tábla ott található. A legtöbb disztribúcióban Linux Alapértelmezés szerint ez a könyvtár / var / lib / mysql.

Mi az a target-dir könyvtár?

cél-dir - Ez az a könyvtár, ahová a biztonsági másolat mentésre kerül.

Az adatbázis-felhasználónak a következő hozzáférési jogokra van szüksége a táblákhoz és adatbázisokhoz a biztonsági mentéshez:

  • A TÁBLÁZATOK ÚJRATÖLTÉSE és ZÁROLÁSA

  • REPLIKÁCIÓS KLIENS

  • ASZTALTERÜLET LÉTREHOZÁSA

  • FOLYAMAT

  • SUPER

  • TEREMT

  • INSERT

  • SELECT

Configuration 

Configuration XtraBackup olyan opciókkal történik, amelyek ugyanúgy viselkednek, mint a szokásos MySQL-beállítások.

Mit jelent ez?

A konfigurációs paraméterek a parancssorban vagy a DBMS konfigurációs fájlban adhatók meg, például in /etc/my.cnf.

Az XtraBackup segédprogram beolvassa a partíciókat az indítás után [Mysqld] и [xtrabackup] a MySQL konfigurációs fájlokból. Ez azért történik, hogy a segédprogram anélkül tudja használni a DBMS beállításait, hogy manuálisan kellene megadnia a paramétereket minden biztonsági mentés során.

Például az érték adatkönyvtár és néhány paraméter InnoDB Az XtraBackupot a DBMS konfigurációjából kapjuk.

Ha az XtraBackup működéséhez felül szeretné bírálni a szakaszban szereplő paramétereket [Mysqld], majd csak adja meg őket a szakasz konfigurációs fájljában [xtrabackup]. Mivel később lesznek elolvasva, nagyobb prioritást élveznek.

Nem kell hozzá semmilyen paramétert hozzáadni my.cnf. Minden szükséges paraméter megadható a parancssorban. Általában az egyetlen dolog, ami kényelmesen elhelyezhető a szekcióban [xtrabackup] az övé my.cnf egy paraméter cél_könyvtár, amely alapértelmezés szerint azt a könyvtárat adja meg, ahová a biztonsági másolatok kerülnek. De ez nem kötelező.

Példa a könyvtár elérési útjának megadására biztonsági másolattal my.cnf:

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

Biztonsági szkript

Biztonsági másolat készítéséhez használhatja a következő szkriptet:

#!/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 szkript végrehajtása során?

Először is töröljük (töröljük) azt a könyvtárat, amelybe a biztonsági másolatot mentjük:

rm -rf /mysql/backup.

Ezután a segédprogram használatával XtraBackup készítsen biztonsági másolatot, és mentse el /mysql/backup/:

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

Korábban létrehoztunk egy felhasználót a MySQL-ben xtrabackup a szükséges jogosultságokkal. A paraméter használatával target-dir megadjuk a könyvtárat, ahová a biztonsági másolatot menteni kell.

Важный момент!

Jegyezze meg a script sort:

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

Katalógus adatok /mysql/backup nem egyenletesek, amíg meg nem főzték. 

A tény az, hogy a fájlok másolása közben változások történhetnek. Művelet xtrabackup --prepare --target-dir=/mysql/backup tökéletesen konzisztenssé teszi a biztonsági mentési adatokat az idő múlásával.

Az adat-előkészítési műveletet bármilyen gépen elvégezheti. Ezt nem kell megtenni azon a kiszolgálón, ahol a forrás DBMS található. A biztonsági másolatot átmásolhatja a célkiszolgálóra, és ott előkészítheti.

Az utolsó dolgunk, hogy létrehozunk egy archívumot, amelyben elhelyezzük a biztonsági másolatot:

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

Biztonsági másolat visszaállítása 

Mielőtt visszaállíthatná a biztonsági másolatot a célkiszolgálóra, az adatoknak át kell menniük egy előkészítési fázison. Ennek módját lásd fent.

Az adat-helyreállítási folyamat nagyon egyszerű. Ki kell bontania a biztonsági másolatot az archívumból, és ki kell cserélnie az adatokat adatkönyvtár.

Hogyan lehet adatokat cserélni a datadirben?

Vegyünk két lehetőséget.

Az 1 opció

Használja a segédprogramot XtraBackup. Meg kell adnia egy lehetőséget --másolás-vissza

Az alábbi parancs átviszi a biztonsági másolatot ide adatkönyvtár célszerver:

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

Az 2 opció

Megteheti másként is, a segédprogram nélkül XtraBackup.

Mindössze annyit kell tennie, hogy másolja a biztonsági másolatot ide adatkönyvtár. Ezzel megteheti cp vagy rsync.

Fontos megérteni, hogy a biztonsági mentés visszaállításának folyamata csak a könyvtár tartalmának cseréjére terjed ki. adatkönyvtár.

Mielőtt elkezdené a biztonsági másolat visszaállítását a célkiszolgálón, a következőket kell tennie:

  • Állítsa le a MySQL szervert.

  • Mappa törlése adatkönyvtár vagy helyezze át a tartalmát egy másik helyre. Katalógus adatkönyvtár üresnek kell lennie.

Az adatátvitel befejezése után a adatkönyvtár A MySQL szerver elindítható.

Használt anyagok

Hivatalos dokumentáció percona XtraBackup.

Forrás: will.com

Vásároljon megbízható tárhelyet DDoS védelemmel, VPS VDS szerverekkel rendelkező webhelyekhez 🔥 Vásároljon megbízható weboldal tárhelyet DDoS védelemmel, VPS VDS szerverekkel | ProHoster