MySQL 二進制日誌 binlog

MySQL 5.7 開啓 binlog

  • 修改 my.cnf 文件
    [mysqld]
    log-bin=[/存放目錄/]mysql-bin #注意 mysql 可讀寫“存放目錄”,默認數據存放目錄
    expire_logs_days=7 #保留7天內修改過的 binglog 文件
    max_binlog_size=512M #單個 binlog 文件大小上限,默認1G
    #指定或忽略要複製的數據庫,存在跨庫問題
    binlog_do_db=db1
    binlog_db_db=db2
    #binlog_ignore_db=db1
    #binlog_ignore_db=db2
    

常用操作

  • 查看所有 binlog 文件列表
    show master logs;
    
  • 查看 master 狀態,包含最新 binlog 文件名和 position
    show master status;
    
  • 清除過期 binlog 文件,並使用新編號的 binlog 文件開始記錄日誌
    flush logs;
    
  • 刪除 binlog 文件
    • 刪除舊的 binlog 文件
      purge master logs to 'mysql-bin.000573';
      purge master logs before '2018-04-18 06:00:00';
      purge master logs before DATE_SUB(NOW(), INTERVAL 2 DAY);
      
    • 清空所有 binlog 文件
      reset master
      

使用 mysqlbinlog 命令查看 binlog 文件的內容

  • 使用
    # 查看日誌
    mysqlbinlog [選項] binlog文件名
    # 恢復數據
    mysqlbinlog [選項] binlog文件名 | mysql -u用戶名 -p密碼 -D數據庫 [-v]
    
  • 常用選項
    • --start-position=128 起始 pos
    • --stop-position=256 結束 pos
    • --start-datetime="2018-08-08 00:00:00" 起始時間
    • --stop-datetime="2018-08-09 12:00:00" 結束時間
    • --database=db_name 只恢復 db_name 數據庫

使用 sql 查看 binlog 文件的內容

  • 查詢語句
    SHOW BINLOG EVENTS [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count];
    
  • 選項
    • log_name binlog文件名,默認第一個 binlog 文件
    • pos 查詢起始 pos,默認 log_name 中的第一個 pos
    • offset 偏移 pos 個數
    • row_count 查詢數量

調整 binlog_cache_size

  • 查看當前 binlog_cache_size 大小(byte),默認 32k
    show variables like 'binlog_cache_size';
    
  • 查看當前 binlog_cache_use 和 binlog_cache_disk_use 次數
    show status like 'binlog_cache%';
    -- binlog_cache_disk_use 使用臨時文件寫 binlog 文件的次數
    -- binlog_cache_use 使用緩存寫 binlog 文件的次數
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章