Mysql

mysql備份策略?

  • September 2, 2020

我們有一個 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 備份的文章

在我之前的文章中,我建議並行執行 mysqldumps 以及單個文件。我什至建議嘗試 XtraBackup。我不想限制你使用 mysqldump。有些數據庫太大了,LVM 快照是唯一可能的解決方案。

引用自:https://dba.stackexchange.com/questions/22612