MySQL5.7開啟binlog日志,及數據恢復簡單示例


  1、相關命令

  1)查看是否開啟 binlog日志(默認不開啟,log_bin值為OF)及日志位置

  show variables like '%log_bin%';

  

  2)查看產生的 日志文件。

  show binary logs;

  3)查看當前使用的日志文件,即記錄操作的最后一個日志文件

  show master status;

  4)查看日志事件信息 ,開始、結束操作位置等

  show binlog events;

  5)查看mysql-bin.000001日志文件的事件信息 ,開始、結束操作位置等

  show binlog events in 'mysql-bin.000001';

  6)產生新日志,后面的操作會寫到新日志中,日志名mysql-bin.00000X+1

  flush logs;

  7)清空所有的日志,從mysql-bin.000001開始重新記錄日志

  reset master;

  8)查詢mysql-bin.000001中記錄的操作,不顯示sql,要進入到mysql的安裝目錄中

  mysqlbinlog mysql-bin.000001;

  9)查詢mysql-bin.000001中記錄的操作,會顯示sql語句

  mysqlbinlog --base64-output=decode-rows -v mysql-bin.000001;

  2、開啟binlog

  修改配置文件/etc/my.cnf,增加如下配置:

log_bin=mysql-bin  
server-id = 1

  說明:

  1)看准log_bin是下划線,不是橫杠,mysql-bin是定義的 產生日志的文件名前綴。

  2)server-id的值隨便指定 ,集群環境下不能重復。

  3)配置完成后,需要重啟數據庫,此時/var/lib/mysql下已經產生日志文件mysql-bin.index、mysql-bin.000001

  3、演示數據恢復

  1)查看當前日志文件

  

  當前記錄日志文件mysql-bin.000001,初始位置154。 

  2)新建數據庫mydb1,新建表t_test1,並准備數據如下

  

   3)再次查看記錄位置,發現記錄位置已改變

  

  4) 查看mysql-bin.000001日志文件的事件信息 ,開始、結束操作位置等

  

  

  5)查看記錄日志的詳細信息,可以看到sql語句

  

  

  6)重新開啟新日志

  

  7)開始演示恢復表操作,首先刪除表 

  

  8)查看建表位置

[root@localhost mysql]# mysqlbinlog --base64-output=decode-rows -v mysql-bin.000001;

  

  9)執行恢復語句,查詢結果,表及數據恢復完成。

  

  

  備注:本篇主要目的是演示binlog的相關命令,其中數據恢復的例子單純為了演示,實際工作中要復雜的多,相關文章請參考后面的文章。

 

 

   

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM