A rendszeres biztonsági másolat készítése minden típusú adathoz nélkülözhetetlen eljárás. Ez az oktatóanyag megismerheti a MySQL adatbázis biztonsági mentésének és visszaállításának a leggyakrabban használt eszközeivel.
Először csatlakozzon a szerverhez SSH kapcsolaton keresztül. Ha még nem tette meg, akkor ajánlott átböngésznie a Hogyan javítható az SSH biztonság az Ubuntu 18.04-en? útmutatónkat a folyamat megkezdése előtt. Helyi szerver esetén folytassa a következő lépéssel, és nyissa meg a szerver terminált.
A mysqldump használata
A Mysqldump olyan alkalmazás, amely mindig elérhető minden MySQL telepítésben, és lehetővé teszi adatainak teljes kiírását szöveges formátumban.
A parancs szintaxisa a következő:
$ mysqldump -u [username] -p [database] > backup.sql
A parancs futtatásával megkapja a teljes adatbázis-biztonsági mentést, amelyet a backup.sql fájl jelez.
A biztonsági mentés visszaállításához használja a MySQL klienst az alábbiak szerint:
$ mysql -u [username] -p [database] < backup.sql
Az adatbázis méretétől függően ezek a biztonsági mentési fájlok jelentős méretűre nőhetnek, megnehezítve ezzel a továbbítást vagy másolást. Az adatbázis biztonsági mentésének méretének optimalizálásához használja a gzip tömörítést:
$ mysqldump -u [username] -p [database] | gzip > backup.sql.gz
Ha szeretné, akkor automatikusan hozzáadhatja az aktuális dátumot a fájlnévhez a következők használatával:
$ mysqldump -u [username] -p [database] | gzip > backup_$(date +%F.%H%M%S).sql.gz
A visszaállításhoz használja az alábbi szintaxist:
$ mysql -u [username] -p [database] < backup.sql
Megjegyzések a mysqldumpról:
Jó szem előtt tartani, hogy egy adatbázis eltárolása és mentése során a mysqldump nem garantálja az adatok konzisztenciáját a táblázatok között. Ha az írási műveletek történnek a biztonsági mentés során, akkor a kapott biztonsági másolat részleges és / vagy sérült lehet.
A probléma elkerülése érdekében az alkalmazás speciális lehetőségeket kínál:
-
--lock-all-tables: blokkolja az összes írási műveletet az összes adatbázis összes tábláján,
-
--lock-tables: ez az opció ehelyett beállítja az adatbázis-tábla biztonsági másolatát írásvédett módban.
A választható lehetőségek attól függenek, hogy több adatbázishoz kapcsolódó adatok vannak-e vagy sem. A legtöbb esetben a --lock-tables az ideális megoldás az egyes adatbázisok integritásának garantálására.
A mysqldump automatizálása crontabon keresztül
A biztonsági mentés rendszeres időközönként történő elkészítéséhez mindössze annyit kell tennie, hogy hozzáadja a rendszer crontab-jához, például a napi egyszeri mentéssel. Először nyissa meg a crontabot a következő lépéssel:
Most adjon hozzá egy sort a fájl végéhez az alábbiak szerint:
00 23 * * * mysqldump -u [username] -p [database] | gzip > /home/utente/backup.sql.gz
A fájl mentésével a rendszer naponta egy biztonsági másolatot készít (11:00 órakor) a felhasználói könyvtárban, minden nap felülírva az előző biztonsági másolatot.
Az automysqlbackup használata
A biztonsági mentések manuális exportálásával történő mysqldump használatán kívül az iparág egyik legnépszerűbb segédprogramjára is támaszkodhat: automysqlbackup.
Először telepítenie kell a csomagot az apt-get segítségével:
$ sudo apt-get install automysqlbackup
A telepítés befejezése után az automysqlbackup napi biztonsági másolatot készít a / var / lib / automysqlbackup könyvtárban. A biztonsági másolatot manuálisan is elindíthatja a következő indítással:
A végrehajtást követően a könyvtár tartalmának felsorolásával ellenőrizheti a jelenlegi biztonsági mentéseket:
$ ls -R /var/lib/automysqlbackup/
/var/lib/automysqlbackup/:
daily monthly weekly
/var/lib/automysqlbackup/daily:
exampledb information_schema performance_schema test wordpress
/var/lib/automysqlbackup/daily/exampledb:
exampledb_2019-08-03_06h48m.Sunday.sql.gz
...
Ha minden megfelelően működött, a .sql.gz kiterjesztéssel rendelkező fájlok sorát fogja észrevenni, amint azt fentebb látható.
Javasoljuk, hogy rendszeresen ellenőrizze a legfrissebb biztonsági mentéseket, és ellenőrizze, hogy ezek mindegyike megfelelően működik-e.
Az automysqlbackup testreszabása
Az Automysqlbackup biztonsági másolatának vagy az adatbázis eléréséhez szükséges hozzáférési adatok biztonsági mentésének gyakoriságának megváltoztatásához módosíthatja a konfigurációs fájlt az /etc/default/automysqlbackup mappában.
Néhány beállítás a következő:
-
USERNAME: az adatbázisba történő bejelentkezéshez használt felhasználónév,
-
PASSWORD: az adatbázisba történő bejelentkezéshez használt jelszó,
-
DBHOST: IP-cím vagy a hoszt gép neve,
-
DBNAMES: a biztonsági mentésre kerülő adatbázisok nevei,
-
BACKUPDIR: a biztonsági mentések mentésére szolgáló könyvtár.
A kívánt beállítások módosítása után mentse el a fájlt a módosítások alkalmazásához.