如何使用MySql复制获取从属提交时间戳?

时间:2018-11-22 05:52:36

标签: mysql replication database-replication mysql-8.0

我一直在寻找方法来收集有关MySql 8上的复制延迟的信息。我找到了一种替代解决方案,但我想有一种更简单的方法可以做到这一点。

通过阅读其reference manual,我发现我可以在performance_schema数据库中获得有用的信息。 当我查看从服务器上的表 replication_connection_status 时,我可以找到以下信息,以及其他信息:

  • 原始主服务器提交交易时( LAST_QUEUED_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP
  • 直接主人提交交易时( LAST_QUEUED_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP )。
  • 从站开始并完成将更新写入其中继日志时( LAST_QUEUED_TRANSACTION_START_QUEUE_TIMESTAMP LAST_QUEUED_TRANSACTION_END_QUEUE_TIMESTAMP )。

但是它缺少有关何时在此从属服务器上提交事务的信息。

替代解决方案: 执行这些更新的复制,从从服务器到第三台服务器(它的主服务器是我们试图从中获取此信息的从服务器),然后在第三台服务器上查看列 LAST_QUEUED_TRANSACTION_IMMEDIATE_COMMIT_TIMESTAMP ,主Slave服务器已提交事务。

可能的解决方案: events_transactions_history 可能包含事务结束的时间,但是时间格式令人困惑。 根据{{​​3}}:

  

计时器基线(“时间零”)出现在性能架构上   服务器启动期间进行初始化。 TIMER_START和TIMER_END值   事件中的值表示自基线以来的皮秒。 TIMER_WAIT值   持续时间以皮秒为单位。

我不知道如何确切知道这个“零时光”到底是什么,我们得到的只是它发生在服务器启动期间,但是我怎么能得到这个准确的时间呢?

当然,如果我错过了一个更简单的解决方案,请告诉我。

谢谢。

0 个答案:

没有答案