mysql日志文件有什么用

mysql日志文件的作用:1、能記錄物理數(shù)據(jù)頁面的修改的信息;2、能將數(shù)據(jù)從邏輯上恢復(fù)至事務(wù)之前的狀態(tài);3、能以二進(jìn)制文件的形式記錄了數(shù)據(jù)庫中的操作;4、能記錄錯誤的相關(guān)信息;5、能從主服務(wù)器中二進(jìn)制文件取的事件等等。

mysql日志文件有什么用

推薦:《mysql教程

MySQL日志文件可分為:重做日志(redo log)、回滾日志(undo log)、二進(jìn)制日志(binlog)、錯誤日志(errorlog)、慢查詢?nèi)罩荆╯low query log)、一般查詢?nèi)罩荆╣eneral log)、中繼日志(relay log)。下面本篇文章就來給大家簡單介紹一下這些MySQL日志文件,希望對你們有所幫助。

1、重做日志(redo log)

重做日志是一種物理格式的日志,記錄的是物理數(shù)據(jù)頁面的修改的信息,其redo log是順序?qū)懭雛edo log file的物理文件中去的。

重做日志可以確保事務(wù)的持久性。防止在發(fā)生故障的時間點,尚有臟頁未寫入磁盤,在重啟mysql服務(wù)的時候,根據(jù)redo log進(jìn)行重做,從而達(dá)到事務(wù)的持久性這一特性。

2、回滾日志(undo log)

回滾日志是一種邏輯格式的日志,在執(zhí)行undo的時候,僅僅是將數(shù)據(jù)從邏輯上恢復(fù)至事務(wù)之前的狀態(tài),而不是從物理頁面上操作實現(xiàn)的,這一點是不同于redo log的。

回滾日志保存了事務(wù)發(fā)生之前的數(shù)據(jù)的一個版本,可以用于回滾,同時可以提供多版本并發(fā)控制下的讀(MVCC),也即非鎖定讀

3、二進(jìn)制日志(binlog)

二進(jìn)制日志是一種邏輯格式的日志,以二進(jìn)制文件的形式記錄了數(shù)據(jù)庫中的操作,但不記錄查詢語句??梢院唵握J(rèn)為就是執(zhí)行過的事務(wù)中的sql語句;但又不完全是sql語句這么簡單,而是包括了執(zhí)行的sql語句(增刪改)反向的信息,也就意味著delete對應(yīng)著delete本身和其反向的insert;update對應(yīng)著update執(zhí)行前后的版本的信息;insert對應(yīng)著delete和insert本身的信息。

二進(jìn)制日志可用于復(fù)制,在主從復(fù)制中,從庫利用主庫上的binlog進(jìn)行重播,實現(xiàn)主從同步; 用于數(shù)據(jù)庫的基于時間點的還原。

4、錯誤日志(errorlog)

錯誤日志記錄著mysqld啟動和停止,以及服務(wù)器在運(yùn)行過程中發(fā)生的錯誤的相關(guān)信息。在默認(rèn)情況下,系統(tǒng)記錄錯誤日志的功能是關(guān)閉的,錯誤信息被輸出到標(biāo)準(zhǔn)錯誤輸出。?

5、慢查詢?nèi)罩荆╯low query log)

慢日志記錄執(zhí)行時間過長和沒有使用索引的查詢語句,報錯select、update、delete以及insert語句,慢日志只會記錄執(zhí)行成功的語句。

6、一般查詢?nèi)罩荆╣eneral log)

記錄了服務(wù)器接收到的每一個查詢或是命令,無論這些查詢或是命令是否正確甚至是否包含語法錯誤,general log 都會將其記錄下來 ,記錄的格式為 {Time ,Id ,Command,Argument }。也正因為mysql服務(wù)器需要不斷地記錄日志,開啟General log會產(chǎn)生不小的系統(tǒng)開銷。 因此,Mysql默認(rèn)是把General log關(guān)閉的。

7、中繼日志(relay log)

中繼日志類似二進(jìn)制;可用于復(fù)制架構(gòu)中,從服務(wù)器用于從主服務(wù)器中二進(jìn)制文件取的事件。

說明:

其中重做日志和回滾日志與事務(wù)操作息息相關(guān),二進(jìn)制日志也與事務(wù)操作有一定的關(guān)系,這三種日志,對理解MySQL中的事務(wù)操作有著重要的意義。

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊5 分享