為什么要備份數據庫?
我認為這個問題的答案已經很明顯了。因此,我不想回答這個問題,而是想回答另一個問題:通過數據庫備份可以預防哪些風險?實際上,自產生以來,數據始終伴隨著自然災害,電源故障,網絡故障,硬件故障,軟件故障和人為故障導致數據丟失的風險。
關鍵是,即使您的數據庫從今天的硬件錯誤,明天的閃電或明天的第二天掉電中幸存下來,也可能由于從今天起三天的失誤而錯誤地刪除了數據。
數據庫備份帶來哪些挑戰?
第一個挑戰是盤點數據庫資產。對于單個用戶,所有這些數據庫資產可能只是一個實例,即使沒有盤點,用戶也清楚地知道這些資產。但是,對于企業用戶,尤其是大型企業的用戶,由于業務多樣性,數據庫可以具有多個實例和各種數據庫類型。在這種情況下,運維人員需要清楚地了解不同數據庫的數量,分布,類型(生產或核心數據庫)和功能。
第二個挑戰是對備份系統的評估。盡管備份是日常的基本操作,但人們通常會發現備份在緊縮時期沒有幫助。原因是備份作為一項基本任務不會促進業務發展,只要沒有問題發生,很少有人會記住它。但是,一旦出現問題,備份立即成為公眾關注的目標。在緊急情況下,備份通常無濟于事,主要是因為人們對備份的重視程度不夠,因此對備份的投資不足。許多企業聲稱備份是頭等大事,但從未正確實施它們。
我建議您立即詢問您的技術團隊:您的備份系統真的有效嗎?
什么是有效的備份系統?
可以將不同的數據庫用于不同的目的,并且備份系統的有效性也會相應變化。根據其功能,數據庫可以分為測試數據庫,生產數據庫和核心數據庫。
對于測試數據庫,您必須根據其預期用途來了解數據庫的重要性。如果測試數據庫用于個人測試,則在大多數情況下,無需備份即可導入和清除數據。如果將測試數據庫用于研發,建議您啟用備份功能,并且不要低估備份的重要性。這是因為企業中的所有開發和測試人員都在測試數據庫上工作,并且單個數據問題可能立即給整個團隊造成麻煩。此外,測試數據庫可能比生產數據庫遇到更多的問題。
對于生產數據庫,首先,請確保已啟用備份功能。然后,評估備份周期是否滿足要求,例如每天進行完全備份。發生故障時,最多只會丟失一天的新數據。在這種情況下,您需要檢查備份數據的最后副本是否已還原以及備份數據是否有效。
對于核心數據庫,其重要性高于測試或生產數據庫。除上述措施外,您還需要采取其他措施。實時備份已成為企業選擇數據庫備份解決方案的必選選項,因為它可以很大程度地減少因故障而丟失的數據量??焖倩謴蛯诵臄祿煲财鹬絹碓街匾淖饔?。根據潛在故障的風??險,您可以選擇優秀的恢復解決方案,在整個備份和恢復系統上進行常規鉆取,并采樣備份數據以測試恢復功能。我建議您制定一個策略,該策略可以自動,定期執行整個恢復過程并提供鉆取報告。
筆記:
1. 不驗證備份數據的有效性甚至比不備份數據還要糟糕。想象一下,您的所有業務數據在災難中已被完全破壞。但是,當您要恢復數據時,您可能會發現備份數據已損壞,備份的文件不正確或發生了其他可怕的事情。在這種情況下,您該怎么辦?沒有驗證的數據備份解決方案可能會帶來更大的災難。您必須驗證備份內容,以確保已正確備份數據并可以將其用于恢復。不要等到為時已晚。
2. 不要堅持大型而全面的解決方案。各種解決方案必須滿足多樣化的要求。特別是對于核心數據庫,必須定期備份整個實例,以防止硬件故障和實例損壞。此外,必須實時備份每個表,這通??梢詫㈥P鍵時刻的數據恢復時間減少多達90%。
3. 手動或自動數據驗證均旨在驗證用于恢復的備份數據(也稱為恢復數據)的有效性。驗證恢復數據的完整性非常具有挑戰性。在大多數情況下,會根據業務特征對恢復數據和生產數據進行采樣并進行比較。或者,恢復數據庫用作輔助數據庫,并與主數據庫同步以驗證數據完整性。