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
- 檢視寶塔mysql二進位制檔案 mysqlbinlogMySql
- mysqlbinlog命令詳解 Part 5 通過位置和時間檢視日誌MySql
- mysqlbinlog命令詳解 Part 6 讀取遠端MySQL伺服器日誌MySql伺服器
- 遠端備份MySQL二進位制日誌--read-from-remote-serverMySqlREMServer
- 如何將日誌檔案和二進位制檔案快速匯入HDFS?
- mysqlbinlog命令詳解 Part 8 指定 Server IDMySqlServer
- mysqlbinlog命令詳解 Part 10 恢復MySQLMySql
- MySQL 壓縮二進位制日誌MySql
- mysql 二進位制日誌總結MySql
- 進位制詳解:二進位制、八進位制和十六進位制
- 二進位制備份還原案例
- mysql二進位制日誌是什麼MySql
- od 轉儲 二進位制檔案常用命令
- MySQL二進位制檔案(binlog)MySql
- 使用canal偷取MySQL的二進位制日誌MySql
- mysqlbinlog命令詳解 Part 11 其他的一些引數MySql
- 二進位制檔案視覺化(二)視覺化
- Git處理二進位制檔案Git
- 檔案操作(二進位制拷貝)
- mysql的日誌檔案詳解MySql
- mysql二進位制日誌的引數介紹MySql
- Web 前端開發日誌(二):JavaScript 的二進位制操作Web前端JavaScript
- Oracle使用備份檔案集恢復歸檔日誌Oracle
- MySQL什麼時候輪換二進位制日誌MySql
- 如何在MySQL中檢視binlog二進位制日誌?MySql
- mysql關於二進位制日誌binary log的總結MySql
- 二進位制檔案記憶體對映記憶體
- 二進位制檔案安裝安裝etcd
- 介面返回二進位制檔案的下載。
- GTID中MySQL啟動時間慢?二進位制日誌檔案大小可能是問題MySql
- 通過Nvidia簽名的二進位制檔案執行系統命令
- C++ 讀取二進位制檔案到char*C++
- 6.3建立自己執行的二進位制檔案
- 【Linux】檢視二進位制檔案內容_hexdumpLinux
- golang: 給二進位制檔案增加版本資訊Golang