Péter blogja

Péter blogja

MySQL biztonsági mentés Linuxon

2014. március 17. - vpeti88

Egy Raspberry Pi-t használok adatrögzítőnek. Már többször is előfordult, hogy a Raspberry Pi memóriakártyája íráshiba miatt megfagyasztotta a rendszert és utána nem is lehetett újraindítani. Másodsorban pedig egyre több adatot rögzítek vele adatbázisba. Pl.: Külső, belső hőmérséklet és a projektem adatai... 

Eddig manuálisan készítettem biztonsági mentést a memóriakártyáról, de mivel nem kívánom kifejteni belőle az adatbázis adatait és nem is jelenkezek be mindig lementeni azt, így körbeolvastam hogyan is célszerű ezt automatikusan megoldani...

A Cronnal már volt dolgom, ő futtatja le nekem azt a PHP szkriptet, mely negyed óránként beolvassa a külső és belső hőmérsékletet, majd egy táblába tárolja az értékeket. Mivel a Cron a Linux időzített futattása.

Ezután már csak utána kellett járnom, hogy milyen parancsok segítségével lehetséges exportálni az adatbázisokat, majd azokat átmozgatni a hálózati meghajtóra melyről bármelyik gépen elérhetem azokat.

A helyi hálózat tartalmaz egy TP-Link WDR4300-as routert melynek van két USB portja az egyikben állandó vendég egy 16 GB-s pendrive, ő a hálózati meghajtó. A mentéseket ide fogom végezni.

Az érdekes vagy inkább boszantó, hogy nem tudom csatolni a router megosztását a fájlrendszerbe, pedig átolvastam jópár blogot és a man oldalakat is. Bár nem vagyok egyedül vele és sajnos a TP-Link support is azt írta, hogy nincs Linux támogatás.

Akkor nézzük a megoldást:

Kérek egy exportot a MySQL-ből:

[code language="bash"]$ mysqldump --user=felhasználónév --host=localhost --port=3306 --password=jelszó adatbázis_neve > fájnév.sql[/code]

Ez a megoldás a komplett adatbázist kimenti egy fájlba. Ha az összes adatbázis mentésére szükségünk van használjuk az adatbázis neve helyett a --all-database kapcsolót (paramétert). Ha több, de nem az összes adatbázisra szükségünk van, akkor pedig: a --databases kapcsoló után következő összes szót adatbázisnévként fogja kezelni.

Nagy adatbázisok esetén ez elég erőforrásigényes (Raspberry Pi). Ezért célszerű lehet növekményes biztonsági mentés készítése. Az /etc/mysql/my.cnf-ben a log-bin sor elől kivéve a # jelet és újraindítva a MySQL-t már működik is. Ez azt eredményezi, hogy a /var/log/mysql/ könyvtárában (alapértelmezett: Debian Wheezy) létrejön egy mysql-bin.XXX naplófájl fájl mely tartalmazza, hogy mit csinált. A következő mentés alkalmával pedig folytatja a fájl írását.

A bejegyzés trackback címe:

https://vpeti88.blog.hu/api/trackback/id/tr248390848

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása