MySQL日記文件詳解。本站提示廣大學習愛好者:(MySQL日記文件詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL日記文件詳解正文
概述
日記文件是MySQL數據庫的主要構成部門。MySQL有幾種分歧的日記文件,平日包含毛病日記文件,二進制日記,通用日記,慢查詢日記,等等。這些日記可以贊助我們定位mysqld外部產生的事宜,數據庫機能毛病,記載數據的變革汗青,用戶恢單數據庫等等。本文重要描寫MySQL的各類日記文件。
MySQL日記文件分類
1.毛病日記(Error Log)
2.二進制日記(Binary Log & Binary Log Index)
3.通用查詢日記(query log)
4.慢查詢日記(slow query log)
5.Innodb的在線 redo 日記(innodb redo log)
6.更新日記(update log)
毛病日記
毛病日記記載了MyQL Server運轉進程中一切較為嚴重的正告和毛病信息,和MySQL
Server 每次啟動和封閉的具體信息。在默許情形下,體系記載毛病日記的功效是封閉的, 毛病信息被輸入到尺度毛病輸入(stderr) ,假如要開啟體系記載毛病日記的功效,須要在啟動時開啟-log-error 選項。毛病日記的默許寄存地位在數據目次下,以hostname.err 命 名。然則可使用敕令:—log-error[=file_name],修正其寄存目次和文件名。
為了便利保護須要, 有時刻會願望將毛病日記中的內容做備份偏重新開端記載, 這候時 便可以應用 MySQL 的 FLUSH LOGS 敕令來告知 MySQL 備份舊日記文件並生成新的日記文件。 備份文件名以“.old”開頭。
二進制日記
二進制日記,也就是我們常說的 binlog,也是 MySQL Server 中最為主要的日記之一。
當我們經由過程“—log-bin[=file_name]”翻開了記載的功效以後,MySQL 會將一切修正數據 庫數據的 query 以二進制情勢記載到日記文件中。 固然, 日記中其實不僅限於query 語句這麼 簡略, 還包含每條query 所履行的時光, 所消費的資本, 和相干的事務信息,bi所nl以og 是事務平安的。
和毛病日記一樣,binlog 記載功效異樣須要“—log-bin[=file_name]”參數的顯式指 定能力開啟, 假如未指定file_name, 則會在數據目次下記載為mysql-bin.** (*代表0~ 9 之間的某一個數字,來表現該日記的序號)。
binlog 還有其他一些附加選項參數:
“—max_binlog_size”設置 binlog 的最年夜存儲下限,當日記到達該下限時,MySQL 會 從新創立一個日記開端持續記載。不外偶然也有超越該設置的binlog 發生,普通都是由於 期近將到達下限時,發生了一個較年夜的事務,為了包管事務平安,MySQL 不會將統一個事務 離開記載到兩個 binlog 中。
“—binlog-do-db=db_name”參數明白告知 MySQL,須要對某個(db_name)數據庫記 錄 binlog,假如有了“—binlog-do-db=db_name”參數的顯式指定,MySQL 會疏忽針對其他 數據庫履行的 query,而僅僅記載針對指定命據庫履行的query。
“—binlog-ignore-db=db_name”與“—binlog-do-db=db_name”完整相反, 它顯式指 定疏忽某個(db_name)數據庫的binlog 記載,當指定了這個參數以後,MySQL 會記載指定 數據庫之外一切的數據庫的 binlog。
“—binlog-ignore-db=db_name”與“—binlog-do-db=db_name”兩個參數有一個配合 的概念須要年夜家懂得清晰,參數中的db_name 不是指 query 語句更新的數據地點的數據庫, 而是履行 query 的時刻以後所處的數據庫。 豈論更新哪一個數據庫的數據,MySQL 僅僅比擬當 前銜接所處的數據庫(經由過程use db_name切換後地點的數據庫)與參數設置的數據庫名,而 不會剖析 query 語句所更新數據地點的數據庫。
mysql-bin.index 文件(binary log index)的功效是記載一切Binary Log的相對路 徑,包管 MySQL 各類線程可以或許順遂的依據它找到一切須要的Binary Log 文件。
通用查詢日記
查詢日記記載 MySQL 中一切的 query,經由過程“—log[=fina_name]”來翻開該功效。由
於記載了一切的 query,包含一切的 select,體積比擬年夜,開啟後對機能也有較年夜的影響, 所以請年夜家慎用該功效。 普通只用於跟蹤某些特別的sql 機能成績才會長久翻開該功效。默許的查詢日記文件名為 hostname.log。
慢查詢日記
望文生義,慢查詢日記中記載的是履行時光較長的 query,也就是我們常說的 slow
query,經由過程設 —log-slow-queries[=file_name]來翻開該功效並設置記載地位和文件名, 默許文件名為 hostname-slow.log,默許目次也是數據目次。
慢查詢日記采取的是簡略的文本格局, 可以經由過程各類文本編纂器檢查個中的內容。中其 記載了語句履行的時辰,履行所消費的時光,履行用戶,銜接主機等相干信息。MySQL 還提 供了專門用來剖析滿查詢日記的對象法式mysqlslowdump, 用來贊助數據庫治理人員處理可 能存在的機能成績。
Innodb的在線redo日記
Innodb 是一個事務平安的存儲引擎, 其事務平安性重要就是經由過程在線redo 日記和記載
在表空間中的 undo 信息來包管的。redo 日記中記載了 Innodb 所做的一切物理變革和事務 信息, 經由過程redo 日記和 undo 信息, Innodb 包管了在任何情形下的事務平安性。Innodb 的redo 日記異樣默許寄存在數據目次下, 可以經由過程innodb_log_group_home_dir來更改設置日記的 寄存地位,經由過程 innodb_log_files_in_group 設置日記的數目。
更新日記
更新日記是 MySQL 在較老的版本上應用的,其功效和 binlog 根本相似,只不外不是以
二進制格局來記載而是以簡略的文本格局記載內容。自從 MySQL增長了binlog功效以後, 就很少應用更新日記了。從版本5.0 開端,MySQL 曾經不再支撐更新日記了。
總結
本篇文章整頓了MySQL中的各類日記文件,每種日記文件都用其特定的用處,這些會在今後的文章中停止描寫。