一 简介 mysql binlog server
二 目的 实时备份线上的binlog 利用备份+binlog进行任何时间点的恢复
三 详细信息
1 基本命令
/usr/local/mysql/bin/mysqlbinlog -R --raw --host= --user=‘’--password='' --stop-never-slave-server-id= --stop-never filename &
use password 采用复制账户权限即可
raw 以binlog格式存储日志,方便后期使用 不加就是以文本格式,意义不大
stop-never-slave-server-id 如果需要启动多个binlog server,需要给binlog server指定server-id
stop-never 持续性拷贝
binlogname 从哪个binlog开始拷贝
2 原理
mysqlbinlog会伪装成一个slave,连接读取,请求指定的binlog file,主库获取接收到这个请求之后就创建一个binlog dump线程推送binlog给mysqlbinlog server。
进程启动后 可以根据show processlist查看到
3 注意点
1 mysql master进程退出后,binlog server进程也会退出
2 mysql5.6 在mysqlbinlog命令执行结束时追加rollback语句 但是5.7没有这个问题需要注意下
4 监控binlog server命令
function check(){
count=`ps -ef|grep $1|grep -v grep`
if [ $count ];
then
else
fi
}
check IP
四 上线注意点
1 最好准备一台机器进行线上binlog的统一收集,这样有几个好处
1 易于管理部署,包括日志本身和进程管理
2 利用开源工具进行binlog解析时可以减少dump时间
2 统一进行收集时要做好之前binlog与日期对应的记录,这样在恢复之前,能找到对应的binlog
3 做好binlog_server的进程监控