zoukankan      html  css  js  c++  java
  • mariadb日志学习笔记

    MySQL日志: 

      查询日志:query log

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

      错误日志:包含了服务器启动和关闭的正常信息

      二进制日志:包含了所有更新了数据或者已经潜在更新了数据(比如没有匹配任何行的一个DELETE),主要目的是尽可能的将数据库

    恢复到数据库故障点,因为二进制日志包含备份后进行的所有更新

      中继日志:relay log 复制架构中,从服务器用于保存从主服务器的二进制日志文件读取到的数据

      事物日志:transaction log(事务型存储引擎自行管理和使用 如Inodb引擎)

     

    查看各项日志是否开启:

    general_log = {ON|OFF}: 是否启用查询日志

    general_log_file: 当log_output有FILE类型时,日志信息的记录位置

    log_output = {TABLE|FILE|NONE} 日志记录类型为表,文件,或者不记录

    补充:一般不会记录,因为记录它的价值不大

     

    slow_query_log 慢查询日志是否启用(为了排查问题,必须启动它)

    slow_query_log_file 记录慢查询的文件路径

    log_slow_query 慢查询是否开启跟slow_query_log没有本质区别

    log_error 记录错误日志的文件路径

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

     

    log_bin 记录二进制日志是否开启

    binlog_format 记录二进制日志的格式

    max_binlog_size 单个二进制日志文件的大小默认单位为字节(当到达最大值,日志文件就会滚动)

    sync_binlog 是否启用:一旦内存中的事务一提交,就将内存中的二进制日志同步到磁盘上,对于高并发事务的系统来

    说,“sync_binlog”设置为0和设置为1的系统写入性能差距可能高达5倍甚至更多

     

    查看慢查询日志的指定超时时长,也可以使用select @@global.long_query_time命令查看 两个@@代表服务器级别的变量,单个@

    代表用户级别的变量

    默认为10秒,使用set global long_query_time= 对此参数设定(临时有效,永久有效要在配置文件中修改)

    SHOW {BINARY | MASTER} LOGS:查看主服务器端处于由mysqld维护状态中的二进制日志文件(centos 下yum 安装的mysql

    默认没有开启二进制日志,须在/etc/my.cnf配置文件中[mysqld]下添加log_bin=HELLO 开启二进制日志)

     

    vim /etc/my.cnf   service mysqld restart

     

    SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]:显示指定的二进制日志文件中的相关事件

    Pos 事件开始的位置  End_log_pos下一个事件开始的位置或此事件的结束位置

    查看mysql正在使用的二进制日志文件

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

    日志记录格式:
    基于语句记录;statement

    基于行记录;row

    混合模式:mixed

    查看二进制日志的客户端工具: mysqlbinlog  --start-position=#:从指定的事件位置查看  --stop-position=#:只显示到指定的

    事件位置

    用法: #mysqlbinlog --start-position=4 HELLO.000001

    二进制日志的格式事例:

      # at 19364

      #140829 15:50:07 server id 1  end_log_pos 19486 Query thread_id=13 exec_time=0

      error_code=0

      SET TIMESTAMP=1409298607/*!*/;

      GRANT SELECT ON tdb.* TO tuser@localhost

      /*!*/;

      # at 19486

    事件发生的日期和时间;(140829 15:50:07)

    事件发生在服务器的标识(server id)

    事件的结束位置:(end_log_pos 19486)

    事件的类型:(Query)

    事件发生时所在的服务器执行此事件的线程的ID:(thread_id=13)

    语句的时间戳与将其写入二进制文件中的时间差:(exec_time=0)

    错误代码:(error_code=0)

    事件内容:(SET TIMESTAMP=1409298607/*!*/;

           GRANT SELECT ON tdb.* TO tuser@localhost)

     

     

  • 相关阅读:
    扩展性很好的一个分页存储过程
    SQL中列转行
    Server.MapPath() 方法(摘自互联网)
    容易遗忘のSQL
    Linq读取XML
    字节流和字符流
    Java中" "和 ' '
    Spring常用基本注解
    finally和return
    JS 深度clone
  • 原文地址:https://www.cnblogs.com/linuxboke/p/5438811.html
Copyright © 2011-2022 走看看