mysql日志文件的使用.docx
- 文档编号:2780354
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:10
- 大小:38.22KB
mysql日志文件的使用.docx
《mysql日志文件的使用.docx》由会员分享,可在线阅读,更多相关《mysql日志文件的使用.docx(10页珍藏版)》请在冰豆网上搜索。
mysql日志文件的使用
mysql日志文件的使用、数据恢复
一、mysql日志类型
MYSQL有不同类型的日志文件(各自存储了不同类型的日志),从它们当中可以查询到MYSQL里都做了些什么,对于MYSQL的管理工作,这些日志文件是不可缺少的。
1.错误日志(Theerrorlog):
记录了数据库启动、运行以及停止过程中错误信息;
2.ISAM操作日志(Theisamlog):
记录了所有对ISAM表的修改,该日志仅仅用于调试ISAM模式;
3.SQL执行日志(Thequerylog):
记录了客户端的连接以及所执行的SQL语句;
4.更新日志(Theupdatelog):
记录了改变数据的语句,已经不建议使用,由二进制日志替代;
5.二进制日志(Thebinarylog):
记录了所有对数据库数据的修改语句;
6.超时日志(Theslowlog):
记录所有执行时间超过最大SQL执行时间(long_query_time)或未使用索引的语句;
7.relaylog:
如果你是在用mysql的复制、备份功能,那么从服务器还提供了一种叫做relaylog的日志文件。
默认情况下所有日志文件会记录在MYSQL的数据目录下,你可以通过强制mysql去关闭并重新打开一个文件进行日志记录,当然系统会自动加后缀(如.00001,.00002),方式有在mysql环境下执行语句mysql>flushlogs;或者通过mysqladmin管理程序执行#mysqladminflush-logs或#mysqladminrefresh
二、mysql日志的配置
这些日志的启动方式可以在mysqld_safe方式启动数据库的时候,后面跟选项参数,也可以在配置文件里配置
配置文件配置
[mysqld]
log=/var/log/mysqld_common.log
log-error=/var/log/mysqld_err.log
log-bin=/var/log/mysqld_bin.bin
参数配置:
在mysql的安装目录下,打开my.ini,在后面加上上面的参数,保存后重启mysql服务就行了。
#Enteranamefortheslowquerylogfile.Otherwiseadefaultnamewillbeused.慢查询日志
#log-slow-queries=
#Enteranameforthebinarylog.Otherwiseadefaultnamewillbeused.
log-bin=
#Enteranameforthequerylogfile.Otherwiseadefaultnamewillbeused.
#log=
#Enteranamefortheerrorlogfile.Otherwiseadefaultnamewillbeused.
log-error=
#Enteranamefortheupdatelogfile.Otherwiseadefaultnamewillbeused.
#log-update=
三、mysql日志的查看
日志的查看很简单,大部分都是文本,直接用vim、less、more之类的工具看就可以了,值得说明的是二进制文件的查看:
1.首先确定是否开启了二进制文件记录功能
Sql代码 mysql>showvariableslike'log_bin';
上面只开启了错误日志,要开其他的日志就把前面的“#”去掉(参数)
查看命令:
①showvariableslike'log_%';查看所有的log命令
②showvariableslike'log_bin';查看具体的log命令
2.如果你想知道现在记录二进制数据的文件具体信息,你可以通过下列语句看到现在正在记录哪个文件,以及记录的当前位置:
Sql代码 mysql>showmasterstatus;
3.查看二进制数据需要借助程序mysqlbinlog,看看它支持哪些选项,根据自己需要来使用。
Sql代码 mysql>mysqlbinlog/var/log/mysql/mysql-bin.000040;
4.将二进制日志文件导出txt文本文件查看
Sql代码
mysql>mysqlbinlog/var/log/mysql/mysql-bin.000040>/var/log/mysql/000040.txt;
5.查询某个时间范围的可以执行下列语句,如果记录很多可以将结果定向到一个文件里自己慢慢看:
-):
Sql代码
mysql>mysqlbinlog--start-datetime='2008-01-0100:
00:
00'--stop-datetime='2008-08-0800:
00:
00' /var/log/mysql/mysql-bin.000040>./tmp.log
四、使用二进制日志恢复数据
mysqlbinlog工具的使用,大家可以看MySQL的帮助手册,里面有详细的用。
在这个例子中,重点是--start-position参数和--stop-position参数的使用。
--start-position=N:
从二进制日志中位置等于N参量时的事件开始读。
--stop-position=N:
从二进制日志中位置等于和大于N参量时的事件起停止读。
1.创建实验环境
在一测试数据库里,创建一个表,并添加记录,然后产生日志文件。
Sql代码
mysql>createtabletest(idintauto_incrementnotnullprimarykey,valint,datavarchar(20));
mysql>insertintotest(val,data)values(10,'liang');
QueryOK,1rowaffected(0.03sec)
mysql>insertintotest(val,data)values(20,'jia');
QueryOK,1rowaffected(0.08sec)
mysql>insertintotest(val,data)values(30,'hui');
QueryOK,1rowaffected(0.03sec)
mysql>flushlogs;--产生第二个日志文件
QueryOK,0rowsaffected(0.09sec)
mysql>insertintotest(val,data)values(40,'aaa');
QueryOK,1rowaffected(0.05sec)
mysql>insertintotest(val,data)values(50,'bbb');
QueryOK,1rowaffected(0.03sec)
mysql>insertintotest(val,data)values(60,'ccc');
QueryOK,1rowaffected(0.03sec)
mysql>deletefromtestwhereidbetween4and5;--删除记录
QueryOK,2rowsaffected(0.05sec)
mysql>insertintotest(val,data)values(70,'ddd');
QueryOK,1rowaffected(0.03sec)
mysql>flushlogs;--产生第三个文件文件
QueryOK,0rowsaffected(0.11sec)
mysql>insertintotest(val,data)values(80,'dddd');
QueryOK,1rowaffected(0.05sec)
mysql>insertintotest(val,data)values(90,'eeee');
QueryOK,1rowaffected(0.03sec)
mysql>droptabletest;--删除表
QueryOK,0rowaffected(0.05sec)
2.恢复数据
先用mysqlbinlog工具将日志文件生成txt文件出来分析。
Sql代码
mysql>mysqlbinlog/var/log/mysql/mysql-bin.000001>/var/log/mysql/000001.txt;
mysql>mysqlbinlog/var/log/mysql/mysql-bin.000002>/var/log/mysql/000002.txt;
mysql>mysqlbinlog/var/log/mysql/mysql-bin.000003>/var/log/mysql/000003.txt;
通过这三个命令,可以生成分别记录了日志文件的内容,也就是用户操作的步骤。
因为我们需要重做第一个日志文件的所有操作,所以这里只需要将第一个日志文件全恢复就行了。
Sql代码
mysql>mysqlbinlog/var/log/mysql/mysql-bin.000001 |mysql-uroot–p
Ok,接着,我们需要分析的是第二个日志文件。
为什么要分析它呢,因为它中途执行了一个操作是DELETE,因为我们要做的是恢复全部数据,也就是我们不希望去重做这个语句。
所以在这里我们要想办法去绕开它。
我们先打开.txt文件来分析一下。
Sql代码
/*
/*!
40019SET@@session.max_insert_delayed_threads=0*/;
/*!
50003SET@OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER/*!
*/;
#at4
#09042715:
27:
56serverid1end_log_pos106Start:
binlogv4,serverv5.1.32-community-logcreated09042715:
27:
56
BINLOG'
fF71SQ8BAAAAZgAAAGoAAAAAAAQANS4xLjMyLWNvbW11bml0eS1sb2cAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
'/*!
*/;
#at106
#09042715:
28:
37serverid1end_log_pos
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mysql 日志 文件 使用
![提示](https://static.bdocx.com/images/bang_tan.gif)