暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

17.4.1.26 Replication and Master or Slave Shutdowns

原创 由迪 2020-04-15
551

关闭主服务器并稍后重新启动是安全的。当从站失去与主站的连接时,从站会立即尝试重新连接,并在失败的情况下定期重试。默认值为每60秒重试一次。这可以通过CHANGE MASTER TO 语句更改。从站也能够处理网络连接中断。但是,从设备仅在slave_net_timeout几秒钟内没有收到来自主机的数据后,才注意到网络中断 。如果您的中断时间很短,则可能需要减少 slave_net_timeout。请参见 第5.1.7节“服务器系统变量”。

由于未刷新主二进制日志文件,因此主节点侧的异常关闭(例如,崩溃)可能导致主二进制日志的最终位置小于从节点读取的最新位置。这可能导致从服务器在主服务器备份时无法复制。sync_binlog=1在主my.cnf文件中进行设置有助于最大程度地减少此问题,因为这会使主文件更频繁地刷新其二进制日志。为了在InnoDB与事务一起使用的复制设置中获得最大的持久性和一致性 ,还应该设置 innodb_flush_log_at_trx_commit=1。使用此设置,InnoDB 重做日志缓冲区在每次事务提交时被写出到日志文件,并且日志文件被刷新到磁盘。注意,使用该设置仍然不能保证事务的持久性,因为操作系统或磁盘硬件可能会告诉mysqld磁盘刷新操作已经进行,即使尚未进行。

干净地关闭从站是安全的,因为它可以跟踪其离开的地方。但是,请注意,从站没有打开临时表。请参见 第17.4.1.29节“复制表和临时表”。不干净的关机可能会产生问题,尤其是如果在发生问题之前未将磁盘缓存刷新到磁盘时:

对于事务,从节点提交然后更新 relay-log.info。如果这两个操作之间发生崩溃,则中继日志处理将比信息文件所指示的进行得更远,并且从属服务器将在重新启动后从中继日志中的最后一个事务重新执行事件。

如果从属relay-log.info服务器更新,但服务器主机在写入被刷新到磁盘之前崩溃,则会发生类似的问题 。为了最大程度地减少这种情况的发生,请sync_relay_log_info=1在从属my.cnf文件中进行设置 。默认值为 sync_relay_log_info0,这不会导致强制将写入写入磁盘。服务器依赖操作系统不时刷新文件。

如果您拥有良好的不间断电源,则针对这些类型问题的系统的容错能力将大大提高。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论