Mysql数据库日志文件

       日志文件记录了影响Mysql数据库的各种类型活动,Mysql数据库中常见的日志文件有:

  •  错误日志
  •  二进制日志
  •  慢查询日志
  •  查询日志

        这些日志文件可以帮助DBA对数据库的运行状态进行诊断。从而更好地进行数据库底层的优化。

       1.错误日志

       错误日志文件对mysql的启动,运行,关闭过程进行了记录。Mysql DBA在遇到问题时首先应该产看该文件以便定位问题。该文件不仅记录了所有的错误信息,也记录一些警告信息或正确信息。用户可以通过命令: 

SHOW VARIABLES LIKE 'log_error'

来定位该文件。

     2.慢查询日志

     慢查询日志可以帮助DBA定位可能存在问题的SQL语句,从而进行SQl语句层面的优化。例如,可以在mysql启动的时候设置一个阈值,将运行时间超过该值的所有sql语句都记录到慢查询日志文件里。该阈值可以通过参数 long_query_time 来设置,默认值位10,代表10秒。慢查询日志只记录运行时间大于该阈值的sql语句。默认情况下该日志为关闭状态。

    3.查询日志

    查询日志记录了所有对mysql数据库请求的信息,无论这些请求是否得到了执行。默认文件为:主机名.log。

    4.二进制日志

    二进制日志记录了对mysql数据库执行更改的所有操作,但是不包括 select和show这类操作

    二进制日志主要有以下几种作用。

  •     恢复 :某些数据的恢复需要二进制日志,例如,在一个数据库全备文件恢复后,用户可以通过二进制日志进行point_in_time的恢复。
  •     复制:其原理与恢复类似,通过复制和执行二进制日志使得一台远程的mysql数据库与一台mysql数据库进行实时同步。
  •     审计: 用户可以通过二进制日志中的信息来进行审计,判断是否有对数据库进行注入的攻击

   该日志默认情况下也是关闭的。

  二进制日志支持STATEMENT,ROW,MIXED. 三种格式。

(1) statement格式,二进制日志文件记录的是日志的逻辑sql语句。

(2)row格式:二进制日志记录记录的不再是简单的sql 语句,而是记录表的行更改情况。

(3)mixed格式:mysql默认采用statement格式进行二进制日志文件的记录。但是在一些情况下会使用row格式。如:

  1.   表的存储引擎为NDB,
  2. 使用了UUID(),USER(),CURRENT_USER(),FOUND_ROWS().等不确定函数。
  3. 使用了INSERT DELAY语句。
  4. 使用了用户定义函数。
  5. 使用了临时表。

   使用row格式时,可以对数据库的恢复和复制带来更好的可靠性,但也会增大二进制文件的大小。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值