首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 二進制日志恢復實戰:mysqlbinlog 啟用、查看、按位置/時間恢復全流程

     編輯:MySQL 資料庫相關知識

1. 開啟 Binlog

[mysqld]
log-bin = E:/log/logbin.log

重啟服務:net stop mysql && net start mysql。驗證:SHOW VARIABLES LIKE 'log_%';。生成 logbin.index、logbin.000001。

2. 查看/導出 Binlog

# 直接查看
mysqlbinlog e:/log/logbin.000001

# 導出到文件
mysqlbinlog e:/log/logbin.000001 > e:/log/log.txt

# 多文件合併
mysqlbinlog e:/log/logbin.000001 > e:/log/log.sql
mysqlbinlog e:/log/logbin.000002 >> e:/log/log.sql

# 按位置導出
mysqlbinlog --start-position=185 --stop-position=338 e:/log/logbin.000001 > e:/log/log3.txt

# 按時間導出
mysqlbinlog --start-datetime="2010-01-07 11:25:56" --stop-datetime="2010-01-07 13:23:50" e:/log/logbin.000001 > e:/log/log_by_date.txt

3. 恢復數據

# 全量恢復
mysqlbinlog e:/log/logbin.000001 | mysql -u root -p

# 按位置恢復
mysqlbinlog --start-position=185 --stop-position=338 e:/log/logbin.000001 | mysql -u root -p

# 按時間恢復
mysqlbinlog --start-datetime="2010-01-07 11:25:56" --stop-datetime="2010-01-07 13:23:50" e:/log/logbin.000001 | mysql -u root -p

# 通過導出腳本恢復
mysql -e "source e:/log/log.sql"

4. 常用管理命令

  • SHOW MASTER LOGS; 列出所有 binlog 文件
  • SHOW BINLOG EVENTS; 查看當前 binlog 事件
  • FLUSH LOGS; 生成新 binlog 文件
  • RESET MASTER; 刪除所有 binlog 並重新開始(慎用)
  • mysqldump -u root -p --opt --quick db > backup.sql 快速導出 SQL
  • mysql -e "source backup.sql" 導入 SQL
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved