Documentation Home

13.4.2.3 RESET SLAVE 语句

RESET SLAVE [ALL]

RESET SLAVE使副本忘记它在源的二进制日志中的复制位置。此语句用于干净启动:它清除复制元数据存储库,删除所有中继日志文件,并启动一个新的中继日志文件。MASTER_DELAY它还将使用选项指定的复制延迟重置为 0 CHANGE MASTER TORESET SLAVE不会改变gtid_executed或 的值gtid_purged。要使用 RESET SLAVE,必须停止复制线程,因此 STOP SLAVE在发出 RESET SLAVE.

笔记

所有中继日志文件都被删除,即使它们还没有被复制 SQL 线程完全执行。(如果您已发出 STOP SLAVE声明或副本负载很高,则副本可能存在这种情况。)

在 MySQL 5.6 中(与 MySQL 5.1 及更早版本不同),RESET SLAVE不更改任何复制连接参数,例如源的主机名和端口或复制用户帐户名和密码,这些参数保留在内存中。这意味着 START SLAVE可以在不需要后面的CHANGE MASTER TO 声明的情况下发布RESET SLAVE

如果副本mysqld在之后关闭, 连接参数将被重置 RESET SLAVE。在 MySQL 5.6.3 及更高版本中,您可以改为使用 RESET SLAVE ALL重置这些连接参数(错误 #11809016)。

RESET SLAVE ALL不清除由 IGNORE_SERVER_IDS设置的列表 CHANGE MASTER TO。此问题已在 MySQL 5.7 中修复。(漏洞#18816897)

在 MySQL 5.6.7 及更高版本中,RESET SLAVE导致正在进行的事务的隐式提交。请参阅 第 13.3.3 节,“导致隐式提交的语句”

如果复制 SQL 线程在停止和 RESET SLAVE发出时正在复制临时表,这些复制的临时表将在副本上删除。

笔记

在 NDB Cluster 副本 SQL 节点上使用时,RESET SLAVE清除 mysql.ndb_apply_status表。ndb_apply_status在使用这个使用 存储引擎的语句时,您应该记住 NDB,因此由连接到副本集群的所有 SQL 节点共享。

从 MySQL NDB Cluster 7.4.9 开始,您可以通过 在执行之前发出来覆盖此行为,这可以防止副本在这种情况下 清除 表。SET GLOBAL @@ndb_clear_apply_status=OFFRESET SLAVEndb_apply_status