msyql 日誌篇(二)日誌的常用配置和原理

2021-09-23 17:56:01 字數 2490 閱讀 5408

日誌詳解之:常規日誌; 慢查詢日誌;二進位制日誌;中繼日誌

出錯日誌(error log):(log_error)這個日誌記載著伺服器啟動和關閉的情況,還記載著關於故障或異常狀況的訊息。

我們安裝完資料庫之後,啟動資料庫如果發生異常,我們應該首先查這個日誌檔案。

常規查詢日誌:(log)該日誌包括客戶連線的記錄,來自客戶的sql查詢和其他的各種事件。一般我們可以用其來監視使用者的活動,誰在連線,從哪連線,執行哪些操作

常用的使用方法:

1.日誌的輸入與配置:

使用--log-output引數:其值可以是file、table、none     ——    --log-output=file

注:這個配置只是配置了日誌的輸出目的地,但是並沒有啟用日誌

2.如何啟動日誌:

a.啟動常規日誌:--log

b.啟動出錯日誌:--log-error

c.啟動慢查詢日誌:--log-show-queries

d.啟用二進位制日誌:--log-bin  ——  使用--max-binlog-size引數來控制單個日誌的最大長度,超過長度後按順序建立

——  使用--binlog-format引數來控制二進位制日誌的格式:支援的值有statement、row、mixed

e.啟用中繼日誌:--relay-log  —— 預設檔名:hostname-relay-bin.00001

注:unix預設不建立出錯日誌,而是直接將錯誤資訊等傳送到控制台

3.日誌的存放與mysql的啟動方式:

unix:

a.使用mysqld啟動,此時可以不配置日誌檔名,預設採用hostname.err

b.使用mysqld_safe啟動:此時必須指定日誌檔名

c.使用mysql.server啟動:本質是呼叫了mysql_safe的腳步

windows:

1.普通命令列啟動

2.將mysql作為服務啟動

日誌檔案到底儲存在哪?

因為在配置日誌選項的時候,有兩種方式:一、絕對路徑,二、相對路徑

如果使用相對路徑,則會根據不同的情況產生多種效果

a.在mysql5.1.11版本之前:

使用mysqld的方式啟動mysql,把配置的檔名解釋為:相對於資料目錄而言

使用mysql_safe方式啟動mysql,把配置的檔名解釋為:

相對呼叫該指令碼時所在的子目錄——結果是,可能日誌檔案被儲存在多個地方(多次在不同目錄下啟動)

b.在5.1.11版本之後:

無論以哪種方式啟動,檔案都儲存在相對資料目錄下

注:如果登入使用者對mysql的日誌檔案沒有寫的許可權,那麼在啟動mysql時,將會發生異常,但是不會被寫入到錯誤日誌

4.慢查詢日誌相關的配置和解釋說明:

在mysql5.1.21之前,慢查詢檢查規則的預設值是10,單位是秒,其中最小值是1,且只接受整數

在mysql5.1.21之後,慢查詢檢查規則的最小值變成了0,且可以帶1位小數,並且慢查詢日誌還必須檢查引數--min-examined-row-limit引數(default=0),才能寫入慢查詢日誌,

從mysql5.1.6版本開始,如果把慢查詢資訊寫入資料庫表,那麼查詢時間的小數部分將會被捨掉

注:慢查詢檔案的檢視方式:

慢查詢日誌和中繼日誌都是以二進位制的方式儲存,可以使用mysqlbinlog工具以文字形式開啟

如何利用慢查詢日誌:

在sql優化時,可以通過——-log-queries-not-using-indexes引數,將沒有使用索引的查詢記入慢查詢日誌

如果再使用--log-show-admin-statements選項,伺服器會把「慢」的系統管理語句也記入慢查詢日誌,如:analyze table, alter table等

5.二進位制日誌的作用:集群、複製

二進位制日誌是用來記載insert、update、delete的事件,它的核心作用是用於主庫到從庫的複製,二進位制日誌檔案可以採用mysqlbinlog開啟,以文字的格式顯示

二進位制日誌會按照事件執行完成的順序的先後來儲存,而不是執行的順序,如果啟用了事務,那麼只有事務被成功的提交,這些操作才會被記錄,在寫入二進位制檔案之前,這些事件都是被儲存在快取中,如果事務發生了回滾,那麼將不記錄任何日誌。

注:如果事務對非事務型資料表進行了修改,那麼這些修改是無法回滾的,此時,事務雖然被回滾,但是針對於資料表的修改還是會儲存在二進位制日誌檔案中

6.中繼日誌的作用

中繼日誌是從伺服器把來自主伺服器的事件接收的同時再寫入中繼日誌,此時日誌的接收和執行將會啟用2個執行緒分別去執行,乙個是io執行緒負責接收和寫入中繼日誌,乙個sql執行緒負責執行

Kafka日誌儲存解析(二)日誌索引

每個日誌分段檔案對應了兩個索引檔案,主要用來提高查詢訊息的效率。如上圖 kafka中的索引檔案屬於稀疏索引,不是所有的訊息都有對應的索引項。每當寫入一定量 由broker端引數log.index.interval.bytes指定,預設是4kb 的訊息時,偏移量索引檔案和時間戳索引檔案分別增加乙個偏移...

Raft 演算法詳解(二)日誌複製

在 raft 演算法中,副本資料是以日誌的形式存在的,領導者接收到來自客戶端寫請求後,處 理寫請求的過程就是乙個複製和提交日誌項的過程。那 raft 是如何複製日誌的呢?又如何實現日誌的一致的呢?這些內容是 raft 中非常核心 的內容,首先,咱 們先來理解日誌,這是你掌握如何複製日誌 實現日誌一致...

Java開發手冊之異常日誌(二) 日誌規約

強制 應用中不可直接使用日誌系統 log 4 j logback 中的 api 而應依賴使用日誌框架slf 4 j 中的 api 使用門面模式的日誌框架,有利於維護和各個類的日誌處理方式統一。import org.slf4j.logger import org.slf4j.logge ctory p...