LOCK TABLE 会阻止复制吗?

LOCK TABLE 会阻止复制吗?

我有一个主服务器和一个数据库 MySQL,其设置如下:

  • AWS RDS MySQL
  • 版本 5.7.26
  • GTID 已启用并严格执行

我有一个过程,它对LOCK TABLE只读副本中的一个表进行操作并将其锁定长达 8 小时。我想到两个问题:

  • 在此期间,只读副本是否会继续使用主服务器的 binlog?它会停止全部复制还是会选择性地仅复制未锁定的表?
  • 如果它将继续复制,那么通过 binlog 进行的更改对于从表中读取的其他进程是否可见?

答案1

除非你耍了一些狡猾的伎俩,否则 和LOCKUNLOCK奴隶的作用会和对主人的作用一样,但会晚一些。

binlog 的“使用”分为两个阶段:首先是将 binlog 从主服务器复制到从服务器的中继日志。这个过程并不知道流中有哪些命令。

第二步是执行从服务器的中继日志中的命令。执行速度由查询(以及从服务器中发生的其他事情)决定。

相关内容