Mysql

備份數據庫的最佳實踐

  • June 26, 2019

我在stackoverflow上問過這個問題,但有人指出最好在這裡問。

讓我們假設 RAID NAS 上的 Subversion 和 MySQL。備份數據的最佳做法是什麼?

我正在考慮將 mysqldumps 置於 subversionn 控制之下,然後可能通過 7zip 壓縮整個東西來定期備份 svn 儲存庫。

除非您將 svn 備份儲存在不同的物理硬碟上,否則對儲存庫進行備份似乎沒有幫助。這是真的?如果不是,為什麼?

最後,應該多久進行一次備份,應該保存多少?

首先,不要對數據庫備份進行版本控制。

備份就是備份 - 一個時間點。使用版本控制聽起來是個好主意,但要意識到這意味著如果您遇到災難性故障並需要恢復數據庫,則需要恢復整個 SVN 儲存庫(ZOMG Freaking ***HUGE )。***這可能是您無法承受的額外停機時間。

其次,確保您的備份以某種方式離開現場。 如果您因為搞砸並刪除了表而需要恢復數據,則在本地電腦上進行備份非常有用。如果您的伺服器的磁碟死了,這對您絕對沒有好處。

選項包括外部硬碟驅動器或使用 rsync 將備份傳送到遠端電腦。甚至還有像 rsync.net這樣的儲存服務提供商專門從事這方面的工作。

第三,關於備份頻率:只有您知道需要多久執行一次。

我現在的公司有一個從數據庫,可以近乎實時地複制我們的生產數據。該從站每晚都會備份到本地機器,然後同步到異地儲存設施。

如果生產硬體發生故障,我們將啟動從站。數據失去應該是最小的,停機時間也應該是最小的。如果意外刪除表,我們可以從本地備份中恢復(最多失去 1 天的數據)。如果發生災難性事件,我們可以從異地備份中恢復(這需要一段時間,但同樣只會失去最多 1 天的數據)。

這種備份方案是否適合您取決於您的數據:如果它經常更改,您可能需要研究一種備份策略,以便您進行時間點恢復(日誌傳送解決方案通常可以做到這一點)。如果它大部分是靜態的,您可能只需要每月備份一次。關鍵是確保您在數據發生後的合理時間內擷取對數據的更改,以確保在發生重大事件時不會失去這些更改。

引用自:https://serverfault.com/questions/349056