Mysql
mysql備份策略?
我們有一個 innodb mysql 數據庫,所以我們迷失了許多不同的 mysql 備份策略。有的談mysqldump,有的談第三方工具。我們還計劃對一些表進行分區。有什麼好工具可以幫助完成這項任務嗎?
今天幾乎沒有任何關於 InnoDB 備份的討論(當然,正如我所看到的那樣)。Percona 的Xtrabackup是一種廣泛使用、功能豐富且穩定的解決方案,它提供:
- 熱備份(數據庫上沒有鎖)
- 增量備份(通過備份頁面而不是語句來完成)
- I/O 節流(允許限製備份 I/O 以減輕機器/磁碟的負載)
- 備份在備份結束時是一致的(與備份開始時相反)。
Xtrabackup 源自 InnoDB Hot Backup,現在稱為 MySQL Enterprise Backup。還有額外的包裝腳本允許額外的功能集。
較小的數據庫可能會受益於通用
mysqldump
. 這實際上取決於您的數據庫大小和流量。mysqldump
, 事件與--single-transaction
, 對數據庫伺服器施加高負載,並導致累積鎖。它不像您想像的那麼熱(請參閱我的這篇關於備用溫度的文章)。我經常使用 LVM 快照。最大的優點是這些對 DB 是無知的,因此沒有與 DB 相關的錯誤影響這種類型的備份。最大的缺點是過度增加了 I/O。查看mylvmbackup。
如果您有 ZFS 或其他支持快照的文件系統,那可能是一個很好的解決方案。如果您有支持快照的儲存設備,那也很棒。所有快照都是數據庫無知的,儘管您經常希望編寫這個 a-la 腳本
mylvmbackup
以便捕捉完成備份的時間點(DB-wise)。
我是一個老派的 DBA,所以無論如何請聽我說…
我過去在 DBA StackExchange 中關於 MySQL 備份的文章
Apr 17, 2011
:如何優化大型數據庫的mysqldump?Jun 26, 2011
:如何啟用 MySQL 所有可能的備份選項Oct 01, 2011
:快速 MySQL 備份May 16, 2012
:如何在 MySQL 中創建快照備份May 22, 2012
: MySQL 伺服器備份(包括如何使用 MySQL for Windows 進行備份)Jul 24, 2012
:如何將混合了 InnoDB 和 MyISAM 的 MySQL 數據庫複製到同一台伺服器?在我之前的文章中,我建議並行執行 mysqldumps 以及單個文件。我什至建議嘗試 XtraBackup。我不想限制你使用 mysqldump。有些數據庫太大了,LVM 快照是唯一可能的解決方案。