mysql日志管理

对mysql日志进行合理的管理,能够帮助我们更好的对数据库进行管理,下面我们从mysql的错误日志、mysql的二进制日志、mysql的慢日志这几个方面来对mysql日志管理进行一个简要的讲解。主要讲述这几个日志的配置和功能,本文的mysql部署于centos7。

一、mysql错误日志

mysql的错误日志主要记录mysql启动及工作过程中的状态、报错、警告等

1、首先我们要配置错误日志,主要是配置错误日志的路径

进入到mysql的配置文件中

vim /etc/my.cnf

添加:log_error=/data/log/mysql.log

2、重启数据库

这样mysql的错误日志就会保存到我们设定的目录中了,我们在数据库中使用select @@log_error

也能够查看到mysql的错误日志

这样需要注意的是,在设置mysql的错误日志时,我们最好将存放日志文件的目录的属主和属组指定为mysql

二、mysql二进制日志

mysq二进制日志是一个特别重要的日志,他能够帮助我们恢复数据库,同时也设置主从复制的重要日志文件。具体的配置方式如下:

1、修改配置文件

vim /etc/my.cnf

server_id=6

log_bin=/data/binlog/mysql-bin

server_id是mysql5.7以后打开二进制日志必备的参数,他是一个标识,这里的值可以是任意的

log_bin指定了二进制日志存放的路径

2、在修改完配置文件后,同样的我们需要创建二进制日志存放的路径,并授权给mysql,重启数据库后即可。

每次mysql重启后,二进制日志都会在存放目录下创建一个新的日志文件,并在这个新的日志文件中开始记录。二进制日志会记录所有变更数据库的sql语句

3、二进制日志工作模式

二进制的记录方式也是也是可以通过配置文件进行修改的。总共有三种工作模式:

statement    SBR    做什么记录什么,即sql语句
row             RBR    记录数据行的变化(推荐,默认模式)
mixed       MBR   自动判断记录规模
我们为一般使用的是row模式

如果要进行修改可以进入mysql的配置文件

binlog_format='ROW'即可

二进制日志工作模式查看
show  viriables like 'binlog%'

4、二进制日志事件

二进制事件以事件作为最小的记录单元

对于DDL和DCL一条语句就是一个事件
对于DML,只记录已提交的事务和DML语句

show variables like '%log_bin%';查看binlog状态信息
show binary logs;  查看binlog文件
show master status;   查看当前使用的binlog
show binlog events in 'mysql-bin.000001';  查看binlog事件

5、通过二进制日志恢复数据

 通过show master status查看当前使用的binlog
show binlog events in 'mysql-bin.000002';查看binlog中的事件
观察事件找到创建库的点和删除库的点
根据两个点
mysqlbinlog --start-position=335 --stop-position=1510 mysql-bin.000002 > binlog.sql
 set sql_log_bin=0;  先将binlog 的记录功能关闭
 source /data/3306/binlog/binlog.sql;  执行获取的sql文件,即可恢复
 set sql_log_bin=1;重新开启binlog的记录功能

6、基于gtid截取日志

配置gtid开启
vim /etc/my.cnf
gtid_mode=on
enforce_gtid_consistency=true    开启强制gtid一致性
log_slave_updates=1   开启主从复制中从库记录binlog和主库保持一致

对于DDL和DCL一个操作就是一个gtid
对于DML一个完整的事务就是一个gtid

show master status;
show binlog events in 'mysql-bin.000003';
观察Tx_id事务编号从恢复开始到结束的编号

mysqlbinlog --skip-gtids --include-gtids='bfb566a4-d1a2-11ed-8b07-000c291ba3dc:3-5' mysql-bin.000003 >gtid.sql

set sql_log_bin=0;
source /data/3306/binlog/gtid.sql
set sql_log_bin=1;

三、mysql慢日志

记录运行较慢的语句记录slowlog中
功能是辅助优化的工具日志
应激性的慢可以通过show processlist进行监控
一段时间的慢日志可以进行slow    记录、统计

1、查看慢日志是否开启
show variables like '%slow_query%';
重连或者新开一个会话才能看到修改值


2、查看阈值
select @@long_query_time; 
show variables like '%long_query_time%';

3、配置慢日志
set global slow_query_log=1    默认未开启,开启会影响性能,mysql重启会失效
set global long_query_time=3  设置阈值

配置永久生效
vim /etc/my.cnf
slow_query_log=1
slow_query_log_file=/data/3306/binlog/yjw-slow.log
long_query_time=1
log_queries_not_using_indexes=1

重启数据库这样慢日志的配置就完成了

我们可以通过show global status like '%slow_queries%';在数据库中查看慢日志的记录数
也可以通过mysqldumpslow -s r -t 10 qfedu-slow.log 在shell中查看 -s表示用何种方式排序 r表示返回记录 -t表示查询时间。即以查询时间返回前十个值

以上就是我们介绍的mysql的几种日志。包括mysql 的错误日志,mysql 的二进制日志,mysql的慢日志。还对通过二进制日志和基于gtid恢复数据库的方法进行了介绍

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值