MySQL架構組成之物理文件組成

一、日誌文件
1、錯誤日誌:Error Log
  內容:MyQL Server 運行過程中所有較爲嚴重的警告和錯誤信息,以及MySQL Server 每次啓動和關閉的詳細信息。
  路徑:默認存放位置在數據目錄下
  名稱:默認文件名以hostname.err 命名
  修改:“--log-error[=file_name]”,修改其存放目錄和文件名
  擴展:FLUSH LOGS 命令來告訴MySQL 備份舊日誌文件並生成新的日誌文件。備份文件名以“.old”結尾。
2、二進制日誌:Binary Log & Binary Log Index
  內容:MySQL 會將所有修改數據庫數據的query(query 語句、執行的時間、所消耗的資源,以及相關的事務信息) 以二進制形式記錄到日誌文件中。
  路徑:默認存放位置在數據目錄下
  名稱:mysql-bin.******(*代表0~9 之間的某一個數字,來表示該日誌的序號)
  修改:“--log-bin[=file_name]”,修改其存放目錄和文件名
  擴展:“--max_binlog_size”設置binlog 的最大存儲上限
        “--binlog-do-db=db_name”對某個(db_name)數據庫記錄binlog
        “--binlog-ignore-db=db_name”忽略某個(db_name)數據庫的binlog 記錄
注意:db_name 不是指query 語句更新的數據所在的數據庫,而是當前連接所處的數據庫
mysql-bin.index 文件(binary log index)的功能是記錄所有Binary Log 的絕對路徑,保證MySQL 各種線程能夠順利的根據它找到所有需要的Binary Log 文件。
3、更新日誌:update log
  從版本5.0 開始,MySQL 已經不再支持更新日誌了。
4、查詢日誌:query log
  內容:記錄MySQL 中所有的query(包括所有的select,體積比較大,開啓後影響性能,慎用!)
  路徑:默認存放位置在數據目錄下
  名稱:默認文件名爲hostname.log
  修改:“--log[=fina_name]”,修改其存放目錄和文件名
  擴展:一般只用於跟蹤某些特殊的sql 性能問題纔會短暫打開該功能。
5、慢查詢日誌:slow query log
  內容:慢查詢日誌中記錄的是執行時間較長的query
  路徑:默認存放位置在數據目錄下
  名稱:默認文件名爲hostname-slow.log
  修改:“--log-slow-queries[=file_name]”,修改其存放目錄和文件名
  擴展:慢查詢日誌採用的是簡單的文本格式,可以通過各種文本編輯器查看其中的內容。其中記錄了語句執行的時刻,執行所消耗的時間,執行用戶,連接主機等相關信息。
MySQL 還提供了專門用來分析滿查詢日誌的工具程序mysqlslowdump,用來幫助數據庫管理人員解決可能存在的性能問題。
6、Innodb 的在線redo 日誌:innodb redo log
  內容:redo 日誌中記錄了Innodb 所做的所有物理變更和事務信息,通過redo 日誌和undo 信息,Innodb 保證了在任何情況下的事務安全性
  路徑:默認存放位置在數據目錄下
  名稱:ib_logfile******(*代表0~9 之間的某一個數字,來表示該日誌的序號)
  修改:通過innodb_log_group_home_dir 來更改設置日誌的存放位置,通過innodb_log_files_in_group 設置日誌的數量。
  擴展:暫不提供

二、數據文件
1、“.frm”文件
  與表相關的元數據(meta)信息都存放在“.frm”文件中,包括表結構的定義信息等(與表一對一存在)。
2、“.MYD”文件
  “.MYD”文件是MyISAM 存儲引擎專用,存放MyISAM 表的數據(與表一對一存在)。
3、“.MYI”文件
  “.MYI”文件也是專屬於MyISAM 存儲引擎的,主要存放MyISAM 表的索引相關信息(與表一對一存在)。
4、“.ibd”文件和ibdata 文件
  這兩種文件都是存放Innodb 數據的文件,之所以有兩種文件來存放Innodb 的數據(包括索引),是因爲Innodb 的數據存儲方式能夠通過配置來決定是使用共享表(ibdata文件)空間存放存儲數據,還是獨享表(.ibd文件,與表一對一存在)空間存放存儲數據。

三、Replication相關文件
1、master.info 文件
  master.info 文件存在於Slave 端的數據目錄下,裏面存放了該Slave 的Master 端的相關信息,包括Master 的主機地址,連接用戶,連接密碼,連接端口,當前日誌位置,已經讀取到的日誌位置等信息。
2、relay log 和relay log index
  mysql-relay-bin.xxxxxn 文件用於存放Slave 端的I/O 線程從Master 端所讀取到的Binary Log 信息,然後由Slave 端的SQL 線程從該relay log 中讀取並解析相應的日誌信息,轉化成Master 所執行的SQL 語句,然後在Slave 端應用。
  mysql-relay-bin.index 文件的功能類似於mysql-bin.index ,同樣是記錄日誌的存放位置的絕對路徑,只不過他所記錄的不是Binary Log,而是Relay Log。
3、relay-log.info 文件
  類似於master.info,它存放通過Slave 的I/O 線程寫入到本地的relay log 的相關信息。供Slave 端的SQL 線程以及某些管理操作隨時能夠獲取當前複製的相關信息。

四、其他文件
1、system config file
  MySQL 的系統配置文件一般都是“my.cnf”,Unix/Linux 下默認存放在"/etc"目錄下,Windows 環境一般存放在“c:/windows”目錄下面。
2、pid file
  pid file 是mysqld 應用程序在Unix/Linux 環境下的一個進程文件,和許多其他Unix/Linux 服務端程序一樣,存放着自己的進程id。
3、socket file
  socket 文件也是在Unix/Linux 環境下才有的,用戶在Unix/Linux 環境下客戶端連接可以不通過TCP/IP 網絡而直接使用Unix Socket 來連接MySQL。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章