mariadb日志分类:
查询日志:query log 慢查询日志:slow query log 查询操作时间超过指定时间 错误日志:error log 也包含启动关闭服务信息 二进制日志(重要):binary log 中继日志:reley log 事务日志:transaction log
1.查询日志(一般不开启):记录查询操作
general_log=ON|OFF general_log_file=HOSTNAME.log 保存在相当路径(不能解析主机名的话保存为localhost.log) log_output=TABLE|FILE|NONE 以什么形式记录 #set @@global.general_log=1 #命令行开启方式,重启失效
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
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。