MySQL Binlog Server:是利用某个工具,把线上活跃的库的日志拉取到本地进行备份。在MySQL 5.6以后,可以利用mysqlbinlog这个命令去把远程机器的日志备份到本地目录,从而达到增量或是日志安全方面的备份。
做好MySQL日志的备份,是数据安全的一个重要保证。以前通过写程序来实现,从MySQL 5.6出现以后,DBA同步有福了,不用写程序了。
下面说一下binlog Server怎么构建。
利用mysql 5.6的mysqlbinlog命令,可以把远程的binlog完全镜象一份放到本地,方法如下:
1
|
/usr/local/mysql/bin/mysqlbinlog-R–raw–host=192.168.11.100–user='repl'–password='repl4slave'–stop-never mysql-bin.000001&
|
解释一下:
-R -read-from-remote-server 表示从远程机器上读取binlog,要确保远程mysql存储,需要提供-host, -user, -password参数
-raw 以binlog格式存储日志,方便后期使用
-stop-never 一直连接到远程的server上读取日志,直接到远程的server关闭后才会退出。或是被pkill掉
mysql-bin.0000001 这个日志名表示从那个日志开始读取
如果需要启动多个binlog server,需要给binlog server指定server-id(默认是65535),可以利用 -stop-never-slave-server-id变更
启动一个server-id为1的binlog server:
1
|
/usr/local/mysql/bin/mysqlbinlog-R–raw–host=192.168.11.100–user='repl' –password='repl4slave'–stop-never–stop-never-slave-server-id=1mysql-bin.000003& |
启动一个server-id为2的binlog server:
1
|
/usr/local/mysql/bin/mysqlbinlog-R–raw–host=192.168.11.100–user='repl' –password='repl4slave'–stop-never–stop-never-slave-server-id=2mysql-bin.000003& |
思考:
这种binlog server怎么关闭才算安全呢?