Mysql日誌文件

MySql參數

參數分爲:mysql

  • 靜態參數   r只讀
  • 動態參數   rw讀/寫

SET使用:SET [global|session] sys_var_name = val;
SELECT使用:SELECT [@@global|@@session|@@] sys_var_name;sql

日誌文件

  • 常見日誌文件:數據庫

    • error log(錯誤日誌)
    • binlog(二進制日誌)
    • slow query log(慢查詢日誌)
    • log(查詢日誌)
    • undo log(回滾日誌)
    • redo log(重作日誌)存儲引擎文件
  • error log

    在mysql啓動、運行、關閉時進行記錄,不單單包含錯誤信息,還包含警告和其餘正確的信息。命令爲:show VARIABLES LIKE 'log_error'安全

  • binlog

    binlog(二進制日誌)只記錄了全部更改(update,insert,delete,create,drop,alert)操做,不包括select,show這類查詢操做。即便更改操做未改變數據庫時,仍會記錄在內。如:UPDATE t SET a=1 WHERE a=2;
    用途:session

    • 恢復(recovery)
    • 主從複製(replication):使得主從mysql數據庫實現同步
    • 審計(audit):判斷是否有注入攻擊,提高安全性。

binlog相關參數:架構

  • max_binlog_size   單個binlog文件大小
  • binlog_cache_size   緩衝大小
  • sync_binlog   每幾回緩衝刷回磁盤,默認爲0
  • binlog-do-db  寫入哪些庫的binlog,默認爲空,即寫入全部庫的binlog
  • binlog-ignore-db  忽略哪些庫的binlog,默認爲空,即寫入全部庫的binlog
  • log-slave-update  默認false,即本身做爲slave端時,不會寫入從master傳過來的binlog到本身的binlog。 m->s->s架構必須配置該參數,不然中間就斷了。
  • bilog_format  binlog的記錄格式,協調不一樣數據庫的 不一樣事物隔離級別 之間複製,保證數據一致性,可選值[statement|row|mixed]函數

    • statement:記錄的是邏輯 SQL 語句
    • row:記錄 的更改狀況
    • mixed:默認以statement,某些狀況會採用row。使用row狀況包括:ui

      • uuid()等不肯定函數
      • insert delay
      • 使用了用戶自定義函數(UDF)
      • 使用了臨時表(temporary table)
row的開銷會比statement大不少
文末補充了MYSQL實現主從複製的相關文章(別人寫的)。
  • slow log

    用於定位查詢慢的SQL語句,mysql默認不啓動慢日誌,開啓參數 log_slow_queries,默認閾值爲10秒,可經過參數long_query_time設置.net

  • undo log

    做用:爲保證事務原子性(Atomicity),在事務失敗時,進行rollback。
    原理:在begain/start transaction前進行備份。日誌

  • redo log

    實例失敗時,如:掉電,mysql存儲引擎會使用redo log恢復到掉電時刻。

Mysql主從複製相關文章(別人寫的):Mysql主從複製,主主複製

後續我也會本身補一篇關於binlog主從複製的使用。

相關文章
相關標籤/搜索