10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.1 mb
PDF (A4)- 41.2 mb
PDF (RPM)- 39.8 mb
HTML下载(TGZ)- 9.5 mb
HTML下载(Zip)- 9.6 mb
HTML下载(RPM)- 8.1 mb
手册页(TGZ)- 260.6 kb
手册页(Zip)- 371.7 kb
信息(Gzip)- 3.9 mb
信息(邮政编码)- 3.9 mb
本手册节选

17.1.4.3禁止GTID事务在线

本节介绍如何在已经在线的服务器上禁用GTID事务。此过程不需要使服务器脱机,适合在生产中使用。但是,如果您可以在禁用gtid模式时使服务器脱机,那么这个过程就更容易了。

该过程类似于在服务器在线时启用GTID事务,但是颠倒了步骤。唯一不同的是等待记录的事务复制的时间点。

启动服务器前,请确保服务器已满足以下前提条件:

  • 所有拓扑中的服务器必须使用MySQL 5.7.6或更高版本。您不能在任何一台服务器上在线禁用GTID事务,除非所有拓扑中的服务器正在使用该版本。

  • 所有服务器都有gtid_mode设置为

  • ——replicate-same-server-id选项未在任何服务器上设置。属性同时设置此选项,则不能禁用GTID事务——log-slave-updates选项(这是默认值)并启用二进制日志记录(这也是默认值)。如果没有gtid,这种选项组合将导致循环复制中的无限循环。

  1. 在每个副本上执行以下操作,如果使用多源复制,则对每个通道执行此操作,并包含为通道渠道条款:

    停止奴隶[为通道'通道'];更改MASTER为MASTER_AUTO_POSITION = 0, MASTER_LOG_FILE = file, \ MASTER_LOG_POS = position[用于通道' CHANNEL '];启动SLAVE[用于通道' CHANNEL '];MySQL 8.0.22 / 8.0.23: STOP copy [FOR CHANNEL ' CHANNEL '];更改复制源为SOURCE_AUTO_POSITION = 0, \ SOURCE_LOG_FILE = file, \ SOURCE_LOG_POS = position[用于通道' CHANNEL '];开始复制[为通道' CHANNEL '];
  2. 在每个服务器上执行:

    设置@@GLOBAL。Gtid_mode = on_permissive;
  3. 在每个服务器上执行:

    设置@@GLOBAL。Gtid_mode = off_permissive;
  4. 在每个服务器上,等待变量@@GLOBAL。GTID_OWNED等于空字符串。可以使用以下方法检查:

    选择@@GLOBAL.GTID_OWNED;

    在副本上,理论上可能是空的,然后又是非空的。这不是问题,只要空一次就够了。

  5. 等待当前存在于任何二进制日志中的所有事务复制到所有副本。看到17.1.4.4节“验证匿名事务的复制”一种检查所有匿名事务是否已复制到所有服务器的方法。

  6. 如果您将二进制日志用于复制以外的任何用途,例如执行时间点备份或恢复:请等待,直到您不再需要具有GTID事务的旧二进制日志。

    例如,在步骤5完成后,您可以执行刷新日志在进行备份的服务器上。然后,要么显式地进行备份,要么等待您可能已经设置的任何定期备份例程的下一次迭代。

    理想情况下,等待服务器清除步骤5完成时存在的所有二进制日志。还要等待步骤5之前的备份过期。

    重要的

    这是这个过程中很重要的一点。重要的是要理解包含GTID事务的日志在下一步之后不能使用。在继续之前,您必须确保GTID事务在拓扑中不存在。

  7. 在每个服务器上执行:

    设置@@GLOBAL。Gtid_mode = off;
  8. 在每个服务器上,设置gtid_mode =了my.cnf

    如果你想设置enforce_gtid_consistency =了,你现在就可以这样做了。设置完成后,您应该添加enforce_gtid_consistency =了到您的配置文件。

如果你想要降级到MySQL的早期版本,你现在就可以这样做,使用正常的降级过程。