Chinaunix首页 | 论坛 | 博客
  • 博客访问: 187089
  • 博文数量: 52
  • 博客积分: 120
  • 博客等级: 民兵
  • 技术积分: 1189
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-03 15:41
个人简介

MySQL DBA

文章分类

全部博文(52)

文章存档

2013年(51)

2011年(1)

分类: Mysql/postgreSQL

2013-03-07 14:10:54

mysql 的日志:
    
1.    error log 

    2.    general query log

    3.    binary log

    4.    slow query log

    5.    innodb log

 

日志管理相关命令:

    flush logserror /slow/general log不会改变,如果不存在则创建新的文件;bin log 直接创建新的文件。

    log-output设置日志输出方式table或file,两者可同时记录

error log

    error log记录mysqld启动、关闭以及运行过程中的错误信息。

    log-error配置错误日志文件的路径及名称。log-warnings配置是否记录警告信息,默认为true。

    error log对于错误诊断,故障修复以及发现安全隐患有非常重要的作用。mysqld启动失败时,绝大部分时间可以通过error log确定出错的原因,如参数的配置错误:格式,内存配置过大,数据目录路径错误或权限问题;innodb在异常退出后的回滚,系统库的丢失等;运行过程出现的错误和警告信息同样可以用与分析数据库的性能,数据表的损坏,复制过程中的错误,域名的解析等问题。同样errorlog中记录了数据库关闭的过程之后正常。在解决故障过程中,第一件事情就是检查error log,从中找到用于后续分析的信息。    

    启动时的log:


点击(此处)折叠或打开

  1. 130116 2:50:22[Warning]Youneed touse--log-bin to make--binlog-format work.
  2. 130116 2:50:22[Note]Plugin'FEDERATED'isdisabled.
  3. 130116 2:50:22InnoDB:TheInnoDBmemory heapisdisabled
  4. 130116 2:50:22InnoDB:Mutexesandrw_locksuseGCC atomic builtins
  5. 130116 2:50:22InnoDB:Compressedtablesusezlib1.2.3.4
  6. 130116 2:50:22InnoDB:Initializingbuffer pool,size=16.0M
  7. 130116 2:50:22InnoDB:Completedinitialization of buffer pool
  8. 130116 2:50:22InnoDB:highest supported file formatisBarracuda.
  9. 130116 2:50:22 InnoDB:Waitingforthe background threads to start
  10. 130116 2:50:23InnoDB:1.1.8started;log sequence number1595669
  11. 130116 2:50:23[Note]Serverhostname(bind-address):'0.0.0.0';port:3306
  12. 130116 2:50:23[Note] -'0.0.0.0'resolves to'0.0.0.0';
  13. 130116 2:50:23[Note]Serversocket created on IP:'0.0.0.0'.
  14. 130116 2:50:23[Note]EventScheduler:Loaded0events
  15. 130116 2:50:23[Note]/usr/sbin/mysqld:readyforconnections.
  16. Version:'5.5.28-0ubuntu0.12.04.3' socket:'/var/run/mysqld/mysqld.sock'


    关闭时log:


点击(此处)折叠或打开

  1. port:3306 (Ubuntu)
  2. 130116 2:56:07[Note]/usr/sbin/mysqld:Normalshutdown
  3. 130116 2:56:07[Note]
  4. EventScheduler:Purgingthe queue.0events
  5. 130116 2:56:07 InnoDB:Startingshutdown...
  6. 130116 2:56:07 InnoDB:Shutdowncompleted;log sequence number1595669
  7. 130116 2:56:07[Note]/usr/sbin/mysqld:Shutdowncomplete



    过程中的log,如复制、表的修复,域名解析,磁盘空间不足等信息。


点击(此处)折叠或打开

  1. 13011618:40:24[Warning]'user'entry'root@AY1211280808464774829'ignoredin--skip-name-resolve mode.
  2. 13011618:40:24[Warning]'user'entry'@AY1211280808464774829'ignoredin--skip-name-resolve mode.


    当然很多问题在error log中找不到任何信息的,比如慢查询。

general log

    general log从客户端连接开始,记录所有的sql执行记录,直到连接关闭。较少开启使用,对所有的操作记录日志,必然带来io负载,而且这个日志的增长会非常快,也会占用磁盘空间。general log可以动态的开启和关闭,一般会在需要的时候开启一段时间用于分析。正常运行关闭general log。

    setglobalgenral_log=1/0;

binary log

    bin log记录所有修改数据的sql语句。主要用于复制、数据备份恢复。

    bin log的格式有row,statement,mixed。如果不是在行模式下,所有的更改操作都会被记录,即使实际上这个语句并没有改变数据。如:

        update tablesetcol=1where1=2;

    在mixed模式下,一般记录方式为statement,一些特性情况下,转换为row模式:

        1.    更新的表为NDB引擎表。

        2.    function中使用uuid()

        3.    1个以上带自增长列的表更新

        4.    insert delayed

        5.    view中内容需要row模式

        6.    用户自定义函数

        7.    等。

    相关参数:

       binlog_format    bin log记录模式

       log-bin 指定bin log的数据目录及名称前缀

       max_binlog_size binlog日志文件的大小上限。为保证一个事务在一个bin log文件中,实际的值可能大于这个参数值。一般情况下,当日志文件达到这个值后,mysqld会根据log-bin-index指定文件内容生成下一个binlog文件。

       binlog-do-db /binlog-ignore-db用于指定bin log的记录内容

       log-slave-updates 设置slave是否对复制的数据记录到binlog,如多级复制时,中间级的db就需要这个参数以便后续的slave做复制。

       binlog-cache-size     bin log日志缓存大小。对于事务引擎,在事务未提交前,binlog将记录在这个cache中,如果超过cache大小就使用临时文件。

       max_binlog_cache_size   binlog缓存最大值

       sync_binlog  bin log flush到磁盘的频率设置,(0,1,n)。

    工具命令:

       reset master重置所有的binlog,也就是回到未开启bin log的情况。

       purge binary logs删除bin log日志文件。

       mysqlbinlog     用于binlog分析工具。bin log本身是二进制不方便查看,这个工具可以是bin log可视化。

slow query log

    slow query记录慢查询语句。

    慢查询的检查是非常有必要的。经常由于sql语句导致负载高,响应慢,长时间资源占用甚至是拖垮数据库。而对慢查询的优化处理可以提升性能,降低系统负载以及避免故障的产生。

    参数:

       log-slow-queries 开启/关闭慢查询日志

       long_query_time 慢查询记录时间

    log-queries-not-using-indexs 对未使用索引的查询记录到slow log

    慢查询的分析工具有自带的mysqldumpslow,mysqlsla,pt-query-diges等,各有所长,主要作用都是对慢查询日志进行统计分析和排序,提供更好的分析结果。

innodb log

    innodb的日志分为redo log(日志文件组ib_logfile*)和undo log(共享表空间中ibdata*)。

    redo log重做日志用与数据的恢复以及提高io能力。

    undo log撤销日志用于事务的回滚。


    innodb log的日志机制

   
binlog 记录机制

阅读(1778) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~