Serverovny.cz/Fórum/Jak mohu automatizovat zálohování databáze pomocí skriptu?

Jak mohu automatizovat zálohování databáze pomocí skriptu?

Chtěl bych se zeptat, jakým způsobem lze efektivně automatizovat zálohování databáze? Mám na mysli konkrétně třeba MySQL nebo PostgreSQL a rád bych zjistil, jaké skripty by pro to byly nejvhodnější. Uvažoval jsem o tom, že bych mohl napsat nějaký jednoduchý bash skript, který by se spouštěl pravidelně, ale nejsem si jistý, jak přesně to udělat. Jakou syntaxi mám použít pro provedení zálohování? Jakým způsobem pak tento skript naplánovat, aby se spouštěl například každý den v noci? Představoval jsem si, že bych mohl použít cron job, ale zase nevím, jak to všechno nastavit dohromady. Mám také obavy ohledně toho, kam vlastně ty zálohy ukládat - je lepší mít je na stejném serveru nebo je poslat na externí úložiště? Četl jsem o různých možnostech jako jsou cloudové služby a další. Jaké jsou nejlepší praktiky pro uchovávání záloh databází? A co když dojde k nějakému selhání během zálohování? Jak bych mohl zajistit, aby proces byl co nejbezpečnější a aby mi nic neuniklo? Díky moc za vaše rady a tipy, budu vděčný za jakékoliv zkušenosti nebo příklady, které byste mohli sdílet.

177 slov
1.8 minut čtení
17. 8. 2022
Soňa Vyskočilová

K automatizaci zálohování databáze na MySQL nebo PostgreSQL si můžeš napsat jednoduchý bash skript. Pro MySQL by to mohlo vypadat nějak takhle:

#!/bin/bash
DATUM=$(date +%Y%m%d_%H%M%S)
MYSQL_USER="tvůj_uživatel"
MYSQL_PASS="tvé_heslo"
DB_NAME="název_databáze"
BACKUP_DIR="/cesta/k/zálohám"

mysqldump -u $MYSQL_USER -p$MYSQL_PASS $DB_NAME \> $BACKUP_DIR/zaloha_$DATUM.sql

Pro PostgreSQL bys použil pg_dump:

#!/bin/bash
DATUM=$(date +%Y%m%d_%H%M%S)
PG_USER="tvůj_uživatel"
DB_NAME="název_databáze"
BACKUP_DIR="/cesta/k/zálohám"

pg_dump -U $PG_USER $DB_NAME \> $BACKUP_DIR/zaloha_$DATUM.sql

Aby ses tento skript spouštěl pravidelně, můžeš použít cron. Otevři cron tabulku pomocí crontab -e a přidej řádek jako:

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

To znamená, že se skript bude spouštět každý den ve 2:00.

Co se týče ukládání záloh, ideální je mít je na jiném místě než na stejném serveru, třeba na externím úložišti nebo v cloudu. Dobré je mít zálohy i na několika místech, protože nikdy nevíš, co se může stát.

Pokud jde o selhání během zálohování, mohl bys do skriptu přidat kontrolu návratového kódu a posílat si e-mail nebo logovat chyby, aby sis byl vědom problémů.

Když to shrnu, drž se jednoduchého skriptu, pravidelně zálohuj na různých místech a monitoruj případné chyby. To by mělo stačit.

155 slov
1.6 minut čtení
19. 1. 2025
Marie Kyselová

Automatizace zálohování databáze se dá udělat celkem snadno pomocí bash skriptu. Pro MySQL můžeš použít příkaz mysqldump, třeba takhle:

#!/bin/bash
DATUM=$(date +%Y%m%d_%H%M%S)
mysqldump -u uživatelské_jméno -p'heslo' --all-databases \> /cesta/k/zaloze/zaloha_$DATUM.sql

Pro PostgreSQL použij pg_dump:

#!/bin/bash
DATUM=$(date +%Y%m%d_%H%M%S)
pg_dumpall -U uživatelské_jméno \> /cesta/k/zaloze/zaloha_$DATUM.sql

Pak budeš chtít ten skript naplánovat, což uděláš pomocí cron jobu. Otevři terminál a zadej crontab -e, a pak přidej řádek jako:

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

To spustí tvůj skript každý den ve 2 ráno.

Kde ukládat zálohy? Ideálně na jiném serveru nebo do cloudu, aby ses vyhnul riziku ztráty, když se něco stane s hlavním serverem. Můžeš použít AWS S3, Google Drive nebo něco podobného pro externí úložiště.

Nezapomeň na logy – můžeš do skriptu přidat, aby se logovalo, co se stalo při zálohování. Když dojde k chybě, měl bys dostat upozornění (např. pomocí emailu). A nezapomeň testovat obnovení záloh, je to důležité!

135 slov
1.4 minut čtení
19. 1. 2025
Jindřich Procházka
Serverovny.cz/Články/Programování skriptů
Automatizace zálohování databází pomocí skriptů: Jak minimalizovat riziko ztráty datObjevte, jak efektivně automatizovat zálohování databází pomocí skriptů a tím minimalizovat riziko ztráty dat. Představíme vám tipy, triky a ochranná ...
1000 slov
10 minut čtení
3. 5. 2021
Lucie Černá
Přečíst článek
Podobné otázky