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. 某些數據恢復操做使用二進制日誌。還原備份後,將從新執行與備份相關的二進制日誌中的事件,以便將數據庫同步到備份發生的位置。

儘管有這些很是重要的用途,但默認狀況下禁用二進制日誌記錄,由於它會稍微下降性能。可是,二進制日誌在設置複製和從備份還原時提供的好處一般會超過這種輕微的性能損失。spa

二進制日誌格式

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服務器變量
相關文章
相關標籤/搜索