《第7章mysql日志ppt课件》由会员分享,可在线阅读,更多相关《第7章mysql日志ppt课件(33页珍藏版)》请在金锄头文库上搜索。
1、MySql数据库数据库天津理工大学 华信软件学院 田春艳 Email : tcy_ Tel: 15522679799 2011年9月-2012年1月 Mysql入门很简单 田春艳 Mysql概述第第17章章 MySQL日志日志n nMySQL日志是记录MySQL数据库的日常操作和错误信息的文件。MySQL中,日志可以分为二进制日志、错误日志、通用查询日志和慢查询日志。分析这些日志文件,可以了解MySQL数据库的运行情况、日常操作、错误信息和哪些地方需要进行优化。 Mysql入门很简单 田春艳 Mysql概述内容内容n n日志定义、作用和优缺点日志定义、作用和优缺点n n二进制日志n n错误日志
2、n n通用查询日志n n慢查询日志n n日志管理 Mysql入门很简单 田春艳 Mysql概述日志简介(日志简介(1)n n日志是MySQL数据库的重要组成部分。日志文件中记录着MySQL数据库运行期间发生的变化。当数据库遭到意外的损害时,可以通过日志文件来查询出错原因,并且可以通过日志文件进行数据恢复。 Mysql入门很简单 田春艳 Mysql概述日志简介(日志简介(2)n nMySQL日志可以分为四种,分别是二进制日志、错误日志、通用查询日志和慢查询日志。下面分别简单的介绍这四种日志文件的作用:n n二进制日志:n n错误日志:n n通用查询日志:n n慢查询日志: Mysql入门很简单
3、田春艳 Mysql概述内容内容n n日志定义、作用和优缺点n n二进制日志二进制日志n n错误日志n n通用查询日志n n慢查询日志n n日志管理 Mysql入门很简单 田春艳 Mysql概述二进制日志二进制日志n n二进制日志也叫作变更日志(update log),主要用于记录数据库的变化情况。通过二进制日志可以查询MySQL数据库中进行了哪些改变。 Mysql入门很简单 田春艳 Mysql概述启动和设置二进制日志启动和设置二进制日志n n默认情况下,二进制日志功能是关闭的。通过f或者my.ini文件的log-bin选项可以开启二进制日志。将log-bin选项加入到f或者my.ini文件的m
4、ysqld组中,形式如下:n n# f(Linux操作系统下)或者my.ini(Windows操作系统下)n nmysqldn nlog-bin =DIR filename Mysql入门很简单 田春艳 Mysql概述查看二进制日志查看二进制日志n n使用二进制格式可以存储更多的信息,并且可以使写入二进制日志的效率更高。但是,不能直接打开并查看二进制日志。如果需要查看二进制日志,必须使用mysqlbinlog命令。mysqlbinlog命令的语法形式如下:n nmysqlbinlog filename.number Mysql入门很简单 田春艳 Mysql概述删除二进制日志删除二进制日志n n
5、二进制日记会记录大量的信息。如果很长时间不清理二进制日志,将会浪费很多的磁盘空间。删除二进制日志的方法很多。n n1删除所有二进制日志n nreset master reset master n n2根据编号来删除二进制日志n nPurge master logs to Purge master logs to filename.numberfilename.number n n3根据创建时间来删除二进制日志n nPurge master logs to Purge master logs to yyyy-mm-ddyyyy-mm-dd hh:mm:sshh:mm:ss Mysql入门很简单
6、田春艳 Mysql概述使用二进制日志还原数据库使用二进制日志还原数据库n n二进制日志记录了用户对数据库中数据的改变。如二进制日志记录了用户对数据库中数据的改变。如INSERTINSERT语句、语句、UPDATEUPDATE语句、语句、CREATECREATE语句等都会记录语句等都会记录到二进制日志中。一旦数据库遭到破坏,可以使用二进到二进制日志中。一旦数据库遭到破坏,可以使用二进制日志来还原数据库。制日志来还原数据库。n n如果数据库遭到意外损坏,首先应该使用最近的备份文如果数据库遭到意外损坏,首先应该使用最近的备份文件来还原数据库。备份之后,数据库可能进行了一些更件来还原数据库。备份之后,
7、数据库可能进行了一些更新。这可以使用二进制日志来还原。因为二进制日志中新。这可以使用二进制日志来还原。因为二进制日志中存储了更新数据库的语句,如存储了更新数据库的语句,如UPDATEUPDATE语句、语句、INSERTINSERT语句等。二进制日志还原数据库的命令如下:语句等。二进制日志还原数据库的命令如下:n nmysqlbinlogmysqlbinlog filename.numberfilename.number | | mysqlmysql -u root -p -u root -p Mysql入门很简单 田春艳 Mysql概述暂时停止二进制日志功能暂时停止二进制日志功能n n在配置文
8、件中设置了在配置文件中设置了log-binlog-bin选项以后,选项以后,MySQLMySQL服务器将服务器将会一直开启二进制日志功能。删除该选项后就可以停止会一直开启二进制日志功能。删除该选项后就可以停止二进制日志功能。如果需要再次启动这个功能,又需要二进制日志功能。如果需要再次启动这个功能,又需要重新添加重新添加log-binlog-bin选项。选项。MySQLMySQL中提供了暂时停止二进制中提供了暂时停止二进制日志功能的语句。日志功能的语句。n n如果用户不希望自己执行的某些如果用户不希望自己执行的某些SQLSQL语句记录在二进制语句记录在二进制日志中,那么需要在执行这些日志中,那么
9、需要在执行这些SQLSQL语句之前暂停二进制语句之前暂停二进制日志功能。用户可以使用日志功能。用户可以使用SETSET语句来暂停二进制日志功语句来暂停二进制日志功能,能,SETSET语句的代码如下:语句的代码如下:n nSET SQL_LOG_BIN=0 ;SET SQL_LOG_BIN=0 ; Mysql入门很简单 田春艳 Mysql概述内容内容n n日志定义、作用和优缺点n n二进制日志n n错误日志错误日志n n通用查询日志n n慢查询日志n n日志管理 Mysql入门很简单 田春艳 Mysql概述错误日志错误日志n n错误日志是MySQL数据库中最常用的一种日志。错误日志主要用来记录M
10、ySQL服务的开启、关闭和错误信息。 Mysql入门很简单 田春艳 Mysql概述启动和设置错误日志启动和设置错误日志n n在在MySQLMySQL数据库中,错误日志功能是默认开启的。数据库中,错误日志功能是默认开启的。而且,错误日志无法被禁止。默认情况下,错误日志而且,错误日志无法被禁止。默认情况下,错误日志存储在存储在MySQLMySQL数据库的数据文件夹下。错误日志文数据库的数据文件夹下。错误日志文件通常的名称为件通常的名称为hostname.errhostname.err。其中,。其中,hostnamehostname表示表示MySQLMySQL服务器的主机名。错误日志的存储位置可以服
11、务器的主机名。错误日志的存储位置可以通过通过log-errorlog-error选项来设置。将选项来设置。将log-errorlog-error选项加入到选项加入到my.inimy.ini或者或者f文件的文件的 mysqldmysqld 组中,形式如下:组中,形式如下:n n# # f(LinuxLinux操作系统下)或者操作系统下)或者my.inimy.ini(WindowsWindows操作系统下)操作系统下)n nlog-error=DIR / filenamelog-error=DIR / filename Mysql入门很简单 田春艳 Mysql概述查看错误日志查看错误日志n n错误
12、日志中记录着开启和关闭MySQL服务的时间,以及服务运行过程中出现哪些异常等信息。如果MySQL服务出现异常,可以到错误日志中查找原因。n n错误日志是以文本文件的形式存储的,可以直接使用普通文本工具就可以查看。Windows操作系统可以使用文本文件查看器查看。Linux操作系统下,可以使用vi工具或者使用gedit工具来查看。 Mysql入门很简单 田春艳 Mysql概述删除错误日志删除错误日志n n数据库管理员可以删除很长时间之前的错误日志,以保证MySQL服务器上的硬盘空间。MySQL数据库中,可以使用mysqladmin命令来开启新的错误日志。mysqladmin命令的语法如下:n n
13、mysqladmin -u root -p flush-logsn n执行该命令后,数据库系统会自动创建一个新的错误日志。旧的错误日志仍然保留着,只是已经更名为filename.err-old。 Mysql入门很简单 田春艳 Mysql概述内容内容n n日志定义、作用和优缺点n n二进制日志n n错误日志n n通用查询日志通用查询日志n n慢查询日志n n日志管理 Mysql入门很简单 田春艳 Mysql概述通用查询日志通用查询日志n n通用查询日志用来记录用户的所有操作,包括启动和关闭MySQL服务、更新语句、查询语句等。 Mysql入门很简单 田春艳 Mysql概述启动和设置通用查询日志启
14、动和设置通用查询日志n n默认情况下,通用查询日志功能是关闭的。通过f或者my.ini文件的log选项可以开启通用查询日志。将log选项加入到f或者my.ini文件的mysqld组中,形式如下:n n# f(Linux操作系统下)或者my.ini(Windows操作系统下)n nmysqldn nlog =DIR filename Mysql入门很简单 田春艳 Mysql概述查看通用查询日志查看通用查询日志n n用户的所有操作都会记录到通用查询日志中。如果希望了解某个用户最近的操作,可以查看通用查询日志。通用查询日志是以文本文件的形式存储的。Windows操作系统可以使用文本文件查看器查看。L
15、inux操作系统下,可以使用vi工具或者使用gedit工具来查看。 Mysql入门很简单 田春艳 Mysql概述删除通用查询日志删除通用查询日志n n通用查询日志会记录用户的所有操作。如果数据通用查询日志会记录用户的所有操作。如果数据库的使用非常频繁,那么通用查询日志将会占用库的使用非常频繁,那么通用查询日志将会占用非常大的磁盘空间。数据库管理员可以删除很长非常大的磁盘空间。数据库管理员可以删除很长时间之前的通用查询日志,以保证时间之前的通用查询日志,以保证MySQLMySQL服务器服务器上的硬盘空间。本小节将介绍删除通用查询日志上的硬盘空间。本小节将介绍删除通用查询日志的方法。的方法。n n
16、MySQLMySQL数据库中,也可以使用数据库中,也可以使用mysqladminmysqladmin命令来命令来开启新的通用查询日志。新的通用查询日志会直开启新的通用查询日志。新的通用查询日志会直接覆盖旧的查询日志,不需要再手动删除了。接覆盖旧的查询日志,不需要再手动删除了。mysqladminmysqladmin命令的语法如下:命令的语法如下:n nmysqladminmysqladmin -u root -p flush-logs -u root -p flush-logs Mysql入门很简单 田春艳 Mysql概述内容内容n n日志定义、作用和优缺点n n二进制日志n n错误日志n n
17、通用查询日志n n慢查询日志慢查询日志n n日志管理 Mysql入门很简单 田春艳 Mysql概述慢查询日志慢查询日志n n慢查询日志用来记录执行时间超过指定时间的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。 Mysql入门很简单 田春艳 Mysql概述启动和设置慢查询日志启动和设置慢查询日志n n默认情况下,慢查询日志功能是关闭的。通过默认情况下,慢查询日志功能是关闭的。通过f或者或者my.inimy.ini文件的文件的log-slow-querieslog-slow-queries选项可以开启慢查询日志。选项可以开启慢查询日志。通过通过long_query
18、_timelong_query_time选项来设置时间值,时间以秒为单位。选项来设置时间值,时间以秒为单位。如果查询时间超过了这个时间值,这个查询语句将被记录如果查询时间超过了这个时间值,这个查询语句将被记录到慢查询日志。将到慢查询日志。将log-slow-querieslog-slow-queries选项和选项和long_query_timelong_query_time选项加入到选项加入到f或者或者my.inimy.ini文件的文件的 mysqldmysqld 组中,形式组中,形式如下:如下:n n# # f(LinuxLinux操作系统下)或者操作系统下)或者my.inimy.ini(W
19、indowsWindows操作操作系统下)系统下)n n mysqldmysqld n nlog-slow-queries =DIR filename log-slow-queries =DIR filename n nlong_query_timelong_query_time=n=n Mysql入门很简单 田春艳 Mysql概述查看慢查询日志查看慢查询日志n n执行时间超过指定时间的查询语句会被记录到慢查询日志中。如果用户希望查询哪些查询语句的执行效率低,可以从慢查询日志中获得想要的信息。慢查询日志也是以文本文件的形式存储的。可以使用普通的文本文件查看工具来查看。 Mysql入门很简单 田
20、春艳 Mysql概述删除慢查询日志删除慢查询日志n n慢查询日志的删除方法与通用查询日志的删除方法是一样的。可以使用mysqladmin命令来删除。也可以使用手工方式来删除。mysqladmin命令的语法如下:n nmysqladmin -u root -p flush-logs Mysql入门很简单 田春艳 Mysql概述删除慢查询日志删除慢查询日志n n执行该命令后,命令行会提示输入密码。输入正确密码后,将执行删除操作。新的慢查询日志会直接覆盖旧的查询日志,不需要再手动删除了。数据库管理员也可以手工删除慢查询日志。删除之后需要重新启动MySQL服务。重启之后就会生成新的慢查询日志。如果希望备份旧的慢查询日志文件,可以将旧的日志文件改名。然后重启MySQL服务 Mysql入门很简单 田春艳 Mysql概述注意注意n np376 Mysql入门很简单 田春艳 Mysql概述 Mysql入门很简单 田春艳 Mysql概述 Mysql入门很简单 田春艳 Mysql概述 Mysql入门很简单 田春艳 Mysql概述总结总结Q & A!