13.4.1.2 RESET MASTER 语句

RESET MASTER
警告

请谨慎使用此语句,以确保您不会丢失任何想要的二进制日志文件数据和 GTID 执行历史记录。

RESET MASTER需要 RELOAD特权。

对于启用了二进制日志记录的服务器(log_binis ON),RESET MASTER删除所有现有的二进制日志文件并重置二进制日志索引文件,将服务器重置为二进制日志记录启动之前的状态。创建一个新的空二进制日志文件,以便可以重新启动二进制日志记录。

对于正在使用 GTID 的服务器 ( gtid_modeis ON),发出RESET MASTER 重置 GTID 执行历史记录。系统变量的值 gtid_purged设置为空字符串(''),系统变量的全局值(但不是会话值) gtid_executed设置为空字符串, mysql.gtid_executed表被清除(见 mysql.gtid_executed 表)。如果启用 GTID 的服务器启用 RESET MASTER了二进制日志记录,则还如上所述重置二进制日志。请注意,这 RESET MASTER是重置 GTID 执行历史的方法,即使启用 GTID 的服务器是禁用二进制日志记录的副本; RESET SLAVE对 GTID 执行历史没有影响。有关重置 GTID 执行历史记录的更多信息,请参阅 重置 GTID 执行历史记录

重要的

的效果在 2 个关键方面 RESET MASTER 与 的不同:PURGE BINARY LOGS

  1. RESET MASTER删除 索引文件中列出的所有二进制日志文件,只留下一个数字后缀为 的空二进制日志文件.000001,而编号不会由 重置 PURGE BINARY LOGS

  2. RESET MASTER不 打算在任何副本运行时使用when used while replicas are running的行为 RESET MASTER未定义(因此不受支持),而PURGE BINARY LOGSmay be safely used while replicas are running。

另见第 13.4.1.1 节,“PURGE BINARY LOGS 语句”

RESET MASTER当您第一次设置源和副本时,这很有用,因此您可以按如下方式验证设置:

  1. 启动源和副本,并开始复制(请参阅 第 16.1.2 节,“设置基于二进制日志文件位置的复制”)。

  2. 在源上执行一些测试查询。

  3. 检查查询是否已复制到副本。

  4. 当复制正常运行时,问题 STOP SLAVERESET SLAVE在副本上,然后验证副本上是否不再存在任何不需要的数据。

  5. 在源上发布RESET MASTER以清理测试查询。

在验证设置、重置源和副本并确保没有不需要的数据或测试生成的二进制日志文件保留在源或副本上之后,您可以启动副本并开始复制。