1. 程式人生 > >Navicat使用教程(二):使用MySQL日誌(第2部分)——二進位制日誌

Navicat使用教程(二):使用MySQL日誌(第2部分)——二進位制日誌

下載Navicat for MySQL最新版本

Navicat for MySQL 是一套管理和開發 MySQL 或 MariaDB 的理想解決方案。使用Navicat for MySQL可以同時連線到 MySQL 和 MariaDB。Navicat for MySQL提供了強大的前端功能,為資料庫管理、開發和維護提供了直觀的圖形介面。對新手和專業人士來說,Navicat for MySQL都是管理和開發 MySQL 或 MariaDB的強大工具。

記錄是關於記錄資料庫中發生的事情。就像有些人可能會保留個人日誌來記下他們日常生活中發生的事情一樣,資料庫日誌會跟蹤登入和交易等事情。更重要的是,有效日誌應包括有關訪問控制和輸入驗證失敗的條目。預設情況下啟用的唯一MySQL日誌是錯誤日誌(至少在Windows上)。

上篇文章講了MySQL上不同日誌型別的概述,突出了其中最重要的一些——即錯誤日誌、常規查詢日誌、二進位制日誌和慢速日誌,並詳細說明了前兩個。這篇文章將更詳細地介紹二進位制日誌。下篇文章將講第三部分的慢速日誌。

二進位制日誌記錄的語句

二進位制日誌儲存描述資料庫更改的事件,例如,表建立操作或通過INSERT和UPDATE等語句更改表資料。除了使用基於行的日誌記錄之外,還可以為後代儲存可能已進行更改的語句(例如不匹配任何行的DELETE)的事件(有關此內容的更多資訊,請參見下文)。因此,二進位制日誌不包括不修改資料的SELECT或SHOW等語句。這些可以在常規查詢日誌中找到。

二進位制日誌有兩個重要目的:

  1. 對於複製,主複製伺服器上的二進位制日誌提供要傳送到從屬伺服器的資料更改的記錄。實際上,主伺服器將其二進位制日誌中包含的事件傳送到其從屬伺服器,以便它們執行相同的命令,以實現與主伺服器上相同的資料更改。
  2. 某些資料恢復操作使用二進位制日誌。還原備份後,將重新執行與備份相關的二進位制日誌中的事件,以便將資料庫同步到備份發生的位置。

儘管有這些非常重要的用途,但預設情況下禁用二進位制日誌記錄,因為它會稍微降低效能。但是,二進位制日誌在設定複製和從備份還原時提供的好處通常會超過這種輕微的效能損失。

二進位制日誌格式

MySQL為二進位制日誌記錄提供了三種日誌記錄格式,每種格式都有自己的優缺點。與其他日誌不同,您無法使用簡單的ON / OFF開關啟用它。相反,您必須通過使用“--binlog-format = type”啟動MySQL伺服器來顯式選擇二進位制日誌記錄格式。每種型別的確切陳述如下所述:

  1. 基於語句

    基於語句的日誌記錄記錄所有對錶的資料或結構進行更改的SQL語句。使用--binlog-format = STATEMENT啟用。
    某些非確定性語句可能不適合複製。如果MySQL確定是這種情況,它將發出警告“語句可能不安全登入語句格式”。
  2. 基於行

    在基於行的日誌記錄中,主伺服器將事件寫入二進位制日誌,以指示各個錶行的影響方式。因此,表必須始終包含主鍵以確保可以有效地識別行。您可以通過使用--binlog-format = ROW啟動它來告訴伺服器使用基於行的日誌記錄。
  3. 混合日誌

    第三種選擇是混合日誌記錄。使用此日誌記錄格式,預設情況下使用基於語句的日誌記錄,但在某些情況下,日誌記錄模式會自動切換到基於行。要使用混合日誌記錄,請使用選項--binlog-format = MIXED啟動MySQL。

    Navicat

    圖1  -  Navicat Server Monitor工具中的binlog_format伺服器變數