binlog 备份是怎么样的

网友投稿 470 2023-12-27

binlog 备份是怎么样的

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:后端有必要学js吗?
下一篇:MySQL怎样快速创造百万测试数据
相关文章

 发表评论

暂时没有评论,来抢沙发吧~