首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绕过,空中继日志

绕过,空中继日志
EN

Database Administration用户
提问于 2014-07-21 17:37:07
回答 1查看 358关注 0票数 1

我们有一个简单的1:1主-从复制配置。主服务器崩溃了,但是我们恢复了,复制看起来很好(通过pt-心跳和显示从属状态来确认),但是我们发现了一个小的、奇怪的问题:有一个旧的、空的、绕过的中继日志挂在奴隶上。

我们正在中继。000725,而这个是中继。000724,所以我们已经过去了。更重要的是,它不包含任何实际查询。只是元数据。

我能删除这个吗?是什么引起的?

代码语言:javascript
复制
> /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!40019 SET
> @@session.max_insert_delayed_threads=0*/; /*!50003 SET
> @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER
> /*!*/;
> # at 4
> #140704  3:36:04 server id 16  end_log_pos 107    Start: binlog v 4, server v 5.5.38 created 140704  3:36:04 BINLOG '
> ZFm2Uw8QAAAAZwAAAGsAAAAAAAQANS41LjM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
> AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAVAAEGggAAAAICAgCAA==
> '/*!*/;
> # at 107
> #140721  4:22:51 server id 14  end_log_pos 1073741944     Rotate to bin-log.006142  pos: 4
> # at 148
> #140704  3:36:04 server id 16  end_log_pos 187    Rotate to relay.000725  pos: 4 DELIMITER ;
> # End of log file ROLLBACK /* added by mysqlbinlog */; /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SET
> @@SESSION.PSEUDO_SLAVE_MODE=0*/;
EN

回答 1

Database Administration用户

回答已采纳

发布于 2014-07-21 18:39:12

你可以毫无问题地删除它。为什么?

查找文件relay-log.index并显示它

代码语言:javascript
复制
# cat relay-log.index

您将看到中继日志、MySQL复制需要和旋转的列表。如果relay.000724不在relay.index中,则可以删除relay.000724而不破坏任何内容。

为什么还在附近?可能是任何东西。在愤怒之后设置复制、跳过SQL错误、简单地启动和停止以及低过期之间,可能会留下一个或多个中继日志。

根据这些情况,如果中继日志没有出现在relay.index中,则可以删除它。

为什么中继日志如此空?

它与复制用于旋转到下一个中继日志的机制有关。你不会经常看到这些烦人的小文件。我看到它们的唯一一次是带着下列之一:

  • 当SQL线程中断时
  • 当SQL线程非常忙地处理长时间运行的查询时

在这两种情况下,IO线程都会继续收集binlog事件。当中继日志达到1G或任何最大值_联木_大小最大值_继电器_日志_大小时,没有触发旋转,而是在两个没有任何内容的小中继日志中标记会发生旋转的位置。

更新2014-07-21 15:28

由于relay-log.index都是中继日志,所以您可以做两件事:

  • 别管它,让MySQL复制自己旋转它
  • 使用下面的relay-log.000001将所有中继日志重新设置为
    • 运行STOP SLAVE;
    • 运行SHOW SLAVE STATUS\G
    • 在状态中找到Relay_Master_Log_File (假设它是mysql-bin.001234)
    • 在状态中找到Exec_Master_Log_File (假设它是123789456)
    • 运行CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.001234',MASTER_LOG_POS=123789456;
    • 运行START SLAVE;
票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/71992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档