高性能MySQL:创建日志服务器

作者:港云互联 时间:2019-12-11

        使用MySQL复制的另.种用途就是创建没有数据的日志服务器。它唯一的目的就是更加容易重放并且1或者过滤二进制日志事件。就如本章稍后所述,它对崩溃后重启复制很有帮助。同时对基于时间点的恢复也很有帮助,在后续我们会讨论。


        假设有一组二进制日志或中继日志——可能从备份或者一台崩溃的服务器上获取——希望能够重放这些日志中的事件,可以通过mysqlbinlog工具从其中提取出事件,但更加方便和高效的方法是配置一个没有任何数据的MySQL实例并使其认为这些二进制日志是它拥有的。如果只是临时需要,可以从htp://mysqlsandbox.net上获得一个MySQL沙箱脚本来创建日志服务器。因为无须执行二进制日志,日志服务器也就不需要任何数据。它的目的仅仅是将数据提供给别的服务器(但复制账户还是需要的)。

高性能MySQL:创建日志服务器

        我们来看看该策略是如何工作的(稍后会展示一些相关应用)。假设日志被命名为somelog-bin. 00001、somelog -bin. 000002,等等,将这些日志放到日志服务器的日志文件夹中,假设为/ar/log/mysql。然后在启动服务器前编辑my.cnf文件,如下所示:


log_bin        =/var/log/mysql/somelog_bin

log_bin_index=/var/1og/mysql/somelog_bin. index


        服务器不会 自动发现日志文件,因此还需要更新日志的索引文件。下面这个命令可以在类UNIX系统上完成。


            #/bin/ls-/var/log/mysql/somelog-bin.[0-9]*>/var/log/mysql/somelog-bin.index


        确保运行MsSQL的账户能够读写日志索引文件。现在可以启动日志服务器并通过SHOM MASTER LOGS命令来确保其找到日志文件。


为什么使用日志服务器比用myqbig来实现恢复更好呢?有以下几个原因:


        ●复制作为应用二进制日志的方法已经被大量的用户所测试,能够证明是可行的。mysqlbinlog并不能确保像复制那样工作,井且可能无法正确生成二进制日志中的数据更新。


        ●复制的速度更快, 因为无须将语句从日志导出来并传送给MySQL。


        ●可以很容易观察到复制过程。


        能够更方便处理错误。例如,可以跳过执行失败的语句。


        更方便过滤复制事件。


        ●有时候 mysqlbinlog会因为日志记录格式更改而无法读取二进制日志。





新人注册,即送价值满880元现金劵

立即注册>>
客服 电话 反馈 活动 回顶部

服务热线

+852-5764-9835

1对1贴心服务,7X24小时热线