對于MySQL數據庫,備份與恢復相關的術語包括:備份(backup)、還原(restore)、恢復(recover)、二進制日志(binlog),其中備份按照其特性可以分為:物理備份和邏輯備份;冷備、溫備和熱備;完全備份和不完全備份等;常用的備份工具包括:操作系統拷貝、mysqldump等;還原包括物理備份的還原和邏輯備份的還原;下面分別加以介紹和說明。
數據庫備份通俗地說是將數據庫的某一時刻的數據復制了一份;數據庫還原是將備份出的數據替換掉原來數據庫中的數據文件,將備份放回到原來數據庫文件的目錄位置;二進制日志(BINLOG)記錄數據庫的變更過程,例如創建數據庫、建表、修改表等DDL操作、以及數據表的相關DML操作,這些操作會導致數據庫產生變化,開啟binlog以后導致數據庫產生變化的操作會按照時間順序以“事件”的形式記錄到binlog二進制文件中。
參考上圖,在凌晨2:00,管理員將已開啟二進制日志的數據庫的數據做了一個完整的備份,隨著時間的推移,仍然有用戶對數據庫進行相關的寫操作(包括:DDL語句、DML語句中的增刪改操作、DCL授權語句和TCL事務處理語句等),導致了二進制日志文件寫滿(默認1G)后自動切換;在上午9:37時,由于硬盤出現故障,數據庫用戶不能正常訪問存放在硬盤中的數據庫數據,此時如果數據庫備份和二進制日志沒有損壞,管理員是可以通過還原備份和恢復二進制日志的方式挽回數據損失的。
挽回數據損失的過程包括:1.更換新硬盤;2.還原備份;3.重做備份到故障時段的二進制日志中的語句等;正常情況不會造成數據的丟失,損失的僅僅是一段時間的停機時間。
上例中,還原數據備份時,數據庫中的數據回到了備份時刻的狀態,而二進制日志中記錄了從備份到故障前一段時間內所有用戶對數據庫的寫操作的語句,只要把這些語句按照時間順序重新運行一遍,所還原的數據就會變成為故障前那一刻的狀態,不會造成數據丟失。因此通常把保存在二進制日志中的語句重新執行的過程叫做恢復。
>>本文地址:http://www.jecan.cn/zhuanye/2019/48195.html
聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?