使用mysqlbinlog備份binlog 搭建Binlog Server

神諭丶發表於2017-08-22
binlog是增量備份必備之一,在有些場景下,實時或定期備份binlog是有必要的。
其實官方mysqlbinlog自帶這個功能。


〇 常用的引數:
-R | --read-from-remote-server 表示開啟binlog備份,在對應的主節點上請求binlog到本地。

--raw 被複制過來的binlog以二進位制的格式存放,如果不加該引數則為text格式。

-r | --result-file 指定目錄或檔名:
若指定了--raw引數,-r的值指定binlog的存放目錄和檔名字首;若沒有指定--raw引數,-r的值指定文字存放的目錄和檔名。

-t 這個選項代表從指定的binlog開始拉取,直到當前主節點上binlog的最後一個。

--stop-never 持續連續從主節點拉取binlog,持續備份到當前最後一個,並繼續下去。該引數包含-t

--stop-never-slave-server-id 預設值65535,用於在多個mysqlbinlog程式或者從伺服器的情況下,避免ID衝突。

mysqlbinlog開啟備份後,直到連線關閉或者被強制kill才會結束。
可通過ps檢視到已經開啟的備份程式。

用法示例:完整並保持原樣的將遠端server的binlog拉到本地,並存放在/data/backup_binlog目錄中。
注意,-r指定的目錄必須寫完整,否則會被放在/data目錄下,並以"backup_binlog"為字首命名binlog
如:-r /data/backup_binlog 則會顯示為 /data/backup_binlogmysql-bin.000008


  1. mkdir -p /data/backup_binlog
  2. mysqlbinlog -h$ip -P$port -u$user -p$password -R --raw --stop-never mysql-bin.000008 -r /data/backup_binlog/ &

  1. [root@sAno1y backup_binlog]# mysql -h$ip -P$port -u$user -p$password -e "SHOW BINARY LOGS" 
  2. mysql: [Warning] Using a password on the command line interface can be insecure.
  3. +------------------+------------+
  4. | Log_name         | File_size  |
  5. +------------------+------------+
  6. | mysql-bin.000008 | 1073742873 |
  7. | mysql-bin.000009 | 284594590  |
  8. | mysql-bin.000010 | 396303459  |
  9. | mysql-bin.000011 | 154        |
  10. | mysql-bin.000012 | 154        |
  11. | mysql-bin.000013 | 154        |
  12. +------------------+------------+


  13. 檢查拉取過來的binlog,與show binary logs結果一致。
  14. [root@sAno1y backup_binlog]# ll
  15. total 1713580
  16. -rw-r----- 1 root root 1073742873 Aug 22 17:12 mysql-bin.000008
  17. -rw-r----- 1 root root 284594590 Aug 22 17:13 mysql-bin.000009
  18. -rw-r----- 1 root root 396303459 Aug 22 17:13 mysql-bin.000010
  19. -rw-r----- 1 root root 154 Aug 22 17:13 mysql-bin.000011
  20. -rw-r----- 1 root root 154 Aug 22 17:13 mysql-bin.000012
  21. -rw-r----- 1 root root 154 Aug 22 17:13 mysql-bin.000013

在source例項提交了事務之後,因為加了--stop-never引數,故會持續拉取最新的binlog到本地。

作為DBA,有全備+binlog的副本,感覺睡覺都香了許多。




〇 參考文件:
MySQL 5.7 Reference Manual - MySQL Programs - mysqlbinlog — Utility for Processing Binary Log Files
http://wubx.net/mysql-binlog-server/


作者微信公眾號(持續更新)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29773961/viewspace-2143967/,如需轉載,請註明出處,否則將追究法律責任。

相關文章