mysql 日志文件的使用.doc_第1页
mysql 日志文件的使用.doc_第2页
mysql 日志文件的使用.doc_第3页
mysql 日志文件的使用.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

mysql 日志文件的使用 收藏 MYSQL有不同类型的日志文件(各自存储了不同类型的日志),从它们当中可以查询到MYSQL里都做了些什么,对于MYSQL的管理工作,这些日志文件是不可缺少的。1.错误日志(The error log):记录了数据库启动、运行以及停止过程中错误信息;2.ISAM操作日志(The isam log):记录了所有对ISAM表的修改,该日志仅仅用于调试ISAM模式;3.SQL执行日志(The query log):记录了客户端的连接以及所执行的SQL语句;4.更新日志(The update log):记录了改变数据的语句,已经不建议使用,由二进制日志替代;5.二进制日志(The binary log):记录了所有对数据库数据的修改语句;6.超时日志(The slow log):记录所有执行时间超过最大SQL执行时间(long_query_time)或未使用索引的语句;如果你是在用mysql的复制、备份功能,那么从服务器还提供了一种叫做relay log的日志文件。默认情况下所有日志文件会记录在MYSQL的数据目录下,你可以通过强制mysql去关闭并重新打开一个文件进行日志记录,当然系统会自动加后缀 (如.00001, .00002),方式有在mysql环境下执行语句 mysqlflush logs; 或者通过mysqladmin管理程序执行 #mysqladmin flush-logs 或 #mysqladmin refresh这些日志的启动方式可以在mysqld_safe方式启动数据库的时候,后面跟选项参数,也可以在配置文件里配置,推荐采用第二种方式,配置方法很简单,我只配置了三种日志:mysqldlog=/var/log/mysqld_common.loglog-error=/var/log/mysqld_err.loglog-bin=/var/log/mysqld_bin.bin日志的查看很简单,大部分都是文本,直接用vim、less、more之类的工具看就可以了,值得说明的是二进制文件的查看:1). 首先确定是否开启了二进制文件记录功能mysqlshow variables like log_bin;2). 如果你想知道现在记录二进制数据的文件具体信息,你可以通过下列语句看到现在正在记录哪个文件,以及记录的当前位置:mysqlshow master status;3). 查看二进制数据需要借助程序mysqlbinlog,看看它支持哪些选项,根据自己需要来使用。mysqlmysqlbinlog /var/log/mysql/mysql-bin.000040;查询某个时间范围的可以执行下列语句,如果记录很多可以将结果定向到一个文件里自己慢慢看:-) :mysqlmysqlbinlog -start-datetime=2008-01-01 00:00:00 -stop-datetime=2008-08-08 00:00:00 /var/log/mysql/mysql-bin.000040 ./tmp.log本文来自CSDN博客,转载请标明出处:/tsuliuchao/archive/2009/12/14/500545有关MySQL的日志文件前面章节已简要讨论过了,主要有四种日志文件,分别是常规查询日志、慢查询日志、变更查询日志和二进制变更日志。这些日志文件的创建需在启动服务器时用选项指定。Table 4.3. 日志启动选项启动选项 激活日志 -log=file_name 常规日志文件 -log-bin=file_name 二进制变更日志文件 -log-bin-index=file_name 二进制变更日志文件索引文件 -log-update=file_name 变更日志文件 -log-slow-queries=file_name 慢查询日志文件 -log-isam=file_name ISAM/MyISAM日志文件 -log-long-format 设置慢查询日志和变更日志的格式 BDB和InnoDB数据表的日志文件会自动创建不用指定选项。但可用以下选项指时日志文件的存放路径。Table 4.4. BDB和InnoDB数据表日志选项启动选项 用途 -bdb-logdir=dir_name 存放BDB日志文件的位置 -innodb-log_arch_dir=dir_name 存放InnoDB日志文件的归档目录 -innodb_log_group_home_dir=dir_name 存放InnoDB日志文件的位置 MySQL日志文件选项可在mysqld和mysqld_safe脚本中使用,也可在选项文件f的mysqld中使用。推荐在选项文件中使用,因为每次启动服务器的日志选项基本上都是一致的。日志的刷新可用mysqladmin flush-logs命令或flush logs语句实现。另外,对MySQL服务器发送一条SIGHUP信号也会刷新日志。错误日志和DBD/InnoDB日志不能用以上方法刷新。错误日志记录MySQL数据库系统的论断和出错信息,由mysqld_safe脚本创建,文件名默认为hostname.err,也可通过-err-log或选项文件的err-log语句指定另外的名字。如果直接用mysqld程序启动服务器,错误信息会直接输出到输出设备,也就是屏幕。但我们可用重定向方法把错误信息输出到其它地方,如把错误信息输出到/var/log/mysql.err文件中,可以执行以下语句:% mysqld /var/log/mysql.err 2&1 &在windows平台下,MySQL服务器默认把诊断信息写到数据目录的mysql.err文件中,并且不允许另外指定错误日志文件名。如在启动MySQL服务器时给出了-console选项,则MySQL会把诊断信息输出到控制台窗口而不创建错误日志。但如MySQL是作为一个服务运行,则-console选项不起作用。4.5.1. 日志失效处理在服务器正常运行中,会产生大量的日志文件。我们要对这些日志文件进行失效管理,以节省磁盘空间和方便查询。进行日志失效处理的方式主要有以下几种:日志轮转。该方法适用于常规查询日志和慢查询日志这些文件名固定的日志文件,在日志轮转时,应进行日志刷新操作(mysqladmin flush-logs命令或flush logs语句),以确保缓存在内存中的日志信息写入磁盘;日志轮转的操作过程是这样的:第一次轮转时,把log更名为log.1,然后服务器再创建一个新的log文件,在第二轮转时,再把log.1更名为log.2,把log更名为log.1,然后服务器再创建一个新的log文件。如此循环,创建一系列的日志文件。当到达日志轮转失效位置时,下次轮转就不再对它进行更名,直接把最后一个日志文件覆盖掉。例如:如果每天进行一次日志轮转并想保留最后7天的日志文件,就需要保留log.1-log.7共七个日志文件,等下次轮转时,用log.6覆盖原来的log.7成新的log.7,原来的log.7就自然失效。下面是一个失效处理的shell脚本,以供参考:#!/bin/sh# shell script - rotate_log.shif $# -ne 1 ; then echo Usage: $0 logname 1&2 exit 1iflogfile=$1mv $logfile.6 $logfile.7mv $logfile.5 $logfile.6mv $logfile.4 $logfile.5mv $logfile.3 $logfile.4mv $logfile.2 $logfile.3mv $logfile.1 $logfile.2mv $logfile $logfile.1mysqladmin -u flush -pflushpass flush-logs #执行mysqladmin flush-logs会打开一个日志文件-重新生成一个新的日志文件该脚本以日志文件名为参数,执行方法如下:% rotate_log.sh /usr/local/mysql/data/log注意,脚本中的mysqladmin命令是带有-u和-p参数的,因为我们进行日志刷新时需连接服务器。为确保安全,我们建立一个flush用户,密码为flushpass。该用户只有日志刷新的权限(reload权限)。创建该用户的语句如下:GRANT RELOAD ON *.* TO flushlocalhost IDENTIFIED BY fulshpass;设置好后,我们就可利用系统的自动处理机制定期运行该脚本以生成轮转日志。在Linux系统上的MySQL发行版中带有一个用来安装mysql-log-rotate日志轮转脚本的logrotate工具,如用RPM安装,则在/usr/share/mysql目录,如用二进制方式安装,则在MySQL安装目录的support-files目录,如用源码安装,则在安装目录的share/mysql目录中。在windows平台下,不能在线更名,需停掉服务器,再进行。下面是一个进行日志更名的批处理文件:echo offREM script name : rotate_log.batif not %1 = goto ROTATE echo Usage: rotate_log logname goto DONE:ROTATEset logfile=%1erase %logfile%.7rename %logfile%.6 %logfile%.7rename %logfile%.5 %logfile%.6rename %logfile%.4 %logfile%.5rename %logfile%.3 %logfile%.4rename %logfile%.2 %logfile%.3rename %logfile%.1 %logfile%.2rename %logfile% %logfile%.1:DONE该脚本的执行方法如下:c:rotate_log c:mysqldatalog以时间为依据对日志进行失效处理。该方法将定期删除超过给定时间的日志文件,适用于变更日志和二进制日志等文件名用数字编号标识的日志文件。下面是一个用Perl写成的处理脚本:#!/usr/bin/perl -w# script name: expire_log.pl# Usage: expire_log.pl logfile .use strictdie Usage: $0 logfile .n if ARGV = 0;my $max_allowed_age = 7; #max allowed age in daysforeach my $file (ARGV) #chack each argument unlink ($file) if -e $file & -M $file = $max_allowed_age;exit(0);该脚本需提供一个将被轮转的日志文件名作为参数,如:% expire_log.pl /usr/local/mysql/data/log.0-9* 在给脚本参数时请小心,如给出*为参数,则会删除目录中所有更新时间大于7天的文件。 镜像机制。把日志文件镜像到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论