Freedo Asked: 2022-02-09 00:20:15 +0800 CST2022-02-09 00:20:15 +0800 CST 2022-02-09 00:20:15 +0800 CST 仅记录删除查询 772 我遇到了一个问题,我的表被丢弃了,我不知道如何/在哪里。 但是启用常规日志会在不到 10 分钟的时间内创建 200 万条记录,这是我最不忙的时间之一。 我想记录至少 24 小时的删除查询...处理此问题的最佳方法是什么? mariadb 2 个回答 Voted Best Answer dbdemon 2022-02-09T13:43:59+08:002022-02-09T13:43:59+08:00 您可以安装MariaDB 审计插件并将其配置为仅记录 DDL 语句(CREATE、ALTER、和) DROP,并通过运行以下命令启用它:RENAMETRUNCATE INSTALL SONAME 'server_audit'; SET GLOBAL server_audit_events = 'QUERY_DDL'; SET GLOBAL server_audit_logging = ON; 或者,这都可以在适当的选项文件中完成,尽管这需要重新启动才能生效: [mysqld] plugin_load_add = server_audit server_audit_events = QUERY_DDL server_audit_logging = ON 虽然这不是专门记录DROP TABLE语句,但它应该是一个比一般日志更小的日志文件。 生成的日志将具有此文档页面中描述的格式,例如: [timestamp],[serverhost],[username],[host],[connectionid],[queryid],DROP,[database],[object], Rick James 2022-02-09T12:07:30+08:002022-02-09T12:07:30+08:00 使用通用日志没有简单的方法: 有一般登录 有一个每隔几分钟运行一次的 cron 作业: 轮换一般日志 grep 之前的 DROP 日志,附加到仅包含 DROP 的文件。 删除以前的日志。
您可以安装MariaDB 审计插件并将其配置为仅记录 DDL 语句(
CREATE
、ALTER
、和)DROP
,并通过运行以下命令启用它:RENAME
TRUNCATE
或者,这都可以在适当的选项文件中完成,尽管这需要重新启动才能生效:
虽然这不是专门记录
DROP TABLE
语句,但它应该是一个比一般日志更小的日志文件。生成的日志将具有此文档页面中描述的格式,例如:
使用通用日志没有简单的方法:
有一般登录
有一个每隔几分钟运行一次的 cron 作业: