1.在每天12点前5分钟,停止 报表slave,确保不会再从 master 接收事件
2.12点后,检查 master 上的二进制日志,找到 12 点前记录的最后一个事件
3.记录该事件的 binlog 位置,然后启动 slave
4.直到 slave 同步到整个位置后停止
具体操作:
1.用 Linux 计划任务停止 slave
>stop slave;
>show slave status\G;
2.采用 mysqlbinlog 命令读取二进制日志的内容 --start-datetime 和 --stop-datetime,获取 停止 slave 时刻到 12 点期间的所有事件
> mysqlbinlog --force --read-from-remote-server --host=reporting.bigcorp.com \
>--start-datetime='2009-09-25 23:55:00' \
>--stop-datetime=
'2009-09-25 23:59:59' \
>binlog_files
--force 强制读取已经打开的二进制日志文件
查找到 12 点前最后一个事件写入位置,如: end_log_pos 2650
3.开启 slave 直到 end_log_pos 位置
> start slave until
>
master_log_file='mysql-bin.000003',
>
master_log_pos=2650;
4.使用 master_pos_wait 函数等待 slave 达到停止的位置
>select master_pos_wait('mysql-bin.000003', 2650);