13.4.1 与Master有关的SQL语句

13.4.1.1 PURGE BINARY LOGS Statement

PURGE { BINARY | MASTER } LOGS {
    TO 'log_name'
  | BEFORE datetime_expr
}

binlog是记MySQL server记录数据修改的日志,由binlog日志文件和index文件组成。

purge binary logs会删除指定日志文件或日期前的所有binary log文件,删除后,index文件中的相关记录也会删除,指定的binlog文件成为日志列表的第一个文件。

执行purge binary logs需要BINLOG_ADMIN权限。

Examples:

PURGE BINARY LOGS TO 'mysql-bin.010';
PURGE BINARY LOGS BEFORE '2019-04-02 22:46:26';

purge binary logs不会删除从库正在使用的binary log文件,只会删除该文件之前的binary log 文件.

日期格式: 'YYYY-MM-DD hh:mm:ss'

比较建议的执行流程:

  1. 在slave上,使用show slave status查看正在读取的master日志文件.
  2. 在master上,使用show binary logs查看所有的binlog日志列表.
  3. 找出所有slave上最早的binary log文件. 若所有slave上的数据都是最新的,则该文件为上一步列表中最后一个文件.
  4. 建议对要删除的日志文件做备份.
  5. Purge binary log文件,但必须是比步骤3中文件早的日志文件.

    默认binlog过期时间为30天,在系统启动或日志flush时,会对日志执行删除操作。日志过期时间可以通过修改参数binlog_expire_logs_seconds来修改。

13.4.1.2 RESET MASTER Statement

RESET MASTER [TO binary_log_file_index_number]

Warning

谨慎使用此语句,使用前请确保不会造成binary log数据和GTID执行记录的丢失

RESET MASTER需要RELOAD权限.

在启用binlog的服务器中,RESET MASTER会删除所有的binary log文件,并重置index文件,server被重置为日志开始前的状态. 会创建新的空日志文件,并开始记录日志.

对于使用GTID的服务器,RESET MASTER会重置GTID的执行历史. gtid_purged重置为空, gtid_exected的全局值重置为空, mysql.gtid_executed表数据会被清理掉. 如果server启用了binary log, 日志文件也会被清理掉.

TO:

RESET MASTER TO 1234;

SHOW BINARY LOGS;
+-------------------+-----------+-----------+
| Log_name          | File_size | Encrypted |
+-------------------+-----------+-----------+
| master-bin.001234 |       154 | No        |
+-------------------+-----------+-----------+

RESET MASTERRESET SLAVE的使用:在新搭建的环境中,对数据的复制测试后,可以在slave上执行STOP SLAVERESET SLAVE, 在master上执行RESET master以清除测试数据.

13.4.1.3 SET sql_log_bin Statement

SET sql_log_bin = {OFF|ON}

当前回话,禁用/启用binary log.

mysqldump adds a SET @@SESSION.sql_log_bin=0 statement to a dump file from a server where GTIDs are in use, which disables binary logging while the dump file is being reloaded. The statement prevents new GTIDs from being generated and assigned to the transactions in the dump file as they are executed, so that the original GTIDs for the transactions are used.

results matching ""

    No results matching ""