(3.12)mysql基础深入——mysql日志文件

(3.12)mysql基础深入——mysql日志文件

关键词:mysql日志文件

目录:日志文件的分类

  1、错误日志(error log)

  2、二进制日志(binlog)

  3、慢查询日志(show query log)

  4、通用日志(general log)

  5、重做日志(redo log)

  6、中继日志(relay log)

  7、DDL日志(ddl log)

详情:

1、错误日志(error log)

【1.1】查看错误日志是否启用
mysql> show variables like 'log_err%';

【1.2】错误日志配置
[mysqld] log
-error=[path/[file_name]]

【1.3】重建错误日志文件(如果日志文件不存在,mysql启动或者执行flush logs时会创建新的日志文件)

(1)mysqladmin -u root -p flush-logs
(2)mysql> flush logs;

  【1】概念:mysql启动、运行、关闭过程的记录,记录错误、警告、正常的信息。-- 相当于oracle的alert日志

  【2】参数查看:show variables like '%log_error%';

    

    解析:log_error_verbosity :(1)只记录错误日志  (2)记录错误+警告信息  (3)记录错误+警告+正常信息

  【3】linux系统异常日志:/var/log/messages

2、二进制日志(binlog)

  

【2.1】# 查看二进制文件
mysql> show variables like 'log_bin%'; #查看是否启用
mysql> show binary logs; #查看二进制文件个数及名称

【2.2】启动与选项设置
[mysqld] log
-bin = PATH/[FILENAME] #这里定义的只是一个索引文件,例如这里给/log/binlog,那么会生成binlog.index,而实际存放数据是类似于binlog.00001 之类的,超出范围会继续新建binlog.00002,以此类推 expire_logs_days=10     #清除binlog文件中超过10天的内容,默认值为0,表示“没有自动删除”。当mysql启动或刷新二进制日志时可能删除该文件 max_binlog_size=100M    #单个binlog文件的最大容量,如果有大事务运行,运行到一半binlog到达最大值了这个时候不会立马新建,而是会持续写到这个文件里,所以有binlog超出该值也正常。

【2.3】删除二进制文件
【2.3.1】一般形式
PURGE MASTER LOGS;
PURGE {MASTER | BINARY} LOGS TO 'log_name' #删除log_name 之前建立的文件,不包含该文件
PURGE {MASTER | BINARY} LOGS BEFORE 'date' #删除某个时间之前的所有文件内容,不包含该天
【2.3.2】删除所有二进制文件
RESET MASTER; #执行该语句,所有二进制日志将被删除,mysql 会重新创建二进制日志,新的日志文件扩展名将重新从000001开始编号

【2.4】阅读查看二进制文件
mysqlbinlog /log/binlog.00001 > /tmp/binlog1.log

【2.5】binlog恢复数据
mysqlbinlog恢复数据的语法如下:

mysqlbinlog [option] filename |mysql -uuser -ppass
option是一些可选项,filename是日志文件名

比较重要的两对option参数是

--start-datetime、--stop-datetime

--start-position、--stop--position

--start-date、--stop-date可以指定恢复数据库的起始时间点和结束时间点

--start-position、--stop--position可以指定恢复数据的开始位置和结束位置

 

使用mysqlbinlog恢复mysql数据库到2014年7月2日15:27:48时的状态,执行下面命令

mysqlbinlog --stop-datetime="2014-7-2 15:27:48 " D:\mysql\log\binlog\binlog.000008 |mysql -u user -p password
该命令执行成功后,会根据binlog.000008日志文件恢复2014年7月2日15:27:48前的所有操作。

这种方法对误操作的删除数据比较有效

  【1】概念:记录数据库发生更改的SQL语句,以二进制方式保存在磁盘中。--相当于Oracle的归档日志

  【2】作用:备份恢复、复制、审计

  【3】特点:

    (1)记录是SQL语句的形式

    (2)commit提交的时候才写binlog,提交之前写binlog_buffer,提交时才回写到binlog日志文件。

        binlog不会被覆盖,会一直存在(但可以设置保留多场时间的数据,可清多少天之前的数据清理) 

    (3)对所有表起作用

  【4】查看:mysqlbinlog -vv [binlog_filename]

猜你喜欢

转载自www.cnblogs.com/gered/p/10555962.html