mysqlbinlog 使用簡介

mysqlbinlog常用於binlog導出分析及mysql數據恢復。

下面有一些常用選項,簡單介紹一下。


--base64-output=name 

決定binlog輸出格式選項


'never'選項 

不輸出Sql語句格式

                      

'decode-rows' 選項

將輸出語句格式轉換爲註釋的SQL語句格式,因爲binlog日誌現在大部分都是rows日誌,不是語句日誌,所以轉換語句輸出也只是rows變更的語句,不是當時輸入的sql語句。


如果沒有 --base64-output[=name] 選項,默認給出全部格式,默認是 'auto'。

·自動 ("auto") 或未指定 ("UNSPEC") 將自動顯示 BINLOG 語句所有格式(即二進制格式和語句格式)。

如果沒有--base64-output 選項給出的效果與 --base64-output=AUTO 相同。


--start-datetime=name 

                      開始讀取binlog日誌的指定時間,時區是日誌本地時區,時間格式例子‘2016-12-25 11:25:56 ’(要使用引號,避免shell裏識別出錯。)


 --stop-datetime=name 

                     停止讀取binlog日誌的指定時間,時區是日誌本地時區,時間格式例子‘2016-12-25 11:25:56 ’(要使用引號,避免shell裏識別出錯。)

  

--start-position=# 

                     開始讀取 binlog 日誌在 指定position號碼. 讀取範圍更精準,可以避免時區錯誤,恢復數據時建議使用。


  --stop-position=#   

                    停止讀取 binlog 日誌在 指定position號碼. 讀取範圍更精準,可以避免時區錯誤,恢復數據時建議使用。


  -v    從行事件中重建僞 sql 語句。


  -vv  從行事件中重建僞 sql 語句,添加對數據類型的註釋。


--database=name

   指定導出的數據庫


--skip-gtids 

   輸出時忽略全局事物ID號碼。


導出時間範圍內的binlog日誌,從行事件中重建僞sql 語句,使用Sql語句編碼,如果有多個binlog文件,後續使用>>添加到導出文件,儘量使用絕對路徑。

mysqlbinlog -v --base64-output=decode-rows --start-datetime='2016-12-25 11:25:56' \
--stop-datetime='2016-12-25 11:59:59' binlogname > filename.sql


捉取準確的position號碼範圍,導出sql文件。

mysqlbinlog --start-position=10000 --stop-position=20000 binlogname > filename.sql


mysql進行數據導入。

mysql -u'user' -p'password' < filename.sql #危險操作!!!


參考資料:

1,RDS Mysql中binlog日誌查看  https://help.aliyun.com/knowledge_detail/41709.html

2,mysqlbinlog官方手冊 https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章