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
- 刪除舊的 binlog 文件
使用 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 文件的次數