// Backup & Restore
MariaDB Backup & Restore
กลยุทธ์ Backup ที่ถูกต้องสำหรับ MariaDB — Logical, Physical, Incremental และ Point-in-Time Recovery
// Backup Methods
วิธี Backup ใน MariaDB
Logical Backup (mysqldump)
สร้าง SQL script — portable, human-readable แต่ restore ช้าสำหรับ large databases เหมาะ databases ขนาดเล็กถึงกลาง
Physical Backup (mariabackup)
Copy raw data files — รวดเร็วมาก รองรับ hot backup (ไม่หยุด server) เหมาะสำหรับ large databases production
# Full logical backup
mysqldump -u root -p \
--single-transaction \
--master-data=2 \
--routines --triggers --events \
--all-databases | gzip > full_$(date +%Y%m%d).sql.gz
# Physical full backup
mariabackup --backup \
--target-dir=/backup/full_$(date +%Y%m%d) \
--user=root --password=secret
# Incremental backup
mariabackup --backup \
--target-dir=/backup/incr_$(date +%Y%m%d_%H%M) \
--incremental-basedir=/backup/full_20240101 \
--user=root --password=secret
# Point-in-Time Recovery
# 1. Restore base backup
mariabackup --prepare --target-dir=/backup/full_20240101
mariabackup --copy-back --target-dir=/backup/full_20240101
# 2. Apply binary logs to specific time
mysqlbinlog --stop-datetime="2024-01-15 14:30:00" \
/var/lib/mysql/mysql-bin.* | mysql -u root -p
📋 Backup Best Practices
ทดสอบ restore ทุกสัปดาห์, เก็บ backup อย่างน้อย 3 ชุดใน location ที่ต่างกัน (3-2-1 rule), ใช้ binary log สำหรับ PITR และเข้ารหัส backup files ที่เก็บ off-site