mysql的日志系统_mysql 日志系统

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:

点击(此处)折叠或打开

130116 2:50:22[Warning]Youneed touse--log-bin to make--binlog-format work.

130116 2:50:22[Note]Plugin'FEDERATED'isdisabled.

130116 2:50:22InnoDB:TheInnoDBmemory heapisdisabled

130116 2:50:22InnoDB:Mutexesandrw_locksuseGCC atomic builtins

130116 2:50:22InnoDB:Compressedtablesusezlib1.2.3.4

130116 2:50:22InnoDB:Initializingbuffer pool,size=16.0M

130116 2:50:22InnoDB:Completedinitialization of buffer pool

130116 2:50:22InnoDB:highest supported file formatisBarracuda.

130116 2:50:22 InnoDB:Waitingforthe background threads to start

130116 2:50:23InnoDB:1.1.8started;log sequence number1595669

130116 2:50:23[Note]Serverhostname(bind-address):'0.0.0.0';port:3306

130116 2:50:23[Note] -'0.0.0.0'resolves to'0.0.0.0';

130116 2:50:23[Note]Serversocket created on IP:'0.0.0.0'.

130116 2:50:23[Note]EventScheduler:Loaded0events

130116 2:50:23[Note]/usr/sbin/mysqld:readyforconnections.

Version:'5.5.28-0ubuntu0.12.04.3' socket:'/var/run/mysqld/mysqld.sock'

关闭时log:

点击(此处)折叠或打开

port:3306 (Ubuntu)

130116 2:56:07[Note]/usr/sbin/mysqld:Normalshutdown

130116 2:56:07[Note]

EventScheduler:Purgingthe queue.0events

130116 2:56:07 InnoDB:Startingshutdown...

130116 2:56:07 InnoDB:Shutdowncompleted;log sequence number1595669

130116 2:56:07[Note]/usr/sbin/mysqld:Shutdowncomplete

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

点击(此处)折叠或打开

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

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撤销日志用于事务的回滚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值