一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據庫技術|

服務器之家 - 數(shù)據庫 - Mysql - mysql二進制日志文件恢復數(shù)據庫

mysql二進制日志文件恢復數(shù)據庫

2020-04-19 17:07MYSQL教程網 Mysql

喜歡的在服務器或者數(shù)據庫上直接操作的兄弟們你值得收藏下!不然你就悲劇了。-----(當然我也是在網上搜索的資料!不過自己測試通過了的!)

二進制日志的文件的作用

    mysql二進制日志文件用來記錄所有用戶對數(shù)據庫操作,即記錄用戶對數(shù)據庫操作的sql語句。如果有此文件,當數(shù)據庫發(fā)生意外時,可以通過此文件查看到用戶在此文件記錄的時間段內用戶所做的操作,再和數(shù)據庫備份配合使用,即可再現(xiàn)用戶操作,使數(shù)據庫恢復。

二進制日志文件的弊端

二進制日志文件開啟后,所有對數(shù)據庫操作的記錄均會被記錄到此文件,

所以,當長時間開啟之后,日志文件會變得很大,占用磁盤空間。

使用二進制日志文件恢復數(shù)據庫

開啟日志文件

mysql默認是不開啟日志文件的功能的,需要我們手動開啟。操作如下:

1、  打開mysql安裝目錄\my.ini(windows系統(tǒng)是my.ini文件,linux是my.cnf文件)。

2、  找到[mysqld]這個標簽,在此標簽下面一行,添加語句:log-bin=binary-log。上面語句中,log-bin說明要開啟二進制日志文件,binary-log是二進制日志文件的名字。

(測試的時候我設置的:log-bin=d:/mysql_log/logbin_ouyang.log)

3、  重啟mysql服務。可以在mysql安裝目錄\data 文件夾下看到“binary-log.數(shù)字編號”文件,

   如binary-log.000001。以后每重啟一次mysql服務,都會重新生成二進制日志文件,

   文件名中的數(shù)字編號依次遞增。

(你的上一步給出的文件名,加了個序號 還有一個總的文件 index文件 如圖1:)

mysql二進制日志文件恢復數(shù)據庫

恢復數(shù)據庫

使用日志文件恢復數(shù)據庫必須要有一個數(shù)據庫備份(只要是在二進制日志文件功能開啟之后備份的就行)。恢復數(shù)據庫時,可以通過時間恢復,也可以通過操作點恢復。

1、通過時間恢復方法如下:

如果我在2011-04-02 00:00:00時刻開啟了二進制日志文件功能,并備份了數(shù)據庫文件。且在2011-04-02 12:00:00數(shù)據庫發(fā)生異常,需要恢復到2011-04-02 10:00:00。則操作如下:

l         用備份將數(shù)據庫回復到2011-04-02 00:00:00時候的狀態(tài)。

l         在命令行輸入如下命令:

 

?
1
2
3
mysqlbinlog --stop-date="你想要恢復的時間"  日志文件的目錄\binary-log.000001 | mysql -u root –p
 
(D:\mysql_log>mysqlbinlog logbin_ouyang.000007 --stop-date="2011-10-23 15:05:00"|mysql -uroot -proot)

這樣,系統(tǒng)會自動執(zhí)行從二進制日志有記錄開始截止到2011-04-02 10:00:00,用戶所做過的所有操作。與stop-date對應的,還有start-date屬性,可以設定執(zhí)行記錄的開始時間。也可以兩個屬性都設置。

2、通過操作點恢復方法如下:

在命令行中輸入mysqlbinlog D:\binary-log.000003 > D:\log.txt,執(zhí)行后打開log.txt,

查看里面語句,可以發(fā)現(xiàn):在每個操作之前,都會有一個獨特的編號,如下紅字顯示:

?
1
2
3
4
5
6
7
8
9
/*!*/;
 
# at 450 /*編號450*/
 
#110402 15:31:50 server id 1 end_log_pos 529     Query    thread_id=2   exec_time=0  error_code=0
 
SET TIMESTAMP=1301729510/*!*/;
 
DROP TABLE `jwc`

此編號隨著操作數(shù)增多而變大。和時間一樣是一個標記,通過操作點恢復的語句如下:

mysqlbinlog --stop-position="450" mysql安裝目錄\data\binary-log.000001  | mysql -u root –p

這樣,系統(tǒng)會自動執(zhí)行二進制日志中編號最低的語句到編號450語句。

與stop-position對應的,還有start-position屬性,可以設定執(zhí)行記錄的開始編號。

附:(你應該看看)

1.0       mysqlbinlog 是mysql自帶的一個日志操作工具!

2.0       如果直接打開log文件 可能會是亂碼,所以我們一般會:

      D:\mysql_log>mysqlbinlog logbin_ouyang.000003 >log_3.txt  復制下 然后用記事本打開!

   就可以清楚的看到 操作的編號了 或者說(行號)

3.0       如果發(fā)生了錯誤的操作!如果可以的話!你應該立馬停止數(shù)據庫!然后恢復數(shù)據!

4.0       如果只是去掉某一個語句,你可以選擇恢復兩次 ,如圖:

mysql二進制日志文件恢復數(shù)據庫

?
1
2
3
4
5
6
D:\mysql_log>mysqlbinlog logbin_ouyang.000009 --stop-position=10625|mysql -uroot
     -proot
 
   D:\mysql_log>mysqlbinlog logbin_ouyang.000009 --start-position=10843|mysql -uroo
 
     t –proot

5.0 如果發(fā)生 Could not read entry at offset 1478: Error in log format or read error. 類似的錯誤!

   請檢查你的編號是否正確!注意這個編號 不是一些編輯器顯示的那個行號哦,# at 450 /

經常delete 、update錯了!所有給自己個文檔!當然我也希望你永遠的用不上這個文檔 ! 周末愉快!mysql二進制日志文件恢復數(shù)據庫 (排版有的亂哈!多多包涵!)

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 无遮掩60分钟从头啪到尾 | 极品在线 | 国产成人啪精品午夜在线播放 | 国产精品网站在线观看 | 成年人视频免费在线播放 | 免看一级a一片成人123 | 国产精品视频久久 | 俄罗斯三级完整版在线观看 | 成人欧美一区二区三区 | 天天躁夜夜躁很很躁 | 99国内精品久久久久久久黑人 | jizz女16处| 国产精品第2页 | 门卫老张和女警花小说 | 风间由美在线播放 | 欧美成狂野欧美在线观看 | 菠萝视频在线完整版 | 青草国内精品视频在线观看 | 8x在线永久成人影院 | 色欧美在线 | 青青热久麻豆精品视频在线观看 | 国产精品成人在线播放 | 欧美日韩精品亚洲精品v18 | 日本动漫xxxxxx | 免费观看日本 | 色五婷婷 | 国产区久久 | 国产精品一二区 | 全色黄大色黄大片爽一次 | 暖暖高清日本在线 | 99视频全部看免费观 | 美女用手扒自己下部 | 亚洲va精品中文字幕 | 国产精品区一区二区免费 | 91桃色污| 玩逼逼| 国产成人免费在线观看 | 亚洲99久久无色码中文字幕 | 极品丝袜乱系列在线阅读 | 四虎2021地址入口 | 精品国产中文字幕在线视频 |