MariaDB日志
- 查询日志:query log;
- 慢查询日志:slow query log 查询时长超出指定界限。
- 错误日志:error log
- 二进制日志:binary log;此中存储要发生改变或潜在发生改变的语句。
- 中继日志:reley log
- 事务日志:transaction log
1、查询日志
记录查询语句,日志存储位置:一般不开启。
- 文件:file
- 表:table (mysql.general_log),查询信息直接再导入到数据库中。
查看与查询日志相关的信息SHOW GLOBAL VARIABLES LIKE '%log%';
general_log={ON|OFF} #是否开启查询日志
general_log_file=HOSTNAME.log #查询的日志保存于何处
log_output={FILE|TABLE|NONE} #日志的输出格式上
2、慢查询日志
慢查询:运行时间超出指定时长的查询;
对于此日志我们应该启用,而且应该为开机自动启动,所以就应该写入配置文件的配置。
查看定义的慢查询的制定时间
HOW GLOBAL VARIABLES LIKE 'long_query_time'
SELECT @@GLOBAL long_query_time;
设定
SET GLOBAL long_query_time=
存储位置:
文件:FILE
表:TABLE,mysql.slog_log
slow_query_log={ON|OFF} #是否启动慢查询
slow_query_log_file= #日志文件路径
log_slow_queries={ON|OFF} #是否记录慢查询日志
log_output={FILE|TABLE|NONE} #日志的记录格式
log_slow_filter=admin,filesort,filesort_on_disk,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk
表示设置过滤信息
log_slow_rate_limit #指明记录的速率
log_slow_verbosity #详细级别
3、错误日志
记录信息:
- (1) mysqld启动和关闭过程 输出的信息;
- (2) mysqld运行中产生的错误信息;
- (3) event scheduler运行时产生的信息;
-
(4) 主从复制架构中,从服务器复制线程启动时产生的日志;
log_error= log_warnings={ON|OFF}
4、二进制日志
用于记录引起数据改变或存在引起数据改变的潜在可能性的语句(STATEMENT)或改变后的结果(ROW),也可能是二者混合;
在my.cnf
的 [mysqld] 字段添加 log_bin
这一行即可
功用:“重放”日志文件中的事件来生成副本。
binlog_format={STATEMENT|ROW|MIXED}
二进制日志记录格式
STATEMENT:基于语句记录;
ROW:基于行;
MIXED:混编,让系统自动判定记录方式;
二级制日志文件的构成:
日志文件: mysql-bin.文件名后缀;二进制格式
索引文件: mysql-bin.index;文本格式
查看二进制日志文件列表:
SHOW MASTER|BINARY LOGS;
查看当前正在使用的二进制日志文件:
SHOW MASTER STATUS;
查看二进制 日志文件中的事件:
SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]
SHOW BINLOG EVENTS IN 'mysql-bin.000002'; #就能查看在再次文件内mysql发生的事件。还可以指明显示的起始位置
服务器变量:
log_bin {ON|OFF}
sql_log_bin {ON|OFF} #这两个同时为ON就表示启用二进制日志记录功能
log_bin=/PATH/TO/BIN_LOG_FILE #日志文件的记录位置:此功能必须为ON
max_binlog_size=1073741824 :单个二进制文件的最大体积,默认为这个(1G,不一定会精确)
sync_binlog={1|0} #是否启动二进制日志同步功能。1的话就是精确记录
mysqlbinlog:客户端命令工具
mysqlbinlog [option] logfile
命令选项:
-j,
--start-datetime= 根据事件发生的时间范围
--stop-datetime=
YYYY-MM-DD hh:mm:ss 指明的时间格式
--start-position=# 从哪个事件id开始显示
--stop-position=# 到哪个事件id结束
--user, --host, --password
二进制日志事件格式:
# at 553
#160831 9:56:08 server id 1 end_log_pos 624 Query thread_id=2 exec_time=0 error_code=0
SET TIMESTAMP=1472608568/*!*/;
BEGIN
/*!*/; #结束标志
事件发生的日期时间:#160831 9:56:08
事件发生的服务器id:server id 1
事件的结束位置:end_log_pos 624
事件的类型:Query
事件发生时所在服务器执行此事件的线程的ID: thread_id=2
语句的时间戳与将其写入二进制日志文件中的时间差:exec_time=0
错误代码:error_code=0
事件内容:SET TIMESTAMP=1472608568/*!*/;
中继日志:
复制架构中,从服务器上记录下来从主服务器的二进制日志文件同步过来的事件;
事务日志:
帮助事务型存储引擎innodb用于保证事务特性的日志文件:用户无法手动使用。存储引擎采用。
具有两个和两个以上的文件
用于提交事务到数据磁盘中,也可以回滚。
| innodb_log_file_size | 5242880 事务日志文件大小
| innodb_log_files_in_group | 2 事务文件日志个数
| innodb_log_group_home_dir | ./ 存储位置
事务日志文件所在位置及名字
/var/lib/mysq/lib_logfile0
/var/lib/mysq/lib_logfile1
事务日志的类别
redo log :重做日志
undo log :撤销日志
原创文章,作者:qzx,如若转载,请注明出处:http://www.178linux.com/60186