溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

binlog 備份是怎么樣的

發布時間:2021-11-16 09:37:14 來源:億速云 閱讀:180 作者:柒染 欄目:MySQL數據庫

本篇文章給大家分享的是有關binlog 備份是怎么樣的,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

binlog server

說明:有時候備份會選擇全備+binlog 那么你們的binlog都是怎么備份的?
mysql 5.6以后,可以利用mysqlbinlog 把遠程機器的日志備份到本地目錄 從而達到增量或是日志安全的增量備份。
環境:
mysql-5.7.16
centos 6.7

172.16.11.187:binlog  server(收集binlog的數據庫服務器
172.16.11.188 : 需要備份binlog的數據庫所在機器


利用mysqlbinlog將遠程binlog文件傳到binlogserver上
187:mysqlbinlog  -R --raw --host=172.16.11.188  --user='root' --password='123456' -P 3306 --stop-never mysql-bin.000005 (執行命令是所在路徑是/root)a


188:mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       177 |
| mysql-bin.000002 |       426 |
| mysql-bin.000003 |   9688778 |
| mysql-bin.000004 |       177 |
| mysql-bin.000005 |       201 |
| mysql-bin.000006 |       154 |
+------------------+-----------+
6 rows in set (0.00 sec)


mysql> flush logs;
Query OK, 0 rows affected (0.01 sec)


mysql> flush logs;
Query OK, 0 rows affected (0.00 sec)


mysql> flush logs;
Query OK, 0 rows affected (0.00 sec)


mysql> flush logs;
Query OK, 0 rows affected (0.00 sec)


mysql> show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       177 |
| mysql-bin.000002 |       426 |
| mysql-bin.000003 |   9688778 |
| mysql-bin.000004 |       177 |
| mysql-bin.000005 |       201 |
| mysql-bin.000006 |       201 |
| mysql-bin.000007 |       201 |
| mysql-bin.000008 |       201 |
| mysql-bin.000009 |       201 |
| mysql-bin.000010 |       154 |
+------------------+-----------+
10 rows in set (0.00 sec)


在binlog server上查看在188上flush  log 新增的binlog有沒有過來:
[root@ces1 ~]# ls -lrth
total 9.4M
-rw-r-----  1 root root  201 Aug 14 15:25 mysql-bin.000005
-rw-r-----  1 root root  201 Aug 14 15:31 mysql-bin.000006
-rw-r-----  1 root root  201 Aug 14 15:31 mysql-bin.000007
-rw-r-----  1 root root  201 Aug 14 15:31 mysql-bin.000008
-rw-r-----  1 root root  123 Aug 14 15:31 mysql-bin.000010
-rw-r-----  1 root root  201 Aug 14 15:31 mysql-bin.000009
-rw-r-----  1 root root  201 Aug 14 15:33 mysql-bin.000015
-rw-r-----  1 root root  201 Aug 14 15:33 mysql-bin.000016
-rw-r-----  1 root root  123 Aug 14 15:33 mysql-bin.000018
-rw-r-----  1 root root  201 Aug 14 15:33 mysql-bin.000017
發現binlog  已經過來了。
拓展:一般的主從復制,如果主從連接停止了,會自動嘗試連接,binlogserver如果停止了并不會自動嘗試連接。
利用腳本來解決這個問題:
binlog_remote.sh
#!/bin/sh
BACKUP_BIN=/tmp/mysqlbinlog
LOCAL_BACKUP_DIR=/data/db/binlog_backup
BACKUP_LOG=/data/db/binlog_backup/backuplog
REMOTE_HOST=172.16.11.188
REMOTE_PORT=3306
REMOTE_USER=root
REMOTE_PASS=123456
FIRST_BINLOG=mysql-bin.000001
#time to wait before reconnecting after failure
SLEEP_SECONDS=10
##create local_backup_dir if necessary
mkdir -p ${LOCAL_BACKUP_DIR}
cd ${LOCAL_BACKUP_DIR}
## 運行while循環,連接斷開后等待指定時間,重新連接
while :
do
 if [ `ls -A "${LOCAL_BACKUP_DIR}" |wc -l` -eq 0 ];then
 LAST_FILE=${FIRST_BINLOG}
 else
 LAST_FILE=`ls -l ${LOCAL_BACKUP_DIR} | grep -v backuplog |tail -n 1 |awk '{print $9}'`
 fi
 ${BACKUP_BIN} --raw --read-from-remote-server --stop-never --host=${REMOTE_HOST} --port=${REMOTE_PORT} --user=${REMOTE_USER} --password=${REMOTE_PASS} ${LAST_FILE}
 echo "`date +"%Y/%m/%d %H:%M:%S"` mysqlbinlog停止,返回代碼:$?" | tee -a ${BACKUP_LOG}
 echo "${SLEEP_SECONDS}秒后再次連接并繼續備份" | tee -a ${BACKUP_LOG} 
 sleep ${SLEEP_SECONDS}
done

以上就是binlog 備份是怎么樣的,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女