mysql 架构 ~ binlog_server

时间:2023-03-10 05:17:18
mysql 架构 ~ binlog_server

一 简介 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的进程监控