mysql日志

Accpcjg 2020-06-13

1、log_error 
1.1 作用:排查错误故障
1.2 开启
    默认就是开启的 
    数据路径下hostname.err
    vim /etc/my.cnf
    log_error=/var/log/mysql.log
1.3 查看日志
    查看[error]行
    
2、binlog 二进制日志
2.1  作用:
    (1)数据及时点恢复
    (2)复制
2.2 开启二进制日志(5.7)
    server_id=6
    log_bin=/data/mysql/mysql-bin
    binlog_format=row
重启数据库生效

2.3 二进制日志记录了什么?
记录MySQL数据库所有变更类的语句
1)DDL DCL  直接记录语句,每条语句就是一个事件(event
2)DML(标准事务update,deleteinsert)语句,记录是begin+DML+commit,只记录已经提交的事务
    begin  
    update
    update
    commit
    一个事务会被拆分成多个事件记录
2.4 event是什么?
二进制日志记录的最小单元
event=开始位置(start-position)+事件内容+结束位置(stop-position) 

2.5 二进制日志的记录格式(主要针对DML)
SBR statement 语句模式
把发生过的语句直接记录下来
insert into t1(sdate) values(now())

RBR row       行模式(默认模式)
记录数据行的的变化

MBR mixed     混合模式

2.6 二进制日志查看
存在性查看:
root@localhost-mysql.sock>show binary logs;
root@localhost-mysql.sock>show master status;
日志内容方面查看:
查看二进制日志事件
show binlog events in ‘mysql-bin.000001‘ limit 3,3
查看二进制日志具体内容
mysqlbinlog  /data/mysql/mysql-bin.000001 mysqlbinlog
mysqlbinlog  --base64-output=decode-rows -vvv  /data/mysql/mysql-bin.000001 mysqlbinlog

mysqlbinlog -d world  --base64-output=decode-rows -vvv  /data/mysql/mysql-bin.000001 mysqlbinlog

2.7 二进制日志使用

找起点和终点 :

截取:
mysqlbinlog --start-position=3368 --stop-position=4199 /data/mysql/mysql-bin.000001 >/tmp/binlog.sql 

恢复:
set sql_log_bin=0;
source /tmp/binlog.sql
set sql_log_bin=1;

2.8 其他操作
1)日志滚动
  flush logs;
  重启mysqld
  默认日志文件达到1G也会自动滚动
  备份加入一些参数
2)日志删除
 set global  expire_logs_days = 7;
PURGE BINARY LOGS TO ‘mysql-bin.000010‘;
PURGE BINARY LOGS BEFORE ‘2008-04-02 22:46:26‘;

3)日志全部删除,从000001开始重新



3、slow-log 慢日志
slow_query_log=1              
slow_query_log_file=/data/mysql/slow.log 
long_query_time=0.05
log_queries_not_using_indexes=1





相关推荐