• 首页
  • css3教程
  • html5教程
  • jQuery手册
  • vue手册
  • php手册
  • MySQL手册
  • apache手册
  • redis手册
  • RESET MASTER语句

    RESET MASTER [TO binary_log_file_index_number]
    
    警告

    请谨慎使用此语句,以确保您不会丢失任何想要的二进制日志文件数据和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 Table)。如果启用了GTID的服务器启用RESET MASTER了二进制日志记录,则还要如上所述重置二进制日志。注意RESET MASTER即使已启用GTID的服务器是禁用了二进制日志记录的复制从属服务器,该方法也是一种重置GTID执行历史记录的方法;RESET SLAVE对GTID执行历史没有影响。有关重置GTID执行历史记录的更多信息,请参阅重置GTID执行历史记录。

    RESET MASTER不带可选TO子句的发行将删除索引文件中列出的所有二进制日志文件,将二进制日志索引文件重置为空,并创建一个从开始的新二进制日志文件1。使用可选TO子句可以从1复位后以外的其他数字启动二进制日志文件索引。

    RESET MASTER与with TO子句一起使用以指定从其开始的二进制日志文件索引号,它通过提供一个代替FLUSH BINARY LOGSand PURGE BINARY LOGS TO语句的语句来简化故障转移。检查索引号是否使用合理的值。如果输入了不正确的值,则可以通过发布另一个RESET MASTER带有或不带有TO子句的语句来更正此值。如果您没有更正超出范围的值,则无法重新启动服务器。

    下面的示例演示TO子句的用法:

    RESET MASTER TO 1234;
    
    SHOW BINARY LOGS;
    +-------------------	+-----------	+-----------	+
    | Log_name          	| File_size 	| Encrypted 	|
    +-------------------	+-----------	+-----------	+
    | master	-bin.001234 	|       154 	| No        	|
    +-------------------	+-----------	+-----------	+
    
    重要

    RESET MASTER没有该TO子句的影响与PURGE BINARY LOGS两个方面的不同:

    1. RESET MASTER删除索引文件中列出的所有二进制日志文件,仅留下一个数字后缀为的空二进制日志文件.000001,而编号不会被重置PURGE BINARY LOGS
    2. RESET MASTER不是打算,而任何复制的奴隶正在运行使用。RESET MASTER从属运行时何时使用的行为是不确定的(因此不受支持),而PURGE BINARY LOGS复制从属运行时可以安全使用。

    另请参见“ PURGE BINARY LOGS语句”。

    RESET MASTERTO首次设置主服务器和从服务器时,不带该子句的控件可能会很有用,这样您就可以按照以下步骤验证设置:

    1. 启动主服务器和从服务器,然后开始复制(请参见“配置复制”)。
    2. 在主服务器上执行一些测试查询。
    3. 检查查询是否已复制到从服务器。
    4. 复制正常运行时,在从属服务器上STOP SLAVE依次发出问题RESET SLAVE,然后确认从属服务器上不存在来自测试查询的不需要的数据。
    5. RESET MASTER在主服务器上发出以清理测试查询。

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