




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CPFIA 0003-2022含礦物源黃腐酸鉀磷酸一銨
- T/CHES 117-2023城市河湖底泥污染狀況調查評價技術導則
- T/CI 317-2024藥食同源及藥膳配方食品生產加工技術規范
- T/ZSX 4-2024社區社會組織培育發展導則
- 貸款延期還款協議書5篇
- 軟件園樓房改造vrv空調設備安裝合同4篇
- 05-12-27交通指示制作合同3篇
- 公司股權質押解除合同6篇
- 餐飲行業員工用工合同5篇
- 飲食店合同5篇
- 《碳計量》教學大綱
- 公司“三重一大”決策制度實施辦法
- 商務談判說課精課件
- 微信視頻號代運營合同范本
- 【基于近五年數據的鴻星爾克財務報表分析15000字】
- CNN 卷積神經網絡介紹
- 北大強基試題
- 把未來點亮歌詞打印版
- 四級下冊英語期末測試卷深圳版
- 健康安全危險源識別、風險評估和風險控制表
- 摩托車不過戶免責協議(2篇)
評論
0/150
提交評論