Cum faci backup automat la o bază de date MySQL

Configurare noua (How To)

Situatie

Asigurarea disponibilității și restaurării rapide a datelor în caz de incidente (ștergere accidentală, defecțiuni, migrare etc.) prin backup automatizat al bazei de date MySQL.

Backup

Ce ai nevoie:

  • Acces la serverul unde rulează baza de date MySQL

  • Un utilizator MySQL cu permisiuni de SELECT și LOCK TABLES

  • Acces SSH și permisiuni de cron (pentru backup automat)

  • Spațiu de stocare local sau remote (ex: S3, FTP, NFS, etc.)

Solutie

Pasi de urmat

1. Crează un utilizator dedicat pentru backup (opțional, dar recomandat)

Conectează-te în MySQL:

mysql -u root -p

Rulează:

CREATE USER ‘backupuser’@’localhost’ IDENTIFIED BY ‘parolaPuternica’;
GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT ON *.* TO ‘backupuser’@’localhost’;
FLUSH PRIVILEGES;

2. Scrie un script de backup folosind mysqldump

Creează un fișier script, de exemplu mysql_backup.sh

#!/bin/bash

# Configurare
USER=”backupuser”
PASSWORD=”parolaPuternica”
HOST=”localhost”
DATABASE=”nume_baza”
BACKUP_DIR=”/var/backups/mysql”
DATE=$(date +”%Y-%m-%d_%H-%M”)
FILENAME=”$DATABASE-$DATE.sql.gz”

# Creare director de backup dacă nu există
mkdir -p $BACKUP_DIR

# Backup cu compresie
mysqldump -u $USER -p$PASSWORD -h $HOST $DATABASE | gzip > $BACKUP_DIR/$FILENAME

# Șterge backup-urile mai vechi de 7 zile
find $BACKUP_DIR -type f -name “*.gz” -mtime +7 -exec rm {} \;

3. Fă scriptul executabil:

chmod +x mysql_backup.sh

4. Testează scriptul:

./mysql_backup.sh

Verifică dacă fișierul .sql.gz a fost creat în directorul setat.

5. Automatizează backup-ul cu cron

Deschide crontab:

crontab -e

Adaugă o linie pentru a rula backup-ul zilnic la ora 2:00 AM:

0 2 * * * /cale/absoluta/mysql_backup.sh >> /var/log/mysql_backup.log 2>&1

Rezultat:

  • Backup zilnic automat al bazei de date

  • Fișierele sunt păstrate local și șterse automat după 7 zile.

Tip solutie

Permanent

Voteaza

(2 din 5 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?