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










参考:http://blog.csdn.net/zengxuewen2045/article/details/51476177






来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30162734/viewspace-2143496/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30162734/viewspace-2143496/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值