什么操作会生成mysql日志「MySQL日志怎么管理」
文章作者:seo优化大师 文章来源:港翔seo优化 浏览量:![什么操作会生成mysql日志「MySQL日志怎么管理」](/UploadFiles/2022-09/cike/eh0hybietso.jpg)
本文导读:文件名:可用–log-error[=file_name]指定,否则默认使用hostname.err内容:记录mysqld启动和停止时,以及服务器发生任何严重错误时记录相关信息1.2 二进制日志文件名:也是binlog(逻辑日志)
文件名:可用–log-error[=file_name]指定,否则默认使用hostname.err内容:记录mysqld启动和停止时,以及服务器发生任何严重错误时记录相关信息
1.2 二进制日志
文件名:也是binlog(逻辑日志),可用–log-bin[=file_name] 指定,默认为主机名
内容:包含了所有更新了或者潜在更新了数据的所有语句,语句以“事件”的形式保存,描述数据更改文件位置和格式
查看日志:
mysqlbinlog log-file
删除日志:
#删除所有的binlog日志,新日志从头开始编号
RESET MASTER
#删除mysql-bin.010之前的所有日志
PURGE MASTER LOGS TO 'mysql-bin.010'
#删除2022.5.1之前的binlog日志
purge master logs before '2022-05-01 08:00:00';
1.3 查询日志
文件名:使用–log指定,默认hostname.log
内容:记录客户端所有查询语句记录,在二进制日志不存在查询语句记录
1.4 慢查询日志
文件名:使用–log-slow-querie指定,默认*-slow.log,写入data目录
内容:记录执行时间超过long_query_time秒的SQL查询日志文件
其它选项:–log_slow_admin_statements:表示将慢管理语句,如OPTIMIZE TABLE、ANALYZE TABLE和ALTER TABLE写入慢查询语句
1.5 通用查询日志
查看:show variables like '%general_log%';
执行SQL命令 set global general_log=on;
开启
文件:默认存放在data目录下hostname.log文件
内容:记录客户端的所有查询行为
1.6 中继日志
文件:默认文件名hostnamet-relay-bin,存放在data目录下
功能:从服务器I/O线程将主服务器的二进制日志读取过来记录到从服务器本地文件,然后从服务器SQL线程会读取relay-log日志的内容并应用到从服务器,从而使从服务器和主服务器的数据保持一致
参数:show variables like '%relay%';
1.7 审计日志
内容:企业版自带功能,社区版需使用audit审计插件完成数据库审计工作
开启步骤:
下载插件:https://github.com/mcafee/mysql-audit
查看插件功能是否开启: show variables like "%audit%";
开启插件功能:set global audit_json_file=1;
注意,使用此方法开启对global全局变量的设置仅对于新开启的会话才是有效的,对已经开启的会话不生效,参数最终需持久化到my.cnf配置文件中
开启后,在MySQL数据目录下会多出一个mysql-audit.json审计日志
2 InnoDB日志
2.1 重做日志 (Redo Log)
文件:默认情况下,对应的物理文件位于数据库的data目录下的ib_logfile1&ib_logfile2
内容:物理日志,记录物理数据页面的修改信息,redo log顺序写入redo log file物理文件中
重做日志有一个缓冲区Innodb_log_buffer,InnoDB优先将重做日志写入缓冲区,日志写盘通常有三种方式:
Master Thread 每秒一次执行刷新Innodb_log_buffer到重做日志文件
每个事务提交时会将重做日志刷新到重做日志文件。
当重做日志缓存可用空间 少于一半时,重做日志缓存被刷新到重做日志文件
因此,重做日志的写盘,并不一定是随着事务的提交才写入重做日志文件的,而是随着事务的开始逐步开始的,这可以很好地解释再大的事务的提交(commit)的时间也是很短暂的
事务产生的重做日志,通过
innodb_flush_log_at_trx_commit
参数控制:设置为 0 的时候,表示不写入buffer,直接每秒写入到redo file中,但mysql 崩溃会丢失1s数据设置为 1 的时候,表示每次事务提交时都将 redo log 直接持久化到磁盘设置为 2 的时候,表示每次事务提交时都只是把 redo log 写到 page cache,由OS处理回写磁盘操作,OS宕机会丢失数据2.2 回滚日志(Undo Log)
文件:逻辑日志,记录在表空间中
MySQL5.6之前,undo表空间位于共享表空间的回滚段中,共享表空间的默认的名称是ibdata,位于数据文件目录中
MySQL5.6之后,undo表空间可以配置成独立的文件,但是提前需要在配置文件中配置,完成数据库初始化后生效且不可改变undo log文件的个数
内容:记录数据的逻辑变化,一条INSERT会对应一条DELETE的undo log,发生错误时能够恢复到事务之前的数据状态
undo log是MVCC(多版本并发控制)实现的关键
版权保护: 本文由 seo优化大师 转载于网络,版权归原作者所有,如有侵权请联系 seo优化大师 删除
转载请保留链接:[什么操作会生成mysql日志「MySQL日志怎么管理」] http://www.qqsn.com.cn/seo/591.html