簡談mysql的binlog

來源:互聯網
上載者:User

標籤: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.