Oktatóanyagok > Hogyan lehet ütemezni a MySQL adatbázis biztonsági másolatát Ubuntun?

Hogyan lehet ütemezni a MySQL adatbázis biztonsági másolatát Ubuntun?

Közzétéve: 18 január 2020

Backup Database MySQL

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:

$ sudo crontab -e

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:

$ sudo automysqlbackup

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.