mysql日誌檔的作用:1、能記錄實體資料頁面的修改的資訊;2、能將資料從邏輯上恢復至事務之前的狀態;3、能以二進位檔案的形式記錄了資料庫中的操作;4、能記錄錯誤的相關資訊;5、能從主伺服器中二進位檔案取的事件等等。
推薦:《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中的事務操作有著重要的意義。
以上是mysql日誌檔有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!