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到本地。