mariaDB 查看查询日志

转自:

https://blog.51cto.com/arm2012/1980771

https://www.cnblogs.com/huiy/p/10006772.html

 

1.general日志相关命令

#查询日志是否开启:general_log
#查询日志记录位置:general_log_file
show global variables like '...'

#开启/关闭日志   ON|OFF
SET GLOBAL general_log = '....';

#记录形式,TABLE记录在数据库mysql.general_log表中|FILE记录在系统文件中|NONE
SET GLOBAL log_output = '...';

#查询记录日志
select * from  mysql.general_log;

 

2.慢查询日志(默认关闭,生产中应开启):查询操作时间超过指定时间

show global variables like  'long_query_time'; 查看默认时长
select @@GLOBAL.long_query_time;
set global long_query_time=
slow_query_log=ON|OFF
#log_slow_queries=xx.log  5.6版本后被废
slow_query_log_file=HOSTNAME-slow.log

3.错误日志(一般开启)

     ① mysqld启动和关闭过程中输出的事件信息

     ② mysqld运行中产生的错误信息

     ③ event scheduler事件调度器运行一个event时产生的日志信息

     ④ 在主从复制架构中从服务器上启动从服务器线程时产生的信息

log_error=/var/log/mariadb/mariadb.log|OFF
log_warnings=1|0 是否记录警告信息

4.二进制日志(重要)

功能:用于通过重放日志文件中的事件来生成数据副本

          记录导致数据改变或潜在导致数据改变的sql语句

show {BINARY|MASTER}  LOGS; 查看mariadb自行管理使用中的二进制日志文件列表
show {BINERY|MASTER}  status; 查看正在使用中的日志文件
show binlog events in 'mysql-bin.000001'  [from  num] [limit  rows]; 查看记录的事件

二进制日志记录格式:binlog_format

      基于sql语句记录(SBR):statement

      基于行记录(RBR):row

      混合模式(MBR):mixed,让系统自行判断该基于哪种模式(默认)

        #运行时修改SET SESSION binlog_format =

二进制日志文件构成:

     日志文件:mysql-bin.文件名后缀  二进制格式

     索引文件:mysql-bin.index 文本格式

服务器变量:

log_bin=/PATH/TO/BIN_LOG_FILE|OFF
#sql_log_bin= {ON|OFF}  是否记录				
#session.sql_log_bin={ON|OFF}   控制某会话中的“写”操作语句是否会被记录于日志文件中;(重放时应临时关闭)
max_binlog_size=100M  单个二进制日志文件的最大体积,默认为1G
sync_binlog=0或大于0的整数  
    #默认0异步记录性能更好,由操作系统自己决定什么时候刷新缓存到持久化设置,如果这个值比0大,它指定了两次刷新到磁盘的动作之间间隔多少次二进制日志写操作。设置1最安全但是最耗内存,
    很多MySQL DBA设置的sync_binlog并不是最安全的1,而是100或者是0。这样牺牲一定的一致性,可以获得更高的并发和性能。

mysqlbinlog:客户端命令工具(直接查看二进制日志)

--start-datetime="YYYY-MM-DD hh:mm:ss"  开始事件
--stop-datetime="YYYY-MM-DD hh:mm:ss"   结束时间	 
-j, --start-position=# 从哪个位置开始
--stop-position=#	  从哪个位置结束
--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
	/*!*/;

 

     事件的起始位置:# at 553

     事件发生的日期时间:#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/*!*/;

     事件内容:BEGIN

5.中继日志:

从服务器上记录下来从主服务器的二进制日志文件同步过来的事件;

6.事务日志:

事务型存储引擎innodb用于保证事务特性的日志文件:

     redo log

     undo log

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章