MySQL物理檔案組成

2022-04-05 16:25:07 字數 2232 閱讀 9764

錯誤日誌記錄了mysql執行過程中所有較為嚴重的警告和錯誤資訊,以及mysql server每次啟動和關閉的詳細資訊。在預設情況下,系統記錄錯誤日誌的功能是關閉的,如果要開啟系統記錄錯誤日誌的功能,需要在啟動時開啟-log-error[=file_name],修改其存放目錄和檔名。

為了方便維護,有時候會希望將錯誤日誌中的內容做備份並重新開始記錄,知識後就可以利用mysql的flush log命令來告訴mysql備份舊日誌檔案並生成新的日誌檔案。備份檔案名以「.old」結尾。

二進位制日誌,也就是我們常說的binlog,也是mysql中最為重要的日誌之一。我們在做主從複製的時候需要用到這個檔案。當我們通過「—log-bin=[=file_name]」開啟了記錄的功能之後,mysql會將所有修改資料庫資料的query以二進位制形式記錄到日誌檔案中。當然,日誌並不僅限於sql語句這麼簡單,還包括每一條sql所執行的時間,所消耗的資源,以及相關的事務資訊,所以binlog是事務安全的。

和錯誤日誌一樣,binlog記錄功能需要「—log-bin[=file_name]」引數顯示指定才能開啟,如果未指定file_name,則會在資料目錄下記錄為mysql-bin.******(*代表0-9之間的某乙個數字,來標識該日誌的序號)

「--max_binlog_size」設定binlog的最大儲存上線,當日誌達到上限時,mysql會重新建立乙個日誌開始繼續記錄。不過偶爾也會有超出該設定的binlog產生,一般都是因為在即將到達上限時,產生了乙個較大的事務,為了保證事務安全,mysql不會將同乙個事務分開記錄到兩個binlog中。

「--binlog-do-db=db_name」引數明確告訴mysql,需要對某個(db_name)資料庫記錄binlog,如果有了「—binlog-do-db=db_name」引數的顯示制定,mysql會忽略針對其他資料庫執行的sql語句,而僅僅記錄對制定資料庫執行的sql。

「--binlog-ignore-db=db_name」與 「--binlog-do-db=db_name」完全相反,它顯示指定忽略某個(db_name)資料庫的binlog記錄,當制定了這個引數之後,mysql會記錄制定資料庫以外所有的資料庫的binlog。

--binlog-ignore-db=db_name」與「--binlog-do-db_db_name」連個引數有乙個共同的概念需要大家理解清楚,引數中的db_name不是指sql語句更新的資料所在的資料庫,而是指執行sql的時候當前所處的資料庫。不論更新哪個資料庫的資料,mysql僅僅比較當前連線所處的資料庫(通過use_db_name切換後所在的資料庫)與引數設定的資料庫名,而不會分析sql語句所更新資料庫所在的資料庫。

mysql-bin.index檔案(binary log index)的功能是記錄所有binary log的絕對路徑,保證mysql各種執行緒能夠順利的根據它找到所有需要的binary log檔案。

查詢日誌記錄mysql中所有的query,通過「--log[=file_name]」來開啟該功能。由於記錄了所有的query,包括所有的select,體積比較大,開啟後對效能也有較大的影響,所以該功能要慎用。一般用於跟蹤某些特殊的sql效能問題才會短暫開啟該功能。預設的查詢日誌檔名為hostname.log。

慢查詢日誌中記錄的是執行時間較長的query,也就是我們常說的slow query,通過設--log-slow-queries[=file_name]來開啟該功能並設定記錄位置和檔名,預設檔名為hostname-slow.log,預設目錄也是資料目錄。

慢查詢日誌採用的是簡單的文字格式,可以通過各種文字編輯器檢視其中內容。其中記錄了語句執行的時間,執行所消耗的時間,執行使用者,連線主機等相關資訊。mysql還提供了專門用來分析慢查詢日誌的工具程式mysqlslowdump,用來幫助資料庫管理人員解決可能存在的效能問題。

innodb是乙個事務安全的儲存引擎,其事務安全性主要就是通過**redo日誌和記錄表空間中undo資訊來保證的。redo日誌中記錄了innodb所做的所有物理變更和事務資訊,通過redo日誌和undo資訊,innodb保證了在任何情況下的事務安全性。innodb的redo日誌同樣預設存放在資料目錄下,可以通過innodb_log_home_dir來更改設定日誌的存放位置,通過innodb_log_files_in_group設定日誌的數量。

在mysql中每乙個資料庫都會定義好(或者預設)的資料目錄下存在乙個以資料庫名字命名的資料夾,用來存放該資料庫中各種表資料檔案。不同的mysql儲存引擎有各自不同的資料檔案,存放位置也有區別。多數儲存引擎的資料檔案都存放在和myisam資料檔案位置相同的目錄下,但是每個資料檔案的副檔名卻各不一樣。如myisam用「.myd」作為副檔名,innodb用「.ibd」等等。

mysql物理檔案 MySQL物理檔案組成

mysql物理檔案組成 1.錯誤日誌 error log 錯誤日誌記錄了mysql server執行過程中所有較為嚴重的警告和錯誤資訊,以及mysql server每次啟動和關閉的詳細資訊,在預設情況下,系統記錄錯誤日誌的功能是關閉的,錯誤資訊被輸出到標準錯誤輸出,如果要開啟系統記錄錯誤日誌的功能,...

mysql 哪些檔案組成 MySQL物理檔案組成

1.1日誌檔案 1 錯誤日誌 error log 記錄了myql server 執行過程中所有較為嚴重的警告和錯誤資訊,以及mysqlserver 每次啟動和關閉的詳細資訊。在預設情況下,系統記錄錯誤日誌的功能是關閉的.2 二進位制日誌 binary log binary log index nam...

MySQL 物理組成

from 慕課網教程 日誌檔案記錄各種操作和異常,一般由server層處理 資料檔案記錄資料,一般由儲存引擎處理 除此之外有配置檔案,pid檔案,socket檔案 二進位制日誌 binlog binlog 以二進位制形式,將所有修改資料的 query 記錄到日誌檔案中,包括 query 語句 執行時...