篮球世界杯在哪买球Mysql数据库清理binlog日志命令

概述

MySQL的二进制日志(binary log)是一个二进制文件,主要用于记录修改数据或有可能引起数据变更的MySQL语句。二进制日志(binary log)中记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间、执行时长、操作数据等其它额外信息,但是它不记录SELECT、SHOW等那些不修改数据的SQL语句。二进制日志(binary log)主要用于数据库恢复和主从复制,以及审计(audit)操作。

今天主要分享下mysql数据库应该如何正确的删除binlog日志,这里要注意不要强制使用rm命令进行清除。否则mysq-bin.index错乱,最终导致后期expire-log-days配置项失效。

二进制日志(Binary log)

1、查看binlog日志

a、它包含的内容及作用如下:

mysql show binary logs;

包含了所有更新了数据或者已经潜在更新了数据(比如没有匹配任何行的一个DELETE)

2、删除某个日志文件之前的所有日志文件

包含关于每个更新数据库(DML)的语句的执行时间信息

purge binary logs to 'mysql-bin.000035';

不包含没有修改任何数据的语句,如果需要启用该选项,需要开启通用日志功能

3、清理2019-09-09 13:00:00前binlog日志

主要目的是尽可能的将数据库恢复到数据库故障点,因为二进制日志包含备份后进行的所有更新

PURGE MASTER LOGS BEFORE '2019-09-09 13:00:00'; 

用于在主复制服务器上记录所有将发送给从服务器的语句

4、清理3天前binlog日志

启用该选项数据库性能降低1%,但保障数据库完整性,对于重要数据库值得以性能换完整。有些类似于oracle开启归档模式。

PURGE MASTER LOGS BEFORE DATE_SUB(NOW( ), INTERVAL 3 DAY); --BEFORE,变量的date自变量可以为'YYYY-MM-DD hh:mm:ss'格式。这里的清理是指从此刻-3243600s前的文件,是此文件最后更新的时间。--时间和文件名一定不可以写错,尤其是时间中的年和文件名中的序号,以防不小心将正在使用的binlog删除!!!--切勿删除正在使用的binlog!!!

b、开启二进制日志的方法及属性

5、重置所有的日志

使用--log-bin[=file_name]选项或在配置文件中指定log-bin启动时,mysqld写入包含所有更新数据的SQL命令的日志文件。

reset master;

对于未给出file_name值, 默认名为-bin后面所跟的主机名。

6、手动切换binlog日志

篮球世界杯在哪买球,在未指定绝对路径的情形下,缺省位置保存在数据目录下。

flush logs --或者flush binary logs

每个二进制日志名会添加一个数字扩展名用于日志老化,因此不支持自定义的扩展名,会被mysql数字扩展名动态替换。

当你某天把所有binlog日志全干掉,数据库没有产生新的日志的时候就可以用手动切换这个方式来产生了..

若当前的日志大小达到max_binlog_size,则自动创建新的二进制日志

总结

对于大的事务,二进制日志会超过max_binlog_size设定的值。也即是事务仅仅写入一个二进制日志

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

由是可知,二进制日志文件大小接近,其size不是完全相等,这点不同于oracle。

二进制日志文件会有一个对应二进制日志索引文件,该文件包含所有的二进制日志,其文件名与二进制日志相同,扩展名为.index

二进制索引文件通过--log-bin-index[=file_name]选项来指定

RESET MASTER语句将删除所有二进制日志文件,这将影响到从库。也可以用PURGE MASTER LOGS只删除部分二进制文件。

系统变量log_bin的值为OFF表示没有开启二进制日志(binary log)。ON表示开启了二进制日志(binary log) show variables like 'log_bin';

查看当前服务器所有的二进制日志文件 show binary logs;  show master logs;

查看当前二进制日志文件状态 show master status;

show binlog events用于在二进制日志中显示事件。如果未指定'log_name',则显示第一个二进制日志。

方法1:使用show binlog events方式可以获取当前以及指定binlog的日志,不适宜提取大量日志。

SHOW BINLOG EVENTS[IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]

方法2: 使用mysqlbinlog命令行查看日志内容(适宜批量提取日志)。

查看第一个binlog文件的内容(show binlog events) show binlog events;

查看某个特定binglog文件的内容。  show binlog events in 'DB-Server-bin.000012';

show binlog events in 'DB-Server-bin.000012' from 336;

二进制日志开启方法:查看系统变量log_bin,如果其值为OFF,表示没有开启二进制日志(binary log),如果需要开启二进制日志,则必须在my.cnf中[mysqld]下面添加log-bin [=DIR[filename]] ,DIR参数指定二进制文件的存储路径;filename参数指定二级制文件的文件名。 其中filename可以任意指定,但最好有一定规范。系统变量log_bin是静态参数,不能动态修改的(因为它不是Dynamic Variable)。如下所示:

show variables like 'log_bin';

--------------- -------

| Variable_name | Value |

--------------- -------

| log_bin      | OFF  |

--------------- -------

1 row in set (0.00 sec)

mysql> set global log_bin=mysql_bin;

ERROR 1238 (HY000): Variable 'log_bin' is a read only variable

修改my.cnf,在[mysqld]下面增加log_bin=mysql_bin_log,重启MySQL后,你就会发现log_bin变为了ON,二进制日志(binary log)默认放在数据目录下(系统变量datadir下),如下所示:

校验:show variables like 'log_bin';

使用命令flush logs切换二进制日志

验证切换前:show master status;

切换:flush logs;

切换后:show master status;

本文由美洲杯在哪买球发布于计算机教程,转载请注明出处:篮球世界杯在哪买球Mysql数据库清理binlog日志命令

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。