binlog 备份是怎么样的

71次阅读
没有评论

共计 2977 个字符,预计需要花费 8 分钟才能阅读完成。

本篇文章给大家分享的是有关 binlog 备份是怎么样的,丸趣 TV 小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着丸趣 TV 小编一起来看看吧。

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 备份是怎么样的,丸趣 TV 小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-19发表,共计2977字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)