mysqlbinlog 恢复mysql数据
確保my.cnf啟動了?log-bin?(既log-bin=mysql-bin)
?
mysql>?show?master?status;???#查看使用的那個logbin文件
mysql> show binlog events?in?+“當(dāng)前的日志文件”?\G;
?
eg:
mysql>?show?master?status?\G;
***************************?1.?row?***************************
????????????File:?mysql-bin.000006
?
mysql>?show?binlog?events?in?'mysql-bin.000006'?;
?
flush?logs:表示建立的mysql-bin文件,如當(dāng)前的為mysql-bin.000006,當(dāng)執(zhí)行了flush?logs命令后,就會變成mysql-bin.000007。依次類推。
?
恢復(fù)時間查看
Mysqlbinlog??/usr/local/mysql/data/mysql-bin.000001
?
?
1、通過結(jié)束時間向前恢復(fù)(--stop-date)
? ?mysqlbinlog?--stop-date="?2015-10-06?15:10:00"?/usr/local/mysql/data/mysql-bin.000001?|?mysql?-uroot?-pjiang211689
?
該命令將恢復(fù)截止到在--stop-date選項中以DATETIME格式給出的日期和時間的所有數(shù)據(jù)。
?
2.?如果沒有檢測到錯誤的SQL語句,mysqlbinlog可以通過--start-date指定開始時間恢復(fù):
? ?mysqlbinlog --start-date=”2012-03-15?00:01:00″?/data1/log/mysql/mysql-bin.000001??|?mysql?-u?root?-pmypasswd
?
3.?指定時間段恢復(fù)?通過mysqlbinlog?--start-date?和?--stop-date恢復(fù)指定時間段的數(shù)據(jù)庫活動記錄,如下:
mysqlbinlog?--start-date=”2015-03-09?02:00:00″--stop-date=”2015-03-15?11:00:00″?/data1/log/mysql/mysql-bin.000001?>?/tmp/mysql_restore.sql
通過這種方式,就能獲取最后一個備份的文件時間2015-03-09?02:00:00到今天刪除數(shù)據(jù)庫之前2015-03-15?11:00:00這段時間的數(shù)據(jù)庫活動事務(wù)操作
?
4、指定開始\結(jié)束位置(和指定時間差不多),如下圖所示,通過show binlog events中查看“end_log_pos”,選中開始和結(jié)束位置。(注意mysql-bin.00000X文件的選取)
?
--start-position="107"?//指定到107位置開始
--stop-position="289"//指定到289位置結(jié)束?
eg:
mysqlbinlog?--start-position="107"?--stop-position="316"?/usr/local/mysql/data/mysql-bin.000001?|?mysql?-uroot?-pjiang211689
?
注意:重新啟動數(shù)據(jù)庫,會產(chǎn)生新的mysql-bin日志文件
轉(zhuǎn)載于:https://blog.51cto.com/469952080/1702463
總結(jié)
以上是生活随笔為你收集整理的mysqlbinlog 恢复mysql数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [LeetCode]: 62: Uniq
- 下一篇: slf4j、jcl、jul、log4j1