10.8、mysql日志


mysql生成或相关联的日志文件种类繁多,这里重点关注与mysql数据库服务相关

的几类日志文件:

1、错误日志:

记录mysql服务进程mysql的在启动/关闭/运行过程中遇到的错误信息;

[mysqld_safe]

log-error=/data/3306/mysql.err

2、查询日志:

(1)普通查询日志:

记录客户端连接信息和执行的sql语句信息;

[mysqld]

#general_log = ON

#将所有到达MySQL Server的SQL语句记录下来,默认关闭

#general_log_file = /data/3306/data

#general_log,默认在数据库的data目录下;

(2)慢查询日志:

记录执行时间超出指定值(log_query_time)的sql语句;

[mysqld]

slow_query_log = ON

long_query_time = 2

slow_query_log_file = /data/3306/mysql-slow.log

#log-queries-not-using-indexes

#如果运行的SQL语句没有使用索引,mysql会将这条SQL语句记录到慢查询日志文件中。

3、二进制日志:

binlog日志是用来记录mysql内部增删改等对mysql数据库有更新内容的记录;

mysql-bin.index是binlog日志的索引文件,是所有的binlog文件都记录在该文件中;

[mysqld]

log-bin = /data/3306/mysql-bin

#打开mysql的binlog日志;

max_binlog_size = 512M

#binlog的最大值是多少;

expire_logs_days = 7

#超过7天的binlog会被删除;

mysql> show variables like '%log_bin%';

sql_log_bin ON

#一般打开log-bin就打开了sql_log_bin记录功能,使用set global sql_log_bin=off时

临时不记录binlog开关,用于增量恢复时不记录某个时间点的binlog;

3 rows in set (0.01 sec)

(1)二进制的三种模式:

1)语句级:

statement(默认),包含的是原始的sql语句;

2)行级:

row,包含的是行的更改信息;

3)混合级:

mixed,前两种模式的结合,mysql根据实际开销情况选择到底选择哪种二进制模式;

4)修改binlog模式的方法:

配置文件修改my.cnf:

[mysqld]

binlog_format = mixed #row,statement

在线修改:

set session binlog_format = mixed; #当前窗口有效,退出无效;

set global binlog_format = mixed; #全局有效;

5)查看binlog日志的方法:

binlog日志模式为row或者时statement时使用‘mysqlbinlog /data/3306/mysql-bin.000007’命令查看;

binlog日志模式为mixed时,使用‘mysqlbinlog --base64-output=decode-rows -v /data/3306/mysql-bin.000007’命令查看;

6)查看binlog的pos点:

show master logs; #查看binlog文件和对应的pos点的列表;

show master status; #查看当前binlog文件和对应的pos点;

7)对日志文件进行切割的手动方法:

mysqladmin -uroot -p123456 flush-log

因为mysql会把数据库中的所有对库的更改操作放到二进制文件binlog中,相当于mysql的备份,那么备份点

之前的binlog就没有用了所以要刷新binlog,方便增量恢复数据;

猜你喜欢

转载自www.cnblogs.com/LiuChang-blog/p/12315814.html
今日推荐