mysql日志管理
一、错误日志
1.作用:排查mysql运行时的故障
2.自定义错误文件日志位置
在配置文件中,加入 log_error =文件目录,在重启数据库
3.查看错误文件位置
select@@log_error;
二、二进制日志
1.作用:主从依赖二进制文件
数据恢复靠二进制文件、
2.开启二进制文集
在配置文件中加入
log_bin=文件目录位置
server_id=6
3.查看二进制命令
查看二进制文件是否开启:show variables like 'log_bin';
查看二进制文件列表;show binary logs;
查看当前二进制文件是哪个:show master status;
刷新二进制文件:flush logs;
查看某个二进制文件的事件:show binlog evrnts in '日志文件名'
三、二进制文件记录什么
1.记录了数据库所有变更类的操作,DML,DCL,DDL
对于DDL.DCL:以语句的方式原模原样的记录
对于DML;
(1)记录已提交的事务
(2)DML的格式有statement,row,mixed通过binlog_format参数控制:
statement(SBR);语句模式记录日志,做什么命令,就记录什么
row(RBR):行模式,数据行的变化
mixed(MBR):混合模式,以上俩种模式混合使用
例题:SBR和RBR什么区别怎么选择?
SBR:可读性较强,对于范围操作日志量少,可能会出现记录不准确的情况
RBR:可读性弱,对于范围操作日志量大,不会出现错误
高可用环境的新特性要依赖于RBR
四、二进制文件记录单元
1.事件二进制日志的最小单元
2.mysqlbinlog命令的一些参数
(1)-d 指定某个数据库到二进制日志信息
mysqlbinlog -d ccc(数据库名) mysql-bin.000001
(2)-D 再用二进制文件恢复数据时,也会产生二进制文件,禁用二进制日志
mysqlbinlog-D mysql-bin.000001
3.截取日志文件
mysqlbinlog --start-position=事件开始位置 --stop-position=事件结束位置 日志文件目录位置 >/tmp/bin.sql;
注意:在恢复数据时,先set sql_log_bin=0临时关闭日志文件,防止恢复时产生日志信息,恢复结束后 set sql_log_bin=1
五、binlog的gtid记录模式管理
1.gtid介绍
对于binlog来说,每个事务都会产生一个gtid号,ddl,dcl一个event就是一个事务,就会有gtid,对于dml
从begin到commit就是一个事务,就会有gtid
2.gtid开启与配置
vim /etc/my.cnf
gtid-mode=on
enforce-gtid-consistency=true
3.gtid的幂等性
如果拿有gtid的日志去恢复数据时,会检查系统是否有相同的gtid号,如果有则跳过,会影响主从复制和binlog恢复
4.参数说明
--skip-gtids