MySQL日志文件詳解_MySQL教程
推薦:MySQL主從同步原理介紹概述 Mysql的Replication(復(fù)制)是一個異步的復(fù)制過程,從一個 Mysql instance(我們稱之為 Master)復(fù)制到另一個Mysql instance(我們稱之 Slave)。在 Master 與 Slave之間的實現(xiàn)整個復(fù)制過程主要由三個線程來完成,其中兩個線程(Sql線程和IO線程)在 Slave 端,另外一個線
這篇文章主要介紹了MySQL日志文件詳解,本文分別講解了錯誤日志、二進制日志、通用查詢?nèi)罩尽⒙樵內(nèi)罩尽nnodb的在線redo日志、更新日志等日志類型和作用介紹,需要的朋友可以參考下
概述
日志文件是MySQL數(shù)據(jù)庫的重要組成部分。MySQL有幾種不同的日志文件,通常包括錯誤日志文件,二進制日志,通用日志,慢查詢?nèi)罩荆鹊取_@些日志可以幫助我們定位mysqld內(nèi)部發(fā)生的事件,數(shù)據(jù)庫性能故障,記錄數(shù)據(jù)的變更歷史,用戶恢復(fù)數(shù)據(jù)庫等等。本文主要描述MySQL的各種日志文件。
MySQL日志文件分類
1.錯誤日志(Error Log)
2.二進制日志(Binary Log & Binary Log Index)
3.通用查詢?nèi)罩?query log)
4.慢查詢?nèi)罩?slow query log)
5.Innodb的在線 redo 日志(innodb redo log)
6.更新日志(update log)
錯誤日志
錯誤日志記錄了MyQL Server運行過程中所有較為嚴(yán)重的警告和錯誤信息,以及MySQL
Server 每次啟動和關(guān)閉的詳細信息。在默認(rèn)情況下,系統(tǒng)記錄錯誤日志的功能是關(guān)閉的, 錯誤信息被輸出到標(biāo)準(zhǔn)錯誤輸出(stderr) ,如果要開啟系統(tǒng)記錄錯誤日志的功能,需要在啟動時開啟-log-error 選項。錯誤日志的默認(rèn)存放位置在數(shù)據(jù)目錄下,以hostname.err 命 名。但是可以使用命令:—log-error[=file_name],修改其存放目錄和文件名。
為了方便維護需要, 有時候會希望將錯誤日志中的內(nèi)容做備份并重新開始記錄, 這候時 就可以利用 MySQL 的 FLUSH LOGS 命令來告訴 MySQL 備份舊日志文件并生成新的日志文件。 備份文件名以“.old”結(jié)尾。
二進制日志
二進制日志,也就是我們常說的 binlog,也是 MySQL Server 中最為重要的日志之一。
當(dāng)我們通過“—log-bin[=file_name]”打開了記錄的功能之后,MySQL 會將所有修改數(shù)據(jù) 庫數(shù)據(jù)的 query 以二進制形式記錄到日志文件中。 當(dāng)然, 日志中并不僅限于query 語句這么 簡單, 還包括每一條query 所執(zhí)行的時間, 所消耗的資源, 以及相關(guān)的事務(wù)信息,bi所nl以og 是事務(wù)安全的。
和錯誤日志一樣,binlog 記錄功能同樣需要“—log-bin[=file_name]”參數(shù)的顯式指 定才能開啟, 如果未指定file_name, 則會在數(shù)據(jù)目錄下記錄為mysql-bin.** (*代表0~ 9 之間的某一個數(shù)字,來表示該日志的序號)。
binlog 還有其他一些附加選項參數(shù):
“—max_binlog_size”設(shè)置 binlog 的最大存儲上限,當(dāng)日志達到該上限時,MySQL 會 重新創(chuàng)建一個日志開始繼續(xù)記錄。不過偶爾也有超出該設(shè)置的binlog 產(chǎn)生,一般都是因為 在即將達到上限時,產(chǎn)生了一個較大的事務(wù),為了保證事務(wù)安全,MySQL 不會將同一個事務(wù) 分開記錄到兩個 binlog 中。
“—binlog-do-db=db_name”參數(shù)明確告訴 MySQL,需要對某個(db_name)數(shù)據(jù)庫記 錄 binlog,如果有了“—binlog-do-db=db_name”參數(shù)的顯式指定,MySQL 會忽略針對其他 數(shù)據(jù)庫執(zhí)行的 query,而僅僅記錄針對指定數(shù)據(jù)庫執(zhí)行的query。
“—binlog-ignore-db=db_name”與“—binlog-do-db=db_name”完全相反, 它顯式指 定忽略某個(db_name)數(shù)據(jù)庫的binlog 記錄,當(dāng)指定了這個參數(shù)之后,MySQL 會記錄指定 數(shù)據(jù)庫以外所有的數(shù)據(jù)庫的 binlog。
“—binlog-ignore-db=db_name”與“—binlog-do-db=db_name”兩個參數(shù)有一個共同 的概念需要大家理解清楚,參數(shù)中的db_name 不是指 query 語句更新的數(shù)據(jù)所在的數(shù)據(jù)庫, 而是執(zhí)行 query 的時候當(dāng)前所處的數(shù)據(jù)庫。 不論更新哪個數(shù)據(jù)庫的數(shù)據(jù),MySQL 僅僅比較當(dāng) 前連接所處的數(shù)據(jù)庫(通過use db_name切換后所在的數(shù)據(jù)庫)與參數(shù)設(shè)置的數(shù)據(jù)庫名,而 不會分析 query 語句所更新數(shù)據(jù)所在的數(shù)據(jù)庫。
mysql-bin.index 文件(binary log index)的功能是記錄所有Binary Log的絕對路 徑,保證 MySQL 各種線程能夠順利的根據(jù)它找到所有需要的Binary Log 文件。
通用查詢?nèi)罩?/p>
查詢?nèi)罩居涗?MySQL 中所有的 query,通過“—log[=fina_name]”來打開該功能。由
于記錄了所有的 query,包括所有的 select,體積比較大,開啟后對性能也有較大的影響, 所以請大家慎用該功能。 一般只用于跟蹤某些特殊的sql 性能問題才會短暫打開該功能。默認(rèn)的查詢?nèi)罩疚募麨?hostname.log。
慢查詢?nèi)罩?/p>
顧名思義,慢查詢?nèi)罩局杏涗浀氖菆?zhí)行時間較長的 query,也就是我們常說的 slow
query,通過設(shè) —log-slow-queries[=file_name]來打開該功能并設(shè)置記錄位置和文件名, 默認(rèn)文件名為 hostname-slow.log,默認(rèn)目錄也是數(shù)據(jù)目錄。
慢查詢?nèi)罩静捎玫氖呛唵蔚奈谋靖袷? 可以通過各種文本編輯器查看其中的內(nèi)容。中其 記錄了語句執(zhí)行的時刻,執(zhí)行所消耗的時間,執(zhí)行用戶,連接主機等相關(guān)信息。MySQL 還提 供了專門用來分析滿查詢?nèi)罩镜墓ぞ叱绦騧ysqlslowdump, 用來幫助數(shù)據(jù)庫管理人員解決可 能存在的性能問題。
Innodb的在線redo日志
Innodb 是一個事務(wù)安全的存儲引擎, 其事務(wù)安全性主要就是通過在線redo 日志和記錄
在表空間中的 undo 信息來保證的。redo 日志中記錄了 Innodb 所做的所有物理變更和事務(wù) 信息, 通過redo 日志和 undo 信息, Innodb 保證了在任何情況下的事務(wù)安全性。Innodb 的redo 日志同樣默認(rèn)存放在數(shù)據(jù)目錄下, 可以通過innodb_log_group_home_dir來更改設(shè)置日志的 存放位置,通過 innodb_log_files_in_group 設(shè)置日志的數(shù)量。
更新日志
更新日志是 MySQL 在較老的版本上使用的,其功能和 binlog 基本類似,只不過不是以
二進制格式來記錄而是以簡單的文本格式記錄內(nèi)容。自從 MySQL增加了binlog功能之后, 就很少使用更新日志了。從版本5.0 開始,MySQL 已經(jīng)不再支持更新日志了。
總結(jié)
本篇文章整理了MySQL中的各種日志文件,每種日志文件都用其特定的用途,這些會在以后的文章中進行描述。
分享:簡介操作MySQL日志的一些方法這篇文章主要介紹了操作MySQL日志的一些方法,對日志的刪除操作做了重點講解,需要的朋友可以參考下 我們可以在mysql的安裝目錄下看到mysql的二進制日志文件,如mysql-bin.000***等,很多人都不及時的處理,導(dǎo)致整個硬盤被塞滿也是有可能的。這些是數(shù)據(jù)庫的操作日志。它
- MySQL主從同步原理介紹
- 簡介操作MySQL日志的一些方法
- MySQL安全輸入密碼的一些操作介紹
- MySQL在Linux系統(tǒng)中隱藏命令行中的密碼的方法
- 在Linux系統(tǒng)的命令行中為MySQL創(chuàng)建用戶的方法
- MySQL中使用Sphinx實現(xiàn)多線程搜索的方法
- mysql數(shù)據(jù)庫索引損壞及修復(fù)經(jīng)驗分享
- Windows Server 2003 下配置 MySQL 集群(Cluster)教程
- 在CentOS上安裝phpMyAdmin的教程
- 防止服務(wù)器宕機時MySQL數(shù)據(jù)丟失的幾種方案
- MySQL Semisynchronous Replication介紹
- MySQL延遲關(guān)聯(lián)性能優(yōu)化方法
MySQL教程Rss訂閱編程教程搜索
MySQL教程推薦
- mysql 無法連接問題的定位和修復(fù)過程分享
- Perl操作mysql數(shù)據(jù)庫的方法
- 解析MYSQL 數(shù)據(jù)庫導(dǎo)入SQL 文件出現(xiàn)亂碼的問題
- SQL Server Management Studio 沒有出來
- MySQL Semisynchronous Replication介紹
- MYSQL的導(dǎo)入導(dǎo)出與還原備份
- CentOS6.4系統(tǒng)中Mysql數(shù)據(jù)庫卸載、安裝與配置
- MySQL 替換某字段內(nèi)部分內(nèi)容的UPDATE語句
- MySQL如何設(shè)置密碼
- mysql創(chuàng)建函數(shù)出現(xiàn)1418錯誤的解決辦法
猜你也喜歡看這些
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- SQL參數(shù)化查詢的另一個理由——命中執(zhí)行計劃
- 查詢分析器單步調(diào)試出錯的原因
- SQL Server記錄輪班的技巧
- sql server 還原數(shù)據(jù)庫時提示數(shù)據(jù)庫正在使用,無法進行操作的解決方法
- SQL Server 2005中更改sa的用戶名的方法
- SQL Server 索引介紹
- 怎樣處理SQL Server日志文件總結(jié)及日志滿的問題
- 讓SQL Server數(shù)據(jù)庫自動執(zhí)行管理任務(wù)(一)
- 揭秘SQL Server服務(wù)器內(nèi)存管理問題
- 相關(guān)鏈接:
- 教程說明:
MySQL教程-MySQL日志文件詳解。