设为首页 加入收藏

TOP

MySQL的日志管理
2017-08-19 10:24:33 】 浏览:9323
Tags:MySQL 日志 管理

1.简介


  日志文件记录着mysql数据库运行期间发生的变化,如:mysql数据库的客户端连接状况、sql语句的执行情况和错误信息等。当数据库遭到意外的损坏时,可以通过日志查看文件出错的原因,并且可以通过日志进行数据恢复;也可以通过日志文件分析数据、优化查询等。Mysql日志管理机制比较完善,它包含了以下几种常见的日志文件、分别为:错误日志(-log-err)、查询日志(-log)、二进制日志(-log-bin)、更新日志(-log-update)及慢查询日志(-log-slow-queries)。


2.操作错误日志


  在mysql数据库中,错误日志记录着mysql服务器的启动和停止过程中的信息、服务器在运行过程中发生的故障和异常情况的相关信息、事件调度器运行一个事件时产生的信息、在从服务器上启动服务器进程时产生的信息等。错误日志记录的并非全是错误信息,如mysql如何启动InnoDB的表空间文件、如何初始化自己的存储引擎等信息也记录在错误日志中。


(1)启动错误日志


  错误日志在默认情况下是开启的,并且不能被禁止。错误日志信息也可以自行配置,通过修改my.cnf文件即可。错误日志所记录的信息是可以通以log-error和log-warnings来定义的,其中log-err定义是否启用错误日志的功能和错误日志的位置,log-warning定义是否将警告信息也定义至错误日志中。-log-error=[file-name]用来指定错误日志的存放位置。如果没有指定[file-name],默认hostname.err作为文件名,默认存放在datadir目录中。


(2)查看错误日志


Linux中直接使用vi或者gdit工具来查看


(3)删除错误日志


  管理员可以删除很久之前的错误日志,这样可以保证mysql服务器上的硬盘空间。通过show命令查看错误文件所在位置,确认可以删除错误日志后可以直接删除文件。在mysql数据库中,可以使用mysqladmin命令来开启新的错误日志,语法如下:


3.操作查询日志


  查询日志记录了用户的所有操作,包括对数据库的增、删、查、改等信息,在并发操作多的环境下会产生大量的信息,从而导致不必要的磁盘IO,会影响mysql的性能。如不是为了调试数据库的目的建议不要开启查询日志。


查询日志包含日期和时间、服务器线程ID、事件类型以及特定事件信息的列。


(1)启动查询日志


  默认情况下查询日志是关闭的。如需打开查询日志,通过修改my.cnf文件来启动查询日志。在[mysqld]组下加入log选项,格式如下。


(2)查看查询日志


vim查看,首先通过上述命令查看存放位置。


(3)删除查询日志


  由于查询日志记录了用户的所有操作。如果数据库的使用非常频繁,那么查询日志的数据量将会非常大,也会占用很大的磁盘空间。通过show命令查看错误文件所在位置,确认可以删除通用日志后可以直接删除文件。


Flush logs重新生成日志。


4.操作二进制日志


  Mysql数据库的二进制文件是用来记录所有用户对数据库的操作。当数据库发生意外时,可以通过此文件查看在一定时间段内用户所做的操作,结合数据库备份技术,即可实现用户操作,使数据库恢复。


(1)启动二进制日志


默认情况下是不开启二进制日志文件的,通过命令查看


开启方式:在/etc/my.cnf下


在datadir中生成文件



每重启一次mysql就是重新生成cai-bin。如果日志长度超过max_binlog_size的上限(默认是1G=10737418248)也会创建一个新的日志文件,通过show命令查看二进制日志的上限


(2)查看二进制日志


总结:开启二进制文件可以实现如下几个功能


恢复(recovery):某些数据的恢复需要二进制日志,例如,在一个数据库全备文件恢复后,用户可以通过二进制日志进行point-in-time的恢复。


复制(replication):其原理与恢复类似,通过复制和执行二进制日志使一台远程的mysql数据库与另一台mysql数据库进行实时同步。


审计(audit):用户可以通过二进制日志中的信息来进行审计,判断是否有对数据库进行注入的攻击。


(3)删除二进制日志


  用reset master命令删除所有日志,新日志从000001开始编号


(4)使用二进制日志还原数据库


5.操作慢查询日志


  优化mysql最重要的一部分工作就是先确定“有问题”的查询语句。只有先找出这些查询较慢的sql查询,才可以进一步分析原因并且优化它。慢查询日志就记录了执行时间超过了特定时长的查询,即记录所有执行时间超过最大sql执行时间(long_query_time)或未使用索引的语句。


(1)启动慢查询日志


默认情况下,慢查询日志是关闭的。可以通过配置文件my.cnf来启用,配置方式如下:


(2)删除慢查询日志


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Windows下安装和配置MongoDB 下一篇mysqldump: Error: Binlogging on..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目