简介

场景说明

binlog 日志需要占用存储空来进行保留,并且需要设置保留时间,最长 为 7 天,托管RDS开启审计日志(audit/server_audit.log)可以存储在 CloudWatch logs 中,保留时间会更长。

环境准备 

实践步骤

一、开启审计日志

1、需要拥有自定义的选项组,并具有MARIADB_AUDIT_PLUGIN,创建自定义选项组

2、添加选项--选项名称“MARIADB_AUDIT_PLUGIN”--点击“添加选项”

3、修改 RDS MySQL 数据库的选项组,并开启审计日志

二、binlog 和审计日志对比

1、在 MySQL 里面创建表,再插入一条数据,查看 binlog 是否有记录日志信息

#创建表
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
   `runoob_id` INT UNSIGNED AUTO_INCREMENT,
   `runoob_title` VARCHAR(100) NOT NULL,
   `runoob_author` VARCHAR(40) NOT NULL,
   `submission_date` DATE,
   PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

#插入一条数据
mysql> INSERT INTO runoob_tbl
    -> (runoob_title, runoob_author, submission_date)
    -> VALUES
    -> ("学习 MySQL", "菜鸟教程", NOW());

 #下载 binlog 日志并查看
mysqlbinlog \
    --read-from-remote-server \
    --host=ggtest-binlog.ck7rxdxlrkv1.ap-southeast-1.rds.amazonaws.com \
    --port=3306  \
    --user admin \
    --password \
    --verbose \
    --result-file=/tmp/gg.text \
    mysql-bin-changelog.000673
cat /tmp/gg.text 

2、查看 RDS MySQL 控制台中的审计日志

3、开启审计日志,使用默认的选项组,选项设置中“SERVER_AUDIT_EVENTS”的默认参数是“CONNECT, QUERY”


开启 binlog会基于不同的模式进行判断是否保存,有“ROW、STATEMENT 或 MIXED”三种模式

STATEMENT:执行啥记录啥

ROW:影响几行生成几条语句

MIXED:server层智能选择STATEMENT或者ROW

参考链接

配置 MySQL 二进制日志记录:https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_LogAccess.MySQL.BinaryFormat.html

MySQL binlog的3种格式对比(statement,row,mixed):https://blog.csdn.net/wang0907/article/details/126120638

MySQL中的binlog的作用是什么?:https://blog.csdn.net/weixin_39661353/article/details/113221853

RDS for MySQL的日志轮换和保留:https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/USER_LogAccess.MySQL.LogFileSize.html#USER_LogAccess.MySQL.LogFileSize.retention

MariaDB 审计插件选项参数:https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/Appendix.MySQL.Options.AuditPlugin.html

自我判定

序号

判定描述

自我判定(是/否)

1

在各搜索引擎中是否能找到知识信息(包括但不限于Google、百度、Bing)

2

是否需要代码集成开发