共计 1767 个字符,预计需要花费 5 分钟才能阅读完成。
binlog 是增量备份必备之一,在有些场景下,实时或定期备份 binlog 是有必要的。
其实官方 MySQLbinlog 自带这个功能。
〇 常用的参数:
-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@sAno1y 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
在 source 实例提交了事务之后,因为加了 –stop-never 参数,故会持续拉取最新的 binlog 到本地。
作为 DBA,有全备 +binlog 的副本,感觉睡觉都香了许多。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-09/146649.htm