備份策略三原則
- 定期備份,評估可接受恢復時間目標(RTO)。
- 必須開啟 log-bin,才能支援完整恢復、時間點恢復(PITR)、基於位置恢復。
- 定期演練恢復,驗證備份有效性。
冷備份(Physical Backup)
# 備份
service mysql stop
tar -czf /backup/mysql_data_$(date +%F).tar.gz /var/lib/mysql
service mysql start
# 備份啟動後產生的 binlog
# 還原
service mysql stop
tar -xzf /backup/mysql_data_2024-01-01.tar.gz -C /
service mysql start
mysqlbinlog /var/lib/mysql/mysql-bin.0000xx | mysql -u root -p
- 優點:速度快、檔案級一致性。
- 缺點:需停機、跨版本/跨平台遷移困難。
邏輯備份
# 備份(夜間低峰)
mysqldump -u root -p -F pointcard > pointcard.sql # -F flush-logs 產生新 binlog
# 備份 mysqldump 開始後的 binlog
# 還原
mysql -u root -p pointcard < pointcard.sql
mysqlbinlog /var/lib/mysql/mysql-bin.0000xx | mysql -u root -p
- 優點:跨版本/平台可攜、可編輯 SQL。
- 缺點:大資料集備份/還原慢、佔用磁碟大。
Binlog 恢復關鍵
mysqlbinlog binlog_file | mysql 重放。
- 支援
--start-datetime、--stop-datetime、--start-position、--stop-position 精確 PITR。