IT技術互動交流平臺

MySQL通過binlog的方法恢復數據

作者:wy  來源:網絡整理  發布日期:2019-01-22 08:32:00

  今天小編我就帶領大家一起來學習到新的章節這次的章節是MySQL而我們今天所要說的內容是如何通過MySQL通過binlog的方法恢復數據,這個方法并不難但是能因為本篇文章全是文字沒有圖片在下面的解析,所以小編我很擔心你們操作不當。

  通過了解 binlog 日志的相關配置,簡單掌握通過 binlog 對數據庫進行數據恢復操作;

  mysql 日志文件

  任何成熟軟件都會有一套成熟的日志系統,當軟件出現問題時,這些日志就是查詢問題來源的寶庫。同樣,mysql 也不例外,也會有一系列日志記錄 mysql 的運行狀態。

  mysql 主要有以下幾種日志:

  錯誤日志:記錄 mysql 運行過程中的錯誤信息

  一般查詢日志:記錄mysql正在運行的語句,包括查詢、修改、更新等的每條 sql

  慢查詢日志:記錄查詢比較耗時的 SQL 語句

  binlog 日志:記錄數據修改記錄,包括創建表、數據更新等

  這些日志均需要在 my.cnf 文件進行配置,如果不知道 mysql 的配置文件路徑,可以使用 mysql 命令進行查找,

  mysql --verbose --help|grep -A 1 'Default options’ #該命令會羅列出my.cnf 順序查找的路徑。

  binlog 日志

  binlog 就是 binary log,二進制日志文件,記錄所有數據庫更新語句,包括表更新和記錄更新,即數據操縱語言(DML),binlog 主要用于數據恢復和配置主從復制等;

  數據恢復:當數據庫誤刪或者發生不可描述的事情時,可以通過 binlog 恢復到某個時間點的數據。

  主從復制:當有數據庫更新之后,主庫通過 binlog 記錄并通知從庫進行更新,從而保證主從數據庫數據一致;

  mysql 按照功能分為服務層模塊和存儲引擎層模塊,服務層負責客戶端連接、SQL 語句處理優化等操作,存儲引擎層負責數據的存儲和查詢;binlog 屬于服務層模塊的日志,即引擎無關性,所有數據引擎的數據更改都會記錄binlog日志。當數據庫發生崩潰時,如果使用InnoDB 引擎,binlog 日志還可以檢驗 InnoDB 的 redo 日志的 commit 情況。

mysql

  binlog 日志開啟

  日志開啟方式:

  1、添加配置

  log_bin=ON

  log_bin_basename=/path/bin-log

  log_bin_index=/path/bin-log.index

  2、僅僅設置log-bin參數

  log-bin=/path/bin-log

  當開啟 binlog 日志之后,mysql 會創建一個 log_bin_index 指定的 .index 文件和多個二進制日志文件,index 中按順序記錄了mysql使用的所有 binlog 文件。binlog 日志則會以指定的名稱(或默認值) 加自增的數字作為后綴,ex:bin-log.000001,當發生下述三種情況時,binlog 日志便會進行重建:

  文件大小達到 max_binlog_size 參數的值

  執行 flush logs 命令

  重啟 mysql 服務

  binlog 日志格式

  通過參數 binlog_format 參數的值,可以設置 binlog 的格式,可選值有 statement、row、mixed

  * statement 格式:記錄數據庫執行的原始 SQL 語句

  * row 格式:記錄具體的行的修改,這個為目前默認值

  * mixed 格式:因為上邊兩種格式各有優缺點,所以就出現了 mixed 格式.

  不知道你們看完這篇文章以后做何感想呢?是覺得利用MySQL通過binlog的方法恢復數據很簡單呢還是覺得很復雜,但是沒有關系如果你覺得實在是很難看懂的話,你可以在我網站搜索其他相關資訊。

延伸閱讀:

Tag標簽: MySQL   binlog方法   恢復數據  
  • 專題推薦

About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
香港最快开奖现场直播结果