Serverovny.cz/Fórum/Jak udělat zálohu databáze pomocí skriptu?

Jak udělat zálohu databáze pomocí skriptu?

Mám dotaz ohledně zálohování databáze, konkrétně bych rád věděl, jak to udělat pomocí skriptu. Jsem poměrně nový v oblasti správy serverů a databází, takže se mi tady docela zamotává hlava. Potřebuji pravidelně zálohovat svou databázi, ale nevím, jak na to správně jít. Můžete mi prosím poradit, jaký skript by byl nejlepší použít na automatizaci tohoto procesu? Zajímalo by mě, jestli je lepší použít nějaký bash skript nebo třeba něco ve Windows prostředí? Jaké příkazy potřebuji znát a jak bych měl nastavit plánování těchto záloh? Myslíte si, že by bylo možné udělat zálohu i na vzdálený server? A co se týče formátu zálohy - měl bych použít SQL dump nebo nějaký jiný formát? Rád bych se vyhnul ztrátě dat, takže jestli máte tipy, jak správně ověřit, že záloha proběhla úspěšně, byly by skvělé. Díky za každou radu a tip!

138 slov
1.4 minut čtení
17. 9. 2023
Oldřich Vašek

Zálohování databáze je fakt důležitý, takže fajn, že se do toho pouštíš. Pokud používáš MySQL, tak nejlepší je udělat to pomocí příkazu mysqldump. Můžeš si napsat bash skript, který to provede automaticky. Tady je jednoduchý příklad:

#!/bin/bash
DATUM=$(date +%Y%m%d_%H%M%S)
DB_NAME="tvá_databáze"
USER="tvůj_uživatel"
PASSWORD="tvoje_heslo"
HOST="localhost"  # nebo IP vzdáleného serveru

mysqldump -u $USER -p$PASSWORD -h $HOST $DB_NAME \> /cesta/k/zaloze/db_$DATUM.sql

Tenhle skript ti udělá SQL dump tvé databáze a uloží ho s datem a časem do souboru. Aby ses vyhnul ztrátě dat, doporučuju zálohy pravidelně kontrolovat – prostě zkus ten dump obnovit na testovacím serveru a uvidíš, jestli funguje.

Pro plánování můžeš použít cron, což je v Linuxu super věc pro automatizaci úloh. Přidej do crontabu něco jako:

0 2 * * * /cesta/k/tvému/skriptu/zaloha.sh

Tím pádem ti to poběží každý den ve 2 ráno.

Jestli máš v plánu zálohy na vzdálený server, tak to můžeš zvládnout s SCP nebo RSYNC. Například:

scp /cesta/k/zaloze/db_$DATUM.sql uživatel@vzdaleny_server:/cesta/na/vzdalenem/serveru/

Co se týká formátu, SQL dump je standardní a většinou se používá. Je to jednoduché na obnovu. Tak se do toho pusť a hlavně nezapomeň na ty pravidelné kontroly! Držím palce.

170 slov
1.7 minut čtení
5. 10. 2022
Milan Macek

Zálohování databáze skriptem je v pohodě, zvlášť když chceš mít pravidelný proces. Pokud používáš MySQL, tak můžeš napsat bash skript. Tady je jednoduchý příklad:

""" #!/bin/bash DATUM=$(date +%Y%m%d%H%M) DB_NAME='tvá_databáze' USER='tvůj_uživatel' PASS='tvé_heslo' DUMP_FILE="/cesta/k/zaloze/dbbackup_$DATUM.sql" mysqldump -u $USER -p$PASS $DB_NAME > $DUMP_FILE """

Tenhle skript udělá dump tvé databáze do SQL souboru s datem v názvu. Aby se to spouštělo pravidelně, můžeš použít cron (na Linuxu) – stačí přidat úlohu do crontabu, třeba takhle:

""" 0 2 * * * /cesta/k/tvemu/skriptu/backup.sh """

Tím se záloha spustí každý den ve 2 ráno.

Co se týče vzdáleného serveru, můžeš buď zálohu poslat na FTP nebo použít rsync pro přenos. SQL dump je dobrý formát, protože ho můžeš jednoduše obnovit. Aby ses ujistil, že záloha proběhla úspěšně, můžeš zkontrolovat velikost souboru nebo udělat nějaký testovací restore na testovací databázi. Hlavně to nezapomeň otestovat!

Tak hodně štěstí a ať se ti to podaří!

131 slov
1.3 minut čtení
8. 2. 2022
Adam Vacek
Serverovny.cz/Články/Systémové skriptování
Zálohování a obnova dat: Jak efektivně skriptovat procesyObjevte tajemství efektivního zálohování a obnovy dat pomocí skriptování. Tento článek přináší taktiky a příklady pro optimalizaci vašich procesů, kte...
1000 slov
10 minut čtení
8. 1. 2021
Adam Veselý
Přečíst článek
Podobné otázky