mysqlbinlog命令詳解 Part 7 備份二進位制日誌檔案
前情提要
實驗環境
此次實驗的環境如下
-
MySQL 5.7.25
-
Redhat 6.10
-
binlog模式採用row模式
前面的一些章節我們對mysqldump常用命令進行了講解
這個專題的內容為mysqlbinlog命令的詳解
mysqlbinlog是MySQL中用來處理binlog的工具
這節內容講如何備份二進位制檔案
1. 概念介紹
預設情況下mysqlbinlog讀取日誌檔案並以文字形式顯示或者儲存到一個檔案中
該命令既可以讀取本地日誌檔案又可以讀取遠端資料庫檔案(不包含遠端資料庫relay log)
同樣我們可以使用mysqlbinlog輸出原始二進位制的內容以達到備份的目的
其支援靜態備份(Static )和線上備份(Live)
-
靜態備份
備份指定的日誌檔案
-
線上備份
備份到最後一個檔案不斷開,持續備份新生成的事件,直到資料庫斷開或mysqlbinlog強制停止
2. 備份選項
如果需要用mysqlbinlog備份日誌檔案則最少需要使用如下兩個選項
- 使用 --read-from-remote-server或者 -R 參選項
- 使用-- raw選項來備份原始二進位制內容
2.1 --read-from-remote-server
需要搭配如下連線引數來使用
-
--host
-
--password
-
--port
-
--protocol
-
--socket
-
--user
這個引數需要遠端資料庫開啟,而且只能讀取binlog,不能讀取relay log
連線的使用者需要有連線遠端資料庫的許可權
具體可見上節Part 6 的內容
2.2 -- raw選項
該選項有如下選項搭配使用
-
--stop-never
使用該選項使mysqlbinlog在讀取到最後一個日誌檔案後不斷開連線
-
--stop-never-slave-server-id=id
該選項和--stop-never一起使用,指定mysqlbinlog所用到的server_id,預設為65545,用來防止server id衝突,如該資料庫的slave節點或另一個mysqlbinlog程式
-
--result-file
指定輸出檔案的字首名稱
3. 備份命令
備份既可以連線本地資料庫也可以連線遠端資料庫
3.1 靜態備份
使用如下命令來進行靜態備份
mysqlbinlog --read-from-remote-server --host 11.12.14.29 --user system --password --port 3306 --protocol=tcp --raw mysql-bin.000001 mysql-bin.000002 mysql-bin.000003 --result-file=/tmp/
mysqlbinlog --read-from-remote-server --host 11.12.14.29 --user system --password --port 3306 --protocol=tcp --raw --to-last-log mysql-bin.000001 --result-file=/tmp/
第一個命令備份mysql-bin.000001 mysql-bin.000002 mysql-bin.000003 3個檔案
第二個命令從mysql-bin.000001 開始備份到最後一個
區別為如果在備份過程中新增了mysql-bin.000004檔案,則第二個命令會備份他
兩個命令會在讀取到最後一個檔案後斷開連線
使用--result-file引數指定備份的字首,否則將備份到當前目錄,名字同二進位制檔案,會覆蓋已存在的檔案
注意這裡和上期的文字檔案輸出不一樣
我們可以使用下面命令來獲取當前有哪些binlog
mysql> SHOW BINARY LOGS;
3.2 線上備份
使用如下命令線上備份
mysqlbinlog --read-from-remote-server --host 11.12.14.29 --user system --password --port 3306 --protocol=tcp --raw --stop-never mysql-bin.000001 --result-file=/tmp/
該命令表示從mysql-bin.000001 開始備份,讀取到最後一個時不斷開連線並繼續備份新的事件
不需要使用--to-last-log 引數,因為--stop-never會自動使用該引數
4. mysqlbinlog備份的一些限制
- 服務重啟或網路故障後不會自動連線
- 就算sync_binlog=1開啟,mysqlbinlog也不保證可以獲取最近的一些事件,你可以在備份時使用flush logs來確保
- 其延遲和複製的延遲相似
5. 參考連結
https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog-backup.html
好了 今天的內容就說到這裡,下節再見
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28413242/viewspace-2650697/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysqldump全量備份+mysqlbinlog二進位制日誌增量備份MySql
- mysqlbinlog 處理二進位制日誌檔案的工具MySql
- mysqlbinlog命令詳解 Part 9 MySQL備份策略MySql
- mysqlbinlog二進位制日誌檢視工具MySql
- mysql二進位制日誌詳解MySql
- 檢視寶塔mysql二進位制檔案 mysqlbinlogMySql
- mysql 日誌之二進位制日誌MySql
- MySQL二進位制日誌MySql
- mysql 二進位制日誌MySql
- mysqlbinlog命令詳解 Part 5 通過位置和時間檢視日誌MySql
- mysqlbinlog命令詳解 Part 6 讀取遠端MySQL伺服器日誌MySql伺服器
- 如何將日誌檔案和二進位制檔案快速匯入HDFS?
- 遠端備份MySQL二進位制日誌--read-from-remote-serverMySqlREMServer
- 管理mysql二進位制日誌MySql
- mysql的二進位制日誌MySql
- 備份歸檔日誌檔案
- 進位制詳解:二進位制、八進位制和十六進位制
- MySQL 壓縮二進位制日誌MySql
- mysql 二進位制日誌總結MySql
- mysqlbinlog命令詳解 Part 8 指定 Server IDMySqlServer
- mysqlbinlog命令詳解 Part 10 恢復MySQLMySql
- 二進位制備份還原案例
- rman全庫備份備份歸檔日誌檔案
- mysql二進位制日誌是什麼MySql
- mysql二進位制日誌格式介紹MySql
- MySQL如何傳輸二進位制日誌MySql
- 控制檔案恢復—從自動或二進位制備份中恢復
- 二進位制檔案複製
- php寫二進位制檔案PHP
- 二進位制檔案拷貝
- 使用canal偷取MySQL的二進位制日誌MySql
- mysql二進位制日誌相關引數MySql
- od 轉儲 二進位制檔案常用命令
- 使用logmnr,在RMAN備份檔案中恢復備份的歸檔日誌檔案進行分析
- 備份歸檔日誌
- 二進位制檔案視覺化(二)視覺化
- 備份之歸檔重做日誌備份
- RMAN備份資料檔案+控制檔案+歸檔日誌