คู่มือสำรองข้อมูล VPS และ Snapshot
เซิร์ฟเวอร์อาจล้มเหลวได้จากการอัปเดตที่มีปัญหา ความผิดพลาดของมนุษย์ มัลแวร์ หรือปัญหาฮาร์ดแวร์ แผนที่ดีควรผสาน snapshot, backup และการทดสอบการกู้คืนเข้าด้วยกัน บน ONIE, Cloud Servers ในนครโฮจิมินห์ รองรับการสร้าง snapshot และ backup และคุณสามารถเพิ่ม Block Storage สำหรับเก็บข้อมูลได้
Snapshot กับ Backup
| Snapshot | Backup | |
|---|---|---|
| ความหมาย | สถานะของดิสก์ที่บันทึกไว้ ณ เวลาหนึ่ง | สำเนาแยกต่างหากของเซิร์ฟเวอร์หรือข้อมูล |
| เหมาะกับ | วิธีย้อนกลับอย่างรวดเร็วก่อนอัปเกรดหรือเปลี่ยนการตั้งค่า | กู้คืนเมื่อข้อมูลสูญหาย เสียหาย หรือถูกลบ |
| เก็บไว้ที่ | ใกล้กับเซิร์ฟเวอร์ต้นฉบับ | บนพื้นที่จัดเก็บแยกต่างหาก |
| ความเร็ว | สร้างและกู้คืนได้รวดเร็ว | ช้ากว่า ขึ้นอยู่กับขนาดข้อมูล |
ใช้ทั้งสองอย่าง: สร้าง snapshot ก่อนการเปลี่ยนแปลงที่มีความเสี่ยง และตั้งเวลาทำ backup สำหรับส่วนที่เหลือ
กฎ 3-2-1
เก็บสำเนาข้อมูลสำคัญไว้ 3 ชุด บนสื่อจัดเก็บ 2 ประเภทที่ต่างกัน และเก็บไว้ที่อื่นอีก 1 ชุด Snapshot บนเซิร์ฟเวอร์เดียวกันไม่เพียงพอเมื่อใช้เพียงลำพัง
สำรองไฟล์
rsync คัดลอกเฉพาะไฟล์ที่มีการเปลี่ยนแปลง:
rsync -aH --delete /var/www/ backup@backup-host:/srv/backups/www/restic สร้าง backup ที่เข้ารหัสและตัดข้อมูลซ้ำซ้อน ไปยังปลายทางหลายแห่ง:
sudo apt install -y restic
restic -r sftp:backup@backup-host:/srv/restic init
restic -r sftp:backup@backup-host:/srv/restic backup /var/www /etc
restic -r sftp:backup@backup-host:/srv/restic forget --keep-daily 7 --keep-weekly 4 --pruneสำรองฐานข้อมูล
คัดลอกฐานข้อมูลด้วยการ dump แทนการคัดลอกไฟล์ข้อมูลที่กำลังใช้งานอยู่โดยตรง:
mysqldump --single-transaction --routines -u root wordpress | gzip > /var/backups/wordpress-$(date +%F).sql.gzสำหรับ PostgreSQL ให้ใช้ pg_dump
ทำให้เป็นอัตโนมัติ
รัน backup ผ่าน cron หรือ systemd timer และกำหนดนโยบายการเก็บรักษาข้อมูล เพื่อลบสำเนาเก่าออกโดยอัตโนมัติ:
sudo crontab -e
# every day at 02:30
30 2 * * * /usr/local/bin/backup.shทดสอบการกู้คืน
Backup ที่ไม่เคยทดสอบกู้คืนก็เป็นเพียงการคาดเดา ทุกเดือนให้กู้คืนไปยังเซิร์ฟเวอร์สำรองและตรวจสอบว่าเว็บไซต์และข้อมูลใช้งานได้ บันทึกขั้นตอนไว้ เพื่อให้ทุกคนในทีมทำตามได้
ก่อนการเปลี่ยนแปลงครั้งใหญ่
สร้าง snapshot ทำการเปลี่ยนแปลง ทดสอบ แล้วลบ snapshot เมื่อมั่นใจแล้ว วิธีนี้เข้ากันดีกับการตั้งค่า SSH ให้ปลอดภัย และนิสัยเดียวกันนี้ก็ช่วยได้เมื่อคุณอัปเกรดเว็บไซต์ WordPress
คำถามที่พบบ่อย
ควรสำรองข้อมูลบ่อยแค่ไหน?
การสำรองข้อมูลทุกวันเป็นเรื่องปกติสำหรับเว็บไซต์และฐานข้อมูลที่มีการเปลี่ยนแปลงบ่อย หากการสูญเสียข้อมูลหนึ่งวันสร้างความเสียหายมาก ควรสำรองบ่อยกว่านั้น
Snapshot มีค่าใช้จ่ายหรือไม่?
Snapshot และ backup คิดค่าบริการตามพื้นที่ที่ใช้ ดูอัตราค่าบริการปัจจุบันได้ที่หน้าราคาของบริการ
ควรเก็บ backup ไว้ที่ใด?
ไม่ควรเก็บไว้เฉพาะในเซิร์ฟเวอร์เดียวกัน ควรใช้สถานที่หรือผู้ให้บริการอื่น เพื่อให้ความล้มเหลวครั้งเดียวไม่ทำให้สำเนาทั้งหมดหายไป