// 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