码迷,mamicode.com
首页 > 数据库 > 详细

mariadb日志

时间:2015-11-10 01:47:13      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:mysql   日志   database   table   view   

查看所有日志相关变量:

SHOW GLOBAL VARIABLES LIKE ‘%log%‘;

1.查询日志:
    log_output = {TABLE|FILE|NONE}
        log_output = TABLE,FILE  查询日志放在哪,可以记录在文件中也可以记录在表中
            FILE: gerenal_log
        general_log = {ON|OFF}: 是否启用查询日志
        general_log_file = HOSTNAME.log:当log_output有FILE类型时,日志信息的记录位置

2.慢查询日志:查询执行时长超过指定时长的查询操作所记录日志

生产环境中应该启用,通过在配置文件修改参数启用!
SELECT @@GLOBAL.long_query_time;
+--------------------------+
| @@GLOBAL.long_query_time |
+--------------------------+
|                10.000000 |
+--------------------------+
SET @@GLOBAL.long_query_time=#;
slow_query_log = {ON|OFF}:是否启用慢查询日志
slow_query_log = /path/to/somefile: 日志文件路径
慢查询日志过滤器: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.错误日志:会记录以下信息:
    mysqld启动和关闭过程中输出的信息;
    mysqld运行中产生的错误信息;
    event scheduler运行一个event时产生的日志信息;
    在主从复制架构中的从服务器上启动从服务器线程时产生的日志信息;

相关变量:

    log_error = /path/to/somefile  也可以使用ON或OFF

    log_warnings = {ON|OFF}:是否记录警告信息于错误日志中;

4.二进制日志:记录导致数据改变或潜在导致数据改变的SQL语句,便于崩溃了丢失数据后重放记录的事件实现数据恢复

SHOW {BINARY | MASTER} LOGS:查看主服务器端处于由mysqld维护状态中的二进制日志文件;
SHOW MASTER STATUS:查看当前正在使用的二进制日志文件是哪个以及记录到哪个位置了
SHOW BINLOG EVENTS [IN ‘log_name‘] [FROM pos] [LIMIT [offset,] row_count]:显示指定的二进制日志文件中的相关事件
示例:
MariaDB [(none)]> CREATE DATABASE mydb;
Query OK, 1 row affected (0.04 sec)

MariaDB [(none)]> SHOW MASTER LOGS;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |       328 |
+------------------+-----------+
1 row in set (0.00 sec)

MariaDB [(none)]> SHOW BINLOG EVENTS IN ‘mysql-bin.000001‘
    -> ;
+------------------+-----+-------------+-----------+-------------+-----------------------------------------------+
| Log_name         | Pos | Event_type  | Server_id | End_log_pos | Info                                          |
+------------------+-----+-------------+-----------+-------------+-----------------------------------------------+
| mysql-bin.000001 |   4 | Format_desc |         1 |         245 | Server ver: 5.5.44-MariaDB-log, Binlog ver: 4 |
| mysql-bin.000001 | 245 | Query       |         1 |         328 | CREATE DATABASE mydb                          |
+------------------+-----+-------------+-----------+-------------+-----------------------------------------------+
2 rows in set (0.00 sec)

日志记录格式:
①基于“语句”记录;statement  高效,对IO影响小,但是并发或者调用函数记录时有时会产生数据不一致而重放错误
②基于“行”记录;row        基于语句执行后结果记录,精确度高,但是对IO影响较大
③混合 :mixed        系统自行判断

二进制日志文件的构成:
    日志文件:文件名前缀.文件名后缀 mysql-bin.000001
    索引文件:文件名前缀.index    mysql-bin.index

服务器变量:
    log_bin = /path/to/somefile    记录位置
    binlog_format = MIXED|statement|row        记录格式
    sql_log_bin = ON    是否启用
    max_binlog_size = 1073741824定义二进制日志文件的单文件上限,不宜太大,默认1G,到达1G会自动滚动
    max_binlog_cache_size = 18446744073709547520
    max_binlog_stmt_cache_size = 18446744073709547520
    expire_logs_days 多久不使用就删除,0表示不启用根据时间自动清理功能
    sync_binlog = 1|0:设定多久从内存同步一次二进制日志文件到磁盘;0表示不同步;1表示只要事务commit就要执行一次同步,其他任何正值都表示记录多少个语句后同步一次;

二进制日志的查看命令:
    mysqlbinlog [-u|-p|-h]
        -j, --start-position=#:从指定的事件位置查看
        --stop-position=#:只显示到指定的事件位置
        --start-datetime=name
        --stop-datetime=name
        YYYY-MM-DD hh:mm:ss

二进制日志的格式:
mysqlbinlog mysql-bin.000001  显示二进制日志文件的工具

[root@testserver mysql]# mysqlbinlog mysql-bin.000001 
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#151109 22:10:10 server id 1  end_log_pos 245     Start: binlog v 4, server v 5.5.44-MariaDB-log created 151109 22:10:10 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG ‘
QqlAVg8BAAAA8QAAAPUAAAABAAQANS41LjQ0LU1hcmlhREItbG9nAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABCqUBWEzgNAAgAEgAEBAQEEgAA2QAEGggAAAAICAgCAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAABub2HQ==
‘/*!*/;
# at 245
#151109 22:27:20 server id 1  end_log_pos 328     Query    thread_id=2    exec_time=0    error_code=0
SET TIMESTAMP=1447079240/*!*/;
SET @@session.pseudo_thread_id=2/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=0/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
CREATE DATABASE mydb
/*!*/;
DELIMITER ;
# End of log file
ROLLBACK /* added by mysqlbinlog */;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

以上信息解析:          

    事件发生的日期和时间;(140829 15:50:07)
    事件发生在服务器的标识(server id)避免多次重复重放
    事件的结束位置:(end_log_pos 19486)下一个事件的起始位置
    事件的类型:(Query)
    事件发生时所在的服务器执行此事件的线程的ID:(thread_id=13)
    语句的时间戳与将其写入二进制文件中的时间差:(exec_time=0表示事件一产生就直接记录到日志中了)
    错误代码:(error_code=0)
    事件内容:(SET TIMESTAMP=1409298607/*!*/处开始;)                        
    GTID事件专属:用于复制时定义一个ID,避免事物间的冲突,可以按照指定顺序提交事务
    事件所属的全局事务的GTID:(GTID 0-1-2)
5.中继日志:复制架构中从服务器用于保存从主服务器的二进制文件中读取到的事件
6.事务日志(innodb存储引擎):帮助事务型存储引擎实现ACID
分组保存于硬盘上一段连续的存储空间上,避免了大量的随机IO,转而用顺序IO,一个组至少两个文件,循环使用。

查询时不仅会查询数据文件,也会查询缓存在内存中(加速查询)的事务日志文件。否则可能会出现数据不一致情况,这段内存空间就是buffer_pool

innodb_log_buffer_size                    | 8388608       buffer_pool大小定义                  
innodb_log_file_size                      | 5242880       事务日志文件大小定义



本文出自 “明天过后” 博客,请务必保留此出处http://leeyan.blog.51cto.com/8379003/1711235

mariadb日志

标签:mysql   日志   database   table   view   

原文地址:http://leeyan.blog.51cto.com/8379003/1711235

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!