mysql日志文件有什么用

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

mysql日志文件有什么用

推薦:《mysql教程

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

1、重做日志(redo log)

重做日志是一種物理格式的日志,記錄的是物理數據頁面的修改的信息,其redo log是順序寫入redo log file的物理文件中去的。

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

2、回滾日志(undo log)

回滾日志是一種邏輯格式的日志,在執行undo的時候,僅僅是將數據從邏輯上恢復至事務之前的狀態,而不是從物理頁面上操作實現的,這一點是不同于redo log的。

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

3、二進制日志(binlog)

二進制日志是一種邏輯格式的日志,以二進制文件的形式記錄了數據庫中的操作,但不記錄查詢語句。可以簡單認為就是執行過的事務中的sql語句;但又不完全是sql語句這么簡單,而是包括了執行的sql語句(增刪改)反向的信息,也就意味著delete對應著delete本身和其反向的insert;update對應著update執行前后的版本的信息;insert對應著delete和insert本身的信息。

二進制日志可用于復制,在主從復制中,從庫利用主庫上的binlog進行重播,實現主從同步; 用于數據庫的基于時間點的還原。

4、錯誤日志(errorlog)

錯誤日志記錄著mysqld啟動和停止,以及服務器在運行過程中發生的錯誤的相關信息。在默認情況下,系統記錄錯誤日志的功能是關閉的,錯誤信息被輸出到標準錯誤輸出。?

5、慢查詢日志(slow query log)

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

6、一般查詢日志(general log)

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

7、中繼日志(relay log)

中繼日志類似二進制;可用于復制架構中,從服務器用于從主服務器中二進制文件取的事件。

說明:

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

以上就是

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