mysql主从复制:每天都产生4G多的二进制日志是怎么回事?有没有什么办法定时清除?

mysql主从复制:每天都产生4G多的二进制日志是怎么回事?有没有什么办法定时清除?,第1张

方法1.使用reset master命令

方法2.使用purge master logs to命令

方法3.使用purge master logs before命令

方法4.在my.ini配置文件[mysqld]选项组中设置expire_logs_days参数

摘抄自11.2.6 二进制日志的清理 MySQL核心技术与最佳实践!

MySQL 8.0 重新定义了错误日志输出和过滤,改善了原来臃肿并且可读性很差的错误日志。

比如增加了 JSON 输出,在原来的日志后面以序号以及 JSON 后缀的方式展示

比如我机器上的 MySQL 以 JSON 保存的错误日志 mysqld.log.00.json:

以 JSON 输出错误日志后可读性和可 *** 作性增强了许多。这里可以用 Linux 命令 jq 或者把这个字串 COPY 到其他解析 JSON 的工具方便处理。

只想非常快速的拿出错误信息,忽略其他信息。

使用 JSON 输出的前提是安装 JSON 输出部件。

格式为:过滤规则;日志输出;[过滤规则]日志输出;

查看安装好的部件

现在设置 JSON 输出,输出到系统日志的同时输出到 JSON 格式日志。

来测试一把。我之前已经把表 a 物理文件删掉了。

现在错误日志里有 5 条记录。

JSON 日志里也有 5 条记录。

那可能有人就问了,这有啥意义呢?只是把格式变了,过滤的规则我看还是没变。

那我们现在给第二条日志输出加过滤规则

先把过滤日志的部件安装起来

只保留 error,其余的一律过滤掉。

检索一张误删的表

查看错误日志和 JSON 错误日志

发现错误日志里有一条 Warning,JSON 错误日志里的被过滤掉了。

再举个例子,每 60 秒只允许记录一个 Warning 事件

多次执行

现在错误日志里有三条 warning 信息

mysqld.log.00.json 只有一条

总结,我这里简单介绍了下 MySQL 8.0 的错误日志过滤以及 JSON 输出。MySQL 8.0 的 component_log_filter_dragnet 部件过滤规则非常灵活,可以参考手册,根据它提供的语法写出自己的过滤掉的日志输出。

你是想开启mysql的满日志吧

mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的

打开 my.ini ,找到 [mysqld] 在其下面添加

long_query_time = 2

log-slow-queries = log=E:/wamp/logs/mysql-log.log #设置把日志写在那里,可以为空,系统会给一个缺省的文件

#log-slow-queries = /var/youpath/slow.log linux下host_name-slow.log

注意目录的权限要可写。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8581475.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存