使用mysqlbinlog备份binlog 搭建Binlog Server

binlog是增量备份必备之一,在有些场景下,实时或定期备份binlog是有必要的。

〇 常用的参数:
-R | –read-from-remote-server 表示开启binlog备份,在对应的主节点上请求binlog到本地。

–raw 被复制过来的binlog以二进制的格式存放,如果不加该参数则为text格式。

-r | –result-file 指定目录或文件名:
若指定了–raw参数,-r的值指定binlog的存放目录和文件名前缀;若没有指定–raw参数,-r的值指定文本存放的目录和文件名。

-t 这个选项代表从指定的binlog开始拉取,直到当前主节点上binlog的最后一个。

–stop-never 持续连续从主节点拉取binlog,持续备份到当前最后一个,并继续下去。该参数包含-t

–stop-never-slave-server-id 默认值65535,用于在多个mysqlbinlog进程或者从服务器的情况下,避免ID冲突。

mysqlbinlog开启备份后,直到连接关闭或者被强制kill才会结束。
可通过ps查看到已经开启的备份进程。

用法示例:完整并保持原样的将远程server的binlog拉到本地,并存放在/data/backup_binlog目录中。
注意,-r指定的目录必须写完整,否则会被放在/data目录下,并以”backup_binlog”为前缀命名binlog
如:-r /data/backup_binlog 则会显示为 /data/backup_binlogmysql-bin.000008

〇 用法:

mkdir -p /data/backup_binlog

mysqlbinlog -h$ip -P$port -u$user -p$password -R –raw –stop-never mysql-bin.000008 -r /data/backup_binlog/ &

 

[root@host backup_binlog]# mysql -h$ip -P$port -u$user -p$password -e “SHOW BINARY LOGS”

mysql: [Warning] Using a password on the command line interface can be insecure.

+—————————+———————–+
| Log_name           | File_size           |
+————————-+————————-+
| mysql-bin.000008  | 1073742873   |
| mysql-bin.000009  | 284594590    |
| mysql-bin.000010  | 396303459    |
| mysql-bin.000011   | 154              |
| mysql-bin.000012  | 154              |
| mysql-bin.000013  | 154              |
+———————–+———————-+

检查拉取过来的binlog,与show binary logs结果一致。

[root@sAno1y backup_binlog]# ll

total 1713580

-rw-r—– 1 root root 1073742873 Aug 22 17:12 mysql-bin.000008

-rw-r—– 1 root root 284594590 Aug 22 17:13 mysql-bin.000009

-rw-r—– 1 root root 396303459 Aug 22 17:13 mysql-bin.000010

-rw-r—– 1 root root 154 Aug 22 17:13 mysql-bin.000011

-rw-r—– 1 root root 154 Aug 22 17:13 mysql-bin.000012

-rw-r—– 1 root root 154 Aug 22 17:13 mysql-bin.000013

 

在源实例提交了事务之后,因为加了–stop-never参数,故会持续拉取最新的binlog到本地。

 

 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注