版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE10PAGE10PAGE9PAGE9
课题MySQL日志管理课时2课时(90min)教学目标知识技能目标:(1)了解什么是MySQL日志(2)掌握设置、查看和删除错误日志的方法(3)掌握开启、设置、查看和删除二进制日志的方法(4)掌握开启、设置、查看和删除通用查询日志的方法(5)掌握开启、设置、查看和删除慢查询日志的方法素质目标:(1)培养定期自我复盘总结的习惯,保持积极向上的学习态度(2)懂得“害人之心不可有,防人之心不可无”的道理教学重难点教学重点:了解什么是MySQL日志教学难点:掌握设置、查看和删除错误日志的方法教学方法案例分析法、问答法、讨论法、讲授法、实践法教学用具电脑、投影仪、多媒体课件、教材教学设计第1节课:→→→传授新知(38min)第2节课:→传授新知(20min)→课堂实训(15min)→课堂小结(3min)→作业布置(2min)教学过程主要教学内容及步骤设计意图第一节课课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过文旌课堂APP或其他学习软件,预习本节课要学习的知识【学生】完成课前任务通过课前任务,使学生预习本节课要学习的知识,增加学生的学习兴趣考勤(2min)【教师】使用文旌课堂APP进行签到【学生】班干部报请假人员及原因培养学生的组织纪律性,掌握学生的出勤情况问题导入(5min)【教师】提出以下问题:MySQL什么情况下会产生错误日志,如何进行查看?通过问题导入,引导学生主动思考,激发学生的学习兴趣传授新知(38min)【教师】通过学生的回答引入要讲的知识,讲解错误日志和二进制日志的相关知识15.1错误日志✈【教师】组织学生扫码观看“错误日志”视频(详见教材),让学生对错误日志有一个大致了解错误日志是MySQL最重要的日志之一,一般记录在MySQL服务器启动和停止时,以及MySQL在运行过程中发生任何严重错误时的相关信息。当数据库发生故障导致无法正常使用时,可以首先查看此日志。✈【教师】讲解“知类通达”的案例(详见教材),引导学生养成良好习惯15.1.1启动和设置错误日志在MySQL中,错误日志默认是开启的,并且该类型日志也无法被禁止。✈【教师】随机邀请学生回答以下问题:MySQL的错误日志一般被保存在哪个位置?✈【学生】聆听、思考、回答✈【教师】总结学生的回答默认情况下,错误日志文件一般放在MySQL服务器的数据文件夹(data)下,文件名为host_name.err,host_name表示服务器主机名。例如,MySQL所在的服务器主机名为ccy,则错误日志文件名为ccy.err。可以通过修改配置文件my.ini来自定义日志文件的名称和存储位置,具体方法为,在[mysqld]组下添加内容修改参数值,形式如下:[mysqld]#错误日志文件log_error=[path/[filename]]上述语句中,path表示错误日志文件的存储路径,filename表示错误日志文件的名称。15.1.2查看错误日志✈【教师】随机邀请学生回答以下问题:为什么要查看错误日志?如果忘记错误日志的存储路径,要如何查看?✈【学生】聆听、思考、回答✈【教师】总结学生的回答通过查看错误日志文件,可以监视系统运行状态,便于及时发现和修复故障。MySQL中的错误日志文件以文本文件形式存储,可以使用文本编辑器直接查看MySQL错误日志。如果不知道日志文件的存储路径,可以使用SHOWVARIABLES语句查询错误日志的存储路径,语法形式如下:SHOWVARIABLESLIKE'log_error';【实例15-1】执行SQL语句,查询错误日志文件的存储路径,并用记事本查看错误日志。首先,执行SHOWVARIABLES语句查询错误日志的存储路径和文件名。SQL语句及其执行结果如下:mysql>SHOWVARIABLESLIKE'log_error';+++|Variable_name|Value|+++|log_error|F:\mysql-5.7.18-winx64\data\ccy.err|+++1rowinset,1warning(0.00sec)可以看到错误日志文件位于F:\mysql-5.7.18-winx64\data\目录下,文件名为ccy.err,使用记事本打开该文件,可以看到MySQL错误日志图只显示了错误日志的一部分内容,如果要查看其他较新的内容,可以向下拖动右侧滚动条进行查看。15.1.3删除错误日志MySQL中的错误日志文件可以直接删除,但在运行状态下删除日志文件后,MySQL并不会自动创建新的日志文件,此时需要执行以下命令重新创建日志文件:FLUSHERRORLOGS;【提示】在MySQL5.5.7版本之前,执行FLUSHERRORLOGS;命令可将错误日志文件重命名为file_name.err_old,并创建新的日志文件。从MySQL5.5.7版本开始,在日志文件存在的情况下,执行FLUSHERRORLOGS;命令只是重新打开日志文件。15.2二进制日志✈【教师】组织学生扫码观看“二进制日志”视频(详见教材),让学生对二进制日志有一个大致了解二进制日志(BINLOG)记录了所有DDL(对数据库内部对象进行创建、删除、修改等操作)和DML(对数据库中表记录的插入、更新、删除等操作)语句,但不包括数据查询语句。语句以“事件”形式存储,并且记录了语句发生时间、执行时长、操作的数据等。二进制日志对于数据损坏后的恢复起着至关重要的作用,第16章将会具体介绍使用二进制日志恢复数据的方法。本节主要介绍二进制日志的启动、设置、查看和删除方法。15.2.1启动和设置二进制日志默认情况下,二进制日志是关闭的,可以通过在配置文件my.ini中[mysqld]组下添加以下内容,来启动二进制日志:#开启二进制日志log_bin[=path/[filename]]#此处必须指定server_id,这是MySQL5.7.3版本之后的要求server_id=1上述语句中,path表示二进制日志文件的存储路径,默认位于数据文件夹下;filename表示二进制日志文件名,具体格式为hostname-bin.number,其中number的格式可以为000001、000002、000003等。另外,通过在配置文件my.ini中[mysqld]组下添加以下内容,可以设置二进制日志的过期天数,以及单个日志文件的大小。具体形式如下:expire_logs_days=10max_binlog_size=100M其中,expire_logs_days用于设定二进制日志的过期天数,超出此天数的二进制日志文件将被自动删除。默认为0,表示不启用过期自动删除功能。如果启用该功能,自动删除工作通常发生在启动MySQL或刷新二进制日志时。max_binlog_size用于定义二进制日志文件的大小,默认为1GB,如果当前二进制文件的大小达到了参数指定的值,系统会自动创建一个新的日志文件。【提示】需要注意的是,某些二进制文件的大小可能会超出max_binlog_size值,因为一个事务所产生的所有事件都必须要记录在同一个二进制文件中。这种情况下,即便二进制文件的大小超出max_binlog_size的值,也会等到当前事务的所有操作全部写入当前日志文件中后才会重新创建文件。配置完成后,需要重启MySQL服务器才会生效。执行SHOWVARIABLES语句可查询二进制日志的相关配置,具体语法形式如下:SHOWVARIABLESLIKE'%bin%';【实例15-2】启动并设置二进制日志文件,之后使用SHOWVARIABLES语句查询日志设置。步骤
1打开配置文件my.ini,并在其中的[mysqld]组下添加以下语句,启动和设置二进制日志:log_binserver_id=1expire_logs_days=10max_binlog_size=100M步骤
2重新启动MySQL服务器,然后登录MySQL,并输入SHOWVARIABLES语句查询日志设置,结果如下:mysql>SHOWVARIABLESLIKE'%bin%';+++|Variable_name|Value|+++|bind_address|*||binlog_cache_size|32768||binlog_checksum|CRC32||binlog_direct_non_transactional_updates|OFF||binlog_error_action|ABORT_SERVER||binlog_format|ROW||binlog_group_commit_sync_delay|0||binlog_group_commit_sync_no_delay_count|0||binlog_gtid_simple_recovery|ON||binlog_max_flush_queue_time|0||binlog_order_commits|ON||binlog_row_image|FULL||binlog_rows_query_log_events|OFF||binlog_stmt_cache_size|32768||innodb_api_enable_binlog|OFF||innodb_locks_unsafe_for_binlog|OFF||log_bin|ON||log_bin_basename|F:\mysql-5.7.18-winx64\data\ccy-bin||log_bin_index|F:\mysql-5.7.18-winx64\data\ccy-bin.index||log_bin_trust_function_creators|OFF||log_bin_use_v1_row_events|OFF||log_statements_unsafe_for_binlog|ON||max_binlog_cache_size|18446744073709547520||max_binlog_size|104857600||max_binlog_stmt_cache_size|18446744073709547520||sql_log_bin|ON||sync_binlog|1|+++27rowsinset,1warning(0.00sec)由查询结果可以看出,log_bin的变量值为ON,表明二进制日志已经打开。max_binlog_size值为104857600,正好为前面设置的100M。另外,重新启动MySQL后,可以在MySQL服务器的数据文件夹下(此处为F:\mysql-5.7.18-winx64\data\)看到新生成的后缀名为.000001和.index的两个文件,文件前缀名为hostname-bin。【提示】最好将二进制日志文件与数据库文件放在不同的两个磁盘上,这样可以在数据库所属磁盘发生故障时,使用二进制日志文件恢复数据。15.2.2查看二进制日志MySQL二进制日志存储了数据库的所有变更信息,经常会被用到。启动二进制日志后,系统会自动创建两个文件,就是前面提到的hostname_bin.index和hostname_bin.000001文件。✈【教师】通过多媒体展示“二进制日志开启后自动创建的文件”图片(详见教材),然后进行讲解MySQL服务每重新启动一次,或者日志文件大小超过参数max_binlog_size的上限,以“.000001”为后缀的文件就会增加一个,并且后缀名加1递增。由于二进制日志以二进制方式存储,不能直接读取,需要使用mysqlbinlog命令查看,语法形式如下:mysqlbinloglog-file;其中log-file表示日志文件目录。【实例15-3】使用mysqlbinlog命令查看二进制日志。步骤
1打开命令窗口,在其中输入mysqlbinlog命令,查看最新的二进制日志,执行结果如下:PSC:\Users\ccy>mysqlbinlogF:\mysql-5.7.18-winx64\data\ccy-bin.000002/*!50530SET@@SESSION.PSEUDO_SLAVE_MODE=1*/;/*!50003SET@OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;DELIMITER/*!*/;#at4#1806228:09:02serverid1end_log_pos123CRC320xe134181cStart:binlogv4,serverv5.7.18-logcreated1806228:09:02atstartup#Warning:thisbinlogiseitherinuseorwasnotclosedproperly.ROLLBACK/*!*/;BINLOG'Hj4sWw8BAAAAdwAAAHsAAAABAAQANS43LjE4LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAePixbEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQAARwYNOE='/*!*/;#at123#1806228:09:02serverid1end_log_pos154CRC320xab9e47e0Previous-GTIDs#[empty]SET@@SESSION.GTID_NEXT='AUTOMATIC'/*addedbymysqlbinlog*//*!*/;DELIMITER;#Endoflogfile/*!50003SETCOMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;/*!50530SET@@SESSION.PSEUDO_SLAVE_MODE=0*/;PSC:\Users\ccy>【提示】使用mysqlbinlog命令时不需要登录MySQL。步骤
2登录MySQL,并对数据库中任意一张表执行数据修改操作。例如,将company数据库中tb_department表id值为4的记录中work_num值修改为8,SQL语句及其执行结果如下:mysql>USEcompany;Databasechangedmysql>UPDATEtb_departmentSETwork_num=8WHEREid=4;QueryOK,1rowaffected(0.09sec)Rowsmatched:1Changed:1Warnings:0步骤3再次查看二进制日志文件,由以下语句可以看出日志文件记录了该修改过程。#1806229:11:27serverid1end_log_pos360CRC320xa4bc86d7Table_map:`company`.`tb_department`mappedtonumber11415.2.3删除二进制日志二进制日志会记录大量信息(其中包含一些无用的信息),如果长时间不清理,会浪费许多磁盘空间。用户可以在配置文件中设置参数expire_log_days值,使系统自动删除过期日志文件,也可以手动删除。本节将介绍两种手动删除二进制日志的方法。1.删除所有日志文件登录MySQL后,执行RESETMASTER语句可以删除所有二进制日志文件,其语法形式如下:RESETMASTER;执行该语句后,系统会将所有二进制日志删除,MySQL会重新创建二进制日志,新的日志文件后缀名将重新从“000001”开始编号。2.删除指定日志文件实际应用中,通常不会一次性删除所有日志文件,使用PURGEMASTERLOGS语句可以删除指定的日志文件。其基本语法形式如下:PURGE{MASTER|BINARY}LOGS{TO'log_name'|BEFORE'date'};上述语句中,MASTER和BINARY为同义词,TO'log_name'表示删除比指定文件名编号小的日志文件,BEFORE'date'表示删除指定时间之前的日志文件。【实例15-4】使用PURGEMASTERLOGS语句删除指定的日志文件。步骤
1为了实现操作过程,用户可以多次重启MySQL服务,创建多个二进制日志文件,然后执行以下命令查看所有的二进制日志文件,结果如下:mysql>SHOWBINARYLOGS;+++|Log_name|File_size|+++|ccy-bin.000001|177||ccy-bin.000002|502||ccy-bin.000003|769|+++3rowsinset(0.02sec)步骤
2执行PURGEMASTERLOGS语句,删除ccy-bin.000003之前的日志文件,结果如下:mysql>PURGEBINARYLOGSTO'ccy-bin.000003';QueryOK,0rowsaffected(0.07sec)步骤
3再次查看所有日志文件,结果如下:mysql>SHOWBINARYLOGS;+++|Log_name|File_size|+++|ccy-bin.000003|769|+++1rowinset(0.00sec)【提示】删除二进制日志文件后,可能导致数据库崩溃后无法恢复。因此,删除之前应将其和数据库备份。【学生】聆听、思考、记录通过教师的讲解和演示,使学生了解错误日志和二进制日志的相关知识第二节课问题导入(5min)【教师】提出以下问题:通用日志与二进制日志有什么区别?【学生】思考、举手回答通过问题导入,引导学生主动思考,激发学生的学习兴趣传授新知(20min)【教师】通过学生的回答引入新知,介绍通用查询日志和慢查询日志的相关知识15.3通用查询日志与二进制日志不同,通用查询日志会记录用户的所有操作。15.3.1启动和设置通用查询日志通用查询日志记录了服务器接收到的每一个查询或命令,而不管这些查询或命令是否返回结果,甚至是否包含语法错误。因此,开启通用查询日志会产生很大的系统开销,一般在需要采样分析或跟踪某些特殊的SQL性能问题时才会开启。默认情况下,通用查询日志是关闭的,可以通过在配置文件中[mysqld]组下添加以下内容开启通用查询日志:#开启通用查询日志general_log=1如要关闭通用查询日志,可将general_log值设置为0。默认情况下,通用查询日志位于data文件夹下,文件名为hostname.log。如要更改其位置和文件名,可在配置文件中[mysqld]组下设置general_log_file参数:general_log_file[=path/[filename]]上述语句中,path为日志文件所在路径,filename为日志文件名。使用SHOWVARIABLES语句,可以查看通用查询日志是否开启,以及日志文件的路径,基本语法形式如下:SHOWVARIABLESLIKE'%general%';【实例15-5】启动并设置通用查询日志。步骤1在配置文件中[mysqld]组下添加以下语句,设置通用查询日志。general_log=1步骤2重启并登录MySQL服务,然后使用SHOWVARIABLES语句查看通用查询日志状态,结果如下:mysql>SHOWVARIABLESLIKE'%general%';+++|Variable_name|Value|+++|general_log|ON||general_log_file|F:\mysql-5.7.18-winx64\data\ccy.log|+++2rowsinset,1warning(0.00sec)15.3.2查看通用查询日志通用查询日志是以文本文件的形式存储在文件系统中的,用户可以使用文本编辑器直接打开进行查看。【实例15-6】使用记事本打开MySQL通用查询日志。用记事本打开F:\mysql-5.7.18-winx64\data目录下的ccy.log文件。15.3.3删除通用查询日志由于通用查询日志会记录用户的所有操作,日志文件的大小会快速增长。数据库用户可以通过直接删除文本文件的方式,定期删除通用查询日志,以节省磁盘空间。数据库用户删除日志文件后,执行以下命令或重启MySQL服务,可以生成新的通用查询日志文件。FLUSHGENERALLOGS;15.4慢查询日志慢查询日志记录查询时长超过指定时间的日志。通过慢查询日志,可以找出哪些语句执行时间较长、执行效率较低,以便进行优化。15.4.1启动和设置慢查询日志MYSQL中的慢查询日志默认是关闭的,一般建议开启,它对服务器性能的影响微乎其微。可以通过在配置文件中[mysqld]组下添加以下内容启动慢查询日志:#开启慢查询日志slow_query_log=1如要关闭慢查询日志,可将slow_query_log值设置为0。另外,启动慢查询日志时,还需要在配置文件中设置long_query_time项指定记录阈值。该值默认为10,以秒为单位,可以精确到微秒。如果一个查询语句执行时间超过阈值,该查询语句将被记录到慢查询日志中。默认情况下,慢查询日志文件位于data文件夹下,文件名为hostname-slow.log,也可以在配置文件中设置slow_query_log_file项,为日志文件指定存储路径和文件名,语法形式如下:slow_query_log_file[=path[/filename]]其中path指定慢查询日志文件的存储路径,filename指定慢查询日志文件名。15.4.2查看慢查询日志默认情况下,慢查询日志同样以文本文件的形式存储在文件系统中,可以使用文本编辑器直接打开查看。【实例15-7】设置慢查询日志,并使用记事本打开MySQL慢查询日志。步骤
1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《政治心理学》课程教学大纲
- 2024年出售小吃街摊位合同范本
- 2024年出售风力发电立柱合同范本
- 2024年承接营养土种植合同范本
- 地高辛药物护理
- 2024-2025学年四川省达州市高二上学期11月期中考试数学试题(含答案)
- 冠状动脉造影手术配合
- 团日活动四式教育
- 西部开发省际公路通道银武线十堰至漫川关段水土保持方案报告书
- 【高中数学课件】排列与组合的应用
- 肠易激综合征疗
- 2024天猫男装行业秋冬趋势白皮书
- 运营内控副行长/经理资格认证考试题库(2021版)
- 办公技能竞赛试题
- 2024年绵阳科技城新区事业单位考核公开招聘高层次人才10人(高频重点复习提升训练)共500题附带答案详解
- 韶关市仁化县教育局招聘中小学临聘教师笔试真题2022
- 七年级英语上册(人教版2024)新教材解读课件
- 新大象版六年级上册科学全册知识点 (超全)
- 电力专业数据传输(EPDT)通信系统 空中接口呼叫控制层技术规范 标准编制说明
- 2024年东南亚集装箱班轮运输市场深度研究及预测报告
- 建筑项目安全风险分级管控清单建筑风险分级管控清单(范例)
评论
0/150
提交评论