了解和正確維護MySQL日誌

2021-09-23 19:33:47 字數 3132 閱讀 5410

原始出處 、作者資訊和本宣告。否則將追究法律責任。

前段時間自己給自己挖了坑,為了優化mysql資料庫配置在執行有innodb的mysql資料庫中修改了my.cnf檔案中關於innodb的部分配置,儘管是在關機的情況下操作的,但依舊忽略了innodb對日誌檔案(如ibdata1、ib_logfile0、ib_logfile1、ib_logfile2)強大的依賴性,刪掉這些特殊的日誌檔案意味著對innodb的破壞,可能導致資料庫無法啟動和恢復。從mysql中文手冊上摘錄了部分有用的知識點整理如下。

mysql日誌簡介

mysql共有5種不同的日誌型別,分別為錯誤日誌、通用查詢日誌、中繼日誌、二進位制日誌和慢日誌。其中錯誤日誌、

日誌檔案記入檔案中的資訊型別

錯誤日誌

記錄啟動、執行或停止mysqld時出現的問題。

查詢日誌

記錄建立的客戶端連線和執行的語句。

中繼日誌

從主復**務器上接受到的資料變化。

更新日誌

記錄更改資料的語句。不贊成使用該日誌。(新版本已經廢棄)

二進位制日誌

記錄所有更改資料的語句。還用於複製。

慢日誌記錄所有執行時間超過long_query_time秒的所有查詢或不使用索引的查詢。

錯誤日誌檔案包含了當mysqld啟動和停止時,以及伺服器在執行過程中發生任何嚴重錯誤時的相關資訊。

查詢日誌包含了所有連線和語句,能確切地知道某乙個客戶端傳送給mysqld哪些語句。

查詢日誌還包含所有語句,而二進位制日誌不包含只查詢資料的語句,如果想要記錄所有語句(例如,為了識別有問題的查詢),你應使用查詢日誌。

二進位制日誌以一種更有效的格式,並且是事務安全的方式包含更新日誌中可用的所有資訊,還包含關於每個更新資料庫的語句的執行時間資訊。

二進位制日誌的主要目的是在恢復使能夠最大可能地更新資料庫,因為二進位制日誌包含備份後進行的所有更新。

二進位制日誌還用於在主復**務器上記錄所有將傳送給從伺服器的語句。

如果當前的二進位制日誌大小達到max_binlog_size,還會自動建立新的二進位制日誌,但乙個事務產生的二進位制日誌有可能會超過max_binlog_size。

可以用reset master語句刪除所有二進位制日誌檔案,或用purge master logs只刪除部分二進位制檔案。例如先檢視現有的二進位制檔案,show binary logs,再刪除某些二進位制檔案,purge binary logs to 'mysql-bin.000009'。

慢查詢日誌可以用來找到執行時間長的查詢,可以用於優化。但是,檢查又長又慢的查詢日誌會很困難。要想容易些,你可以使用mysqldumpslow命令獲得日誌中顯示的查詢摘要來處理慢查詢日誌。

日誌維護

mysql伺服器可以建立各種不同的日誌檔案,從而可以很容易地看見所進行的操作。但是,你必須定期清理這些檔案,確保日誌不會占用太多的硬碟空間,否則很短的時間內就會把資料庫磁碟吃滿。

資料庫備份經驗

內容較多,占用空間較大的資料庫在匯出的過程中可能僅需要比較短的時間,通常一小時內就能備份完成,但恢復時會花掉很多時間,往往超過數小時。因此有必要及時刪減資料庫中的無用的資訊,甚至設計資料庫時考慮和標註清楚,哪些資料是相對不重要的。如果備份時能將日誌檔案切斷就更好了。

可以使用mysql-log-rotate指令碼將日誌檔案進行切割。你可以通過mysqladmin flush-logs或sql語句flush logs來強制mysql開始使用新的日誌檔案(不適用於二進位制日誌,要清除二進位制日誌參考上面的reset master或purge binary logs語法)。

當cpu為單核或效能不足時,iowaite的值會很大,表明cpu在等待磁碟寫入的過程中花費了太多的時間,這時就有必要增加cpu的配置。如下圖所示,%wa數值是%us的近10倍,說明磁碟io開銷比較嚴重。

附:關於innodb儲存引擎

儲存引擎比較:

不一定要使用相同的儲存引擎,每個表可以使用不同的儲存引擎。

innodb的中文參考資料可以參見

innodb是為處理巨大資料量時的最大效能設計,被用在眾多需要高效能的大型資料庫站點上。

被innodb儲存引擎管理的兩個重要的基於磁碟的資源是innodb表空間資料檔案和它的日誌檔案。

如果你指定無innodb配置選項,mysql將在資料目錄下建立乙個名為ibdata1的10mb大小的自動擴充套件資料檔案,以及兩個名為ib_logfile0和ib_logfile1的5mb大小的日誌檔案。

要為乙個主伺服器建立乙個新伺服器,你不得不複製innodb表空間和日誌檔案,以及innodb表的.frm檔案,並且移動復件到從伺服器。

如果你可以關閉主伺服器或者乙個存在的從伺服器。你可以採取innodb表空間和日誌檔案的冷備份,並用它來建立乙個從伺服器。要不關閉任何伺服器來建立乙個新的從伺服器,你也可以使用非免費(商業的)innodb熱備份工具。

關於移動、備份和恢復innodb,可以參考innodb的中文參考資料:

本文出自 「通訊,我的最愛」 部落格,請務必保留此出處

MYSQL日誌檔案維護

在 mysql伺服器啟動時,它檢查其命令列的操作,來檢視它是否應該執行登入並開啟相應的日誌檔案 如果應該的話 可以讓伺服器生成兩種主要型別的日誌檔案 常規日誌檔案。它報告客戶機的連線 查詢和其他各種各樣的事件。它對於跟蹤伺服器的活動很有用 誰正在連線 從 連線,以及他們正在做什麼。更新日誌。它報告修...

MYSQL日誌檔案維護

在mysql伺服器啟動時,它檢查其命令列的操作,來檢視它是否應該執行登入並開啟相應的日誌檔案 如果應該的話 可以讓伺服器生成兩種主要型別的日誌檔案 常規日誌檔案。它報告客戶機的連線 查詢和其他各種各樣的事件。它對於跟蹤伺服器的活動很有用 誰正在連線 從 連線,以及他們正在做什麼。更新日誌 它報告修改...

正確使用和維護的手提電腦電池

正確使用和維護的手提電腦電池 在2006年,整個膝上型電腦行業充滿了乙個關鍵字,是電池。戴爾膝上型電腦電池,而之前,零星的手機電池,膝上型電腦電池訊息,或多或少都有在網路和出現在各類 但在炮擊,並有連續的火災,毫無疑問,這些恆星的負面影響以及預防旺一下子。儘管在那之後,索尼已經給了將近一半的年利潤,...