mysql日志类型:
1
、查询日志(通常不会开启,也不建议开启)
2
、慢查询日志(建议开启)
3
、错误日志(建议开启)
4
、二进制日志(建议开启)
5
、中继日志
6
、事务日志(帮助事务型存储引擎完成ACID测试)
mysql> SHOW GLOBAL VARIABLES LIKE
'%log%'
;
查询日志:
general_log
=
ON|OFF
general_log_file
=
PATH
log_output
=
FILE
|TABLE|NONE
慢查询日志:执行时长超出指定时长的查询操作
mysql> SHOW GLOBAL VARIABLES LIKE
'long_query_time'
;
服务器变量:
slow_query_log
=
ON|OFF
log
-
slow
-
queries
=
PATH
log_output
=
FILE
|TABLE
mysqldumpslow
错误日志:
1
、记录mysql启动和关闭过程中产生的事件信息
2
、记录mysql运行过程中产生的错误信息
3
、在主从架构中,从服务器上启动从服务器线程产生的信息
服务器变量:
log_error
=
OFF|ON|PATH
log_warnings
=
0
|
1
二进制日志:记录导致数据改变或者有可能导致数据发生改变的SQL语句
功能:用于实现通过
"重放"
日志文件中的事件来生成数据副本
mysql> SHOW MASTER LOGS;
mysql> SHOW MASTER STATUS;
mysql> SHOW BINLOG EVENTS;
服务器变量:
sql_log_bin
=
OFF|ON
log_bin
=
OFF|ON
binlog_format
=
STATEMENT|ROW|MIXED
max_binlog_size
=
1
、到达最大大小时自动滚动
2
、重启后自动滚动
sync_binlog
=
0
|
1
1
、同步写入会影响服务器性能
2
、异步写入可能会造成数据丢失
二进制文件格式:
基于语句的记录:STATEMENT
优点:在相同体积下记录的数据更多
缺点:不能保证回放的数据和源数据完全相同
如:mysql> INSERT INTO test VALUE(
1
,now());
基于行(数据)的记录:ROW
优点:能保证回放的数据和源数据基本相同
缺点:在相同体积下记录的数据更少
混合模式:MIXED,由系统判定基于那种方式进行存储
二进制文件的构成:
日志文件:mysql
-
bin
.
00000X
索引文件:mysql
-
bin
.index
二进制日志事件的格式:
mysqlbinlog
使用格式:mysqlbinlog [
-
-
start
-
position
=
事件开始位置] 二进制日志文件
例:mysqlbinlog mysql
-
bin
.
000003
SET
TIMESTAMP
=
1487550817
/
*
!
*
/
;
BEGIN
/
*
!
*
/
;
事件的起始位置:at
655
事件发生的时间:
170220
8
:
33
:
37
server
id
1
:server
id
,在做mysql集群时必须保证server
id
全局唯一
事件的结束位置:end_log_pos
731
事件的类型:Query
事件发生时所在服务器执行此事件的线程
ID
:thread_id
=
12
语句执行和将其写入二进制日志中的时间差
错误代码:error_code
中继日志:主从架构中实现主从复制的从服务日志,主要用于保存从二进制日志文件中读取事件
事务日志:
由事务型存储自行管理和使用
清理日志:
PURGE BINARY LOGS TO
'mysql-bin.010'
;
PURGE BINARY LOGS BEFORE
'2008-04-02 22:46:26'
;