Tartalomjegyzék
Bevezetés
Előfeltételek
1. lépés: Hozzon létre egy nem root rendszer felhasználót
2. lépés: Ellenőrizze a tárolómotort
3. lépés: Hozzon létre egy adatbázis-felhasználót biztonsági mentéshez
4. lépés: Telepítse a Percona XtraBackup programot
5. lépés: Hozzon létre biztonsági mentési tárolókönyvtárakat
6. lépés: Készítse el az első teljes biztonsági másolatot
7. lépés: Hozza létre a következő növekményes biztonsági másolatokat
8. lépés: Készítsen biztonsági másolatot az adatbázis-visszaállításhoz
9. lépés: Állítsa vissza az adatbázist
Tartalomjegyzék
- Bevezetés
- Előfeltételek
- 1. lépés: Hozzon létre egy nem root rendszer felhasználót
- 2. lépés: Ellenőrizze a tárolómotort
- 3. lépés: Hozzon létre egy adatbázis-felhasználót biztonsági mentéshez
- 4. lépés: Telepítse a Percona XtraBackup programot
- 5. lépés: Hozzon létre biztonsági mentési tárolókönyvtárakat
- 6. lépés: Készítse el az első teljes biztonsági másolatot
- 7. lépés: Hozza létre a következő növekményes biztonsági másolatokat
- 8. lépés: Készítsen biztonsági másolatot az adatbázis-visszaállításhoz
- 9. lépés: Állítsa vissza az adatbázist
- További lépések
Bevezetés
A Percona XtraBackup egy ingyenes MySQL-alapú program, amelyet gyors mentések készítésére használnak. Ez is nyílt forráskódú. A Percona XtraBackup segítségével forró biztonsági mentéseket készíthet a futó MySQL, MariaDB vagy Percona Server adatbázisokról anélkül, hogy leállítaná az adatbázis-szolgáltatást vagy csak olvashatóvá tenné. Ez számos online vállalkozás üzleti szempontból kritikus funkciója.
Az InnoDB, XtraDB és HailDB tárolómotorokat használó adatbázisok esetében a Percona XtraBackup nem blokkoló biztonsági mentéseket tud végezni. A MyISAM, Merge és Archive tárolómotorokat használó adatbázisok esetében a Percona XtraBackup úgy is tud biztonsági másolatot készíteni, hogy a mentési eljárás végén rövid időre leállítja az írást.
Ebben a cikkben bemutatom, hogyan telepítheti és használhatja a Percona XtraBackup-ot teljes és növekményes gyorsmentések végrehajtásához Vultr szerveren az One-Click WordPress alkalmazás alapján. Teljes biztonsági mentést és két növekményes biztonsági mentést végzünk, majd ennek megfelelően visszaállítjuk az adatbázist mindhárom biztonsági másolat állapotába.
Előfeltételek
Feltételezem, hogy a semmiből telepített egy egykattintásos WordPress Vultr szerverpéldányt, és rootként jelentkezett be SSH használatával.
1. lépés: Hozzon létre egy nem root rendszer felhasználót
Biztonsági okokból javasoljuk, hogy hozzon létre egy másik felhasználói fiókot root jogosultságokkal, majd azzal jelentkezzen be, és végezze el a napi műveleteket a rendszeren. A sudoparanccsal továbbra is végrehajthatja szinte az összes szuperfelhasználói parancsot .
1) Hozzon létre egy új felhasználót. Cserélje sysuserki saját felhasználónevével.
useradd sysuser
2) Állítsa be az új felhasználó jelszavát. Cserélje sysuserki saját felhasználónevével.
passwd sysuser
3) Adjon root jogosultságokat az új felhasználónak.
visudo
Keresse meg az alábbi bekezdést.
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
Adjon hozzá egy sort közvetlenül a bekezdés alá, cserélje sysuserle saját felhasználónevére.
sysuser ALL=(ALL) ALL
Mentés és kilépés.
:wq
4) Váltson az új felhasználói fiókra.
logout
Ezután az új felhasználó hitelesítő adataival jelentkezzen be a terminálablakból.
2. lépés: Ellenőrizze a tárolómotort
Alapértelmezés szerint a MySQL root bejelentkezési adatok a VPS-en vannak elmentve /root/.my.cnf. Jelenítse meg a jelszót a terminálban a következő paranccsal.
sudo cat /root/.my.cnf
A képernyőn megjelenő hitelesítő adatok segítségével jelentkezzen be a MySQL konzolba.
mysql -u root -p
A MySQL shellben futtassa a következőt.
SHOW DATABASES;
Az összes MySQL adatbázis megjelenik a képernyőn. A like nevű adatbázis wp5273512a WordPress adatbázis, amelyről biztonsági másolatot szeretnénk készíteni. A következő parancsban cserélje wp5273512ki a saját parancsára :
USE wp5273512;
Ellenőrizze az egyes táblázatok tárolómotorját:
SHOW TABLE STATUS\G
Látni fogja, hogy a WordPress MySQL adatbázisában lévő összes tábla az InnoDB tárolómotort használja, amely tökéletes a Percona XtraBackup segítségével gyors biztonsági mentések készítéséhez.
A MyISAM tárolómotort használó bármely más MySQL adatbázis esetében továbbra is biztonsági másolatot készíthetünk a Percona XtraBackup segítségével az írás rövid szünetelésével.
3. lépés: Hozzon létre egy adatbázis-felhasználót biztonsági mentéshez
Még mindig a MySQL-héjban használja a következő parancsokat egy dedikált adatbázis-felhasználó létrehozásához a biztonsági mentéshez. Ne felejtse el lecserélni az adatbázis felhasználónevét xbuserés jelszavát xbpasswda sajátjára:
CREATE USER 'xbuser'@'localhost' IDENTIFIED BY 'xbpasswd';
GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT, CREATE TABLESPACE, PROCESS, SUPER, CREATE, INSERT, SELECT ON *.* TO 'xbuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
A fent megadott jogosultságok a Percona XtraBackup teljes funkcionalitásához szükségesek. Néhányat eltávolíthat a kevesebb funkcionalitás és a jobb biztonság érdekében. További részletekért lásd a Percona XtraBackup hivatalos webhelyét .
4. lépés: Telepítse a Percona XtraBackup programot
Egyszerűen telepítheti a Percona XtraBackupot a Percona RPM-tárából:
sudo yum install -y http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm
sudo yum install -y percona-xtrabackup
5. lépés: Hozzon létre biztonsági mentési tárolókönyvtárakat
Először is hozzá kell adnia a felhasználót sysusera mysqlcsoporthoz. Cserélje sysuserki saját felhasználónevével.
sudo gpasswd -a sysuser mysql
Hozzon létre egy könyvtárat a teljes biztonsági másolatok tárolására.
sudo mkdir -p /dbbackup/full/
Hozzon létre egy másik könyvtárat a növekményes biztonsági másolatok tárolására.
sudo mkdir -p /dbbackup/inc/
Módosítsa ezen könyvtárak tulajdonosát user sysuserés group értékre sysuser.
sudo chown -R sysuser:sysuser /dbbackup
A változtatások életbe léptetéséhez jelentkezzen ki.
logout
Ezután jelentkezzen be sysuserújra.
6. lépés: Készítse el az első teljes biztonsági másolatot
Az XtraBackup elsősorban az XtraBackup programból és a innobackupexperl szkriptből áll. Általában innobackupexa kényelem kedvéért a perl szkriptet különféle műveletek végrehajtására használhatja.
Írja be a következő parancsot az első teljes biztonsági másolat létrehozásához. Ne felejtse el lecserélni az adatbázis felhasználónevét xbuser, az adatbázis felhasználói jelszavát xbpasswdés a teljes biztonsági mentési könyvtárat /dbbackup/full/a sajátjával.
sudo innobackupex --user=xbuser --password=xbpasswd /dbbackup/full/
Ha ezt a parancsot helyesen hajtja végre, az "innobackupex: kész OK!" megerősítő üzenet jelenik meg. a kimenet utolsó sorában.
Ennek a teljes biztonsági másolatnak az összes újonnan létrehozott fájlja egy időbélyeggel ellátott könyvtárban lesz tárolva a alatt /dbbackup/full/. Például, /dbbackup/full/2015-05-22_05-45-54.
7. lépés: Hozza létre a következő növekményes biztonsági másolatokat
Írja be a következő parancsot az első növekményes biztonsági mentés létrehozásához. Ennek megfelelően helyettesítse be a változókat a parancsban.
sudo innobackupex --user=xbuser --password=xbpasswd --incremental --incremental-basedir=/dbbackup/full/2015-05-22_05-45-54 /dbbackup/inc/
Ismét megjelenik az "innobackupex: kész OK!" a kimenet végén, amikor a parancs sikeresen végrehajtódik. A biztonsági mentési fájlok egy időbélyeggel ellátott könyvtárban lesznek tárolva a alatt /dbbackup/inc/.
Írja be a következő parancsot a második növekményes biztonsági mentés létrehozásához. Cserélje le a változókat a parancsban ennek megfelelően.
sudo innobackupex --user=xbuser --password=xbpasswd --incremental --incremental-basedir=/dbbackup/inc/2015-05-22_05-48-12 /dbbackup/inc/
Siker esetén megjelenik az "innobackupex: kész OK!" ismét üzenetet. Ellenőrizze /dbbackup/inc/újra a mappát a biztonsági másolatok megtekintéséhez.
8. lépés: Készítsen biztonsági másolatot az adatbázis-visszaállításhoz
Az adatbázis visszaállítására való felhasználás előtt minden adatbázis-mentési fájlt elő kell készíteni.
Megjegyzés : Mielőtt végrehajtaná az előkészítési és visszaállítási eljárásokat, jobb, ha a teljes biztonsági mentési könyvtár másolatát (például /dbbackup/) egy másik helyen tárolja arra az esetre, ha a fájlok biztonsági mentése tévedésből megsérülne.
Minden biztonsági mentési könyvtárban található egy nevű fájl, xtrabackup_checkpointsamely tartalmazza a biztonsági mentés típusát, valamint a napló kezdetének és végének sorszámát ( from_lsnés to_lsn). Ezeket a számokat használhatja az adatbázis-visszaállítási stratégia tisztázására. Tekintse meg az alábbi példákat.
Az xtrabackup_checkpointselső teljes biztonsági másolat fájljában a következők vannak:
backup_type = full-backuped
from_lsn = 0
to_lsn = 2932478
Az xtrabackup_checkpointselső növekményes biztonsági mentés fájljában a következők vannak:
backup_type =incremental
from_lsn = 2932478
to_lsn = 2970177
A xtrabackup_checkpointsmásodik növekményes biztonsági mentés fájljában a következők vannak:
backup_type = incremental
from_lsn = 2970177
to_lsn = 3004672
Röviden, minden biztonsági mentést az lsn növekvő sorrendjével kell kezelnie. Ha az lsn szekvencia hiányos vagy rendezetlen, adatvesztést okozhat.
Megjegyzés : A következő parancsok három könyvtárat foglalnak magukban, cserélje ki őket a sajátjaira.
Az adatbázis visszaállításához az első teljes biztonsági másolat állapotába, elő kell készítenie a biztonsági mentési fájlokat a következő paranccsal:
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54
Az adatbázisnak az első növekményes biztonsági mentés állapotának visszaállításához a következő parancsokkal kell előkészítenie a biztonsági mentési fájlokat:
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54
Az adatbázis visszaállításához a második növekményes biztonsági mentés állapotába, elő kell készítenie a biztonsági mentési fájlokat a következő parancsokkal:
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54
sudo innobackupex --apply-log --redo-only /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-48-12
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54 --incremental-dir=/dbbackup/inc/2015-05-22_05-51-32
sudo innobackupex --apply-log /dbbackup/full/2015-05-22_05-45-54
Megjegyzések :
Növekményes biztonsági mentések esetén --redo-onlyaz utolsó növekményes mentés kivételével az összesnél használja a lehetőséget. Ennek ellenére az utolsó növekményes biztonsági mentésnél ennek a lehetőségnek a használata továbbra is ártalmatlan az adatok konzisztenciájára – az adatbázis-visszaállítás miatt csak némi késést okoz.
Az egyes növekményes forgatókönyvek utolsó parancsa nem kötelező, de ajánlott, mert felgyorsítja a visszaállítást.
Az előkészítés után a növekményes biztonsági mentési fájlokban rögzített változtatások hozzá lesznek fűzve az elkészített alap teljes biztonsági mentési fájlokhoz, így az adatbázis visszaállításához mindig az előkészített teljes biztonsági másolat fájlokat kell használni, függetlenül attól, hogy teljes vagy növekményes biztonsági mentést választ.
9. lépés: Állítsa vissza az adatbázist
Az adatbázis visszaállítása előtt le kell állítani az adatbázis-szolgáltatást.
sudo service mysqld stop
Az adatbázis-könyvtárat is ki kell üríteni. Elővigyázatosságból áthelyezheti az aktuális adatbázisfájlokat egy másik helyre.
sudo mkdir /currentdb
sudo mv /var/lib/mysql/* /currentdb
Állítsa vissza adatbázisát az előkészített „teljes biztonsági másolat” fájlokkal.
sudo innobackupex --copy-back /dbbackup/full/2015-05-22_05-45-54
Mivel a visszaállítási eljárás módosítja az adatbázis-címtár tulajdonosát, vissza kell mysql:mysqlállítania a következőre, hogy működőképes legyen.
sudo chown -R mysql:mysql /var/lib/mysql
Indítsa újra az adatbázis-szolgáltatást.
sudo service mysqld start
Ez az. Ezen a ponton meglátogathatja WordPress webhelyét, és ellenőrizheti, hogy a visszaállítási folyamat sikeres volt-e.