標籤:lib art 資料 出現 rac nsa tar defaults ike
查看是否開啟binlog
mysql> show variables like ‘%bin%‘;+-----------------------------------------+----------------------+| Variable_name | Value |+-----------------------------------------+----------------------+| binlog_cache_size | 32768 || binlog_direct_non_transactional_updates | OFF || binlog_format | MIXED || binlog_stmt_cache_size | 32768 || innodb_locks_unsafe_for_binlog | OFF || log_bin | ON ##開了 || log_bin_trust_function_creators | OFF || max_binlog_cache_size | 18446744073709547520 || max_binlog_size | 1073741824 || max_binlog_stmt_cache_size | 18446744073709547520 || sql_log_bin | ON || sync_binlog | 0 |+-----------------------------------------+----------------------+12 rows in set (0.00 sec)
開啟binlog
#在my.cnf[mysqld]log-bin=mysql-binbinlog_format=mixed
expire_logs_days = 30 #設定到期自動回收時間
#以下可選
log_bin_basename=/var/lib/mysql/mysql-bin
log_bin_index=/var/lib/mysql/mysql-bin.index
#log日誌預設會在資料目錄裡
刪除binlog檔案
#刪除5天前的binlog日誌mysql> PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ),INTERVAL 5 DAY);Query OK, 0 rows affected (0.01 sec)#重設日誌mysql> reset master;Query OK, 0 rows affected (0.02 sec)#注意:手動清理的時候注意一些,如果有主從同步,還沒來得及同步的日誌被清理後,主動同步會造成資料 不一致
可以通過
show slave status\G; #檢查從伺服器正在讀取哪個日誌,有多個從伺服器,選擇時間最早的一個做為目標日誌。
mysqlbinlog命令使用
1.查看binlog檔案裡的內容
mysqlbinlog mysql-bin.000004
#
[[email protected] log]$ mysqlbinlog mysql-bin.000004
mysqlbinlog: unknown variable ‘default-character-set=utf8‘
出現以上錯誤 解決方案如下:
mysqlbinlog --no-defaults mysql-bin.000004
2.將binlog轉換為可用的sql
1> 常規的將binlog日誌裡的所有內容轉換為sql檔案
mysqlbinlog mysql-bin.000005 > bin.sql
2> 將指定庫對應的binlog內容提取出來
# -d 指定資料庫
Mysqlbinlog –d test mysql-bin.000005 > bin.sql
3> 指定位置點 提取內容
Mysqlbinlog mysql-bin.000020 –start-position=365 –stop-position=456 > bin.sql
4> 指定時間點 提取內容
Mysqlbinlog mysql-bin.000020 –start-datetime=’2017-01-01 17:18:00’ –stop-datetime=’2017-01-01 18:45:00’ > bin.sql
簡談mysql的binlog