mysql二进制日志文件恢复数据库_MySQL
二进制日志的文件的作用
mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句。如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所做的操作,再和数据库备份配合使用,即可再现用户操作,使数据库恢复。
二进制日志文件的弊端
二进制日志文件开启后,所有对数据库操作的记录均会被记录到此文件,
所以,当长时间开启之后,日志文件会变得很大,占用磁盘空间。
使用二进制日志文件恢复数据库
开启日志文件
mysql默认是不开启日志文件的功能的,需要我们手动开启。操作如下:
1、 打开mysql安装目录\my.ini(windows系统是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.数字编号”文件,
如binary-log.000001。以后每重启一次mysql服务,都会重新生成二进制日志文件,
文件名中的数字编号依次递增。
(你的上一步给出的文件名,加了个序号 还有一个总的文件 index文件 如图1:)
恢复数据库
使用日志文件恢复数据库必须要有一个数据库备份(只要是在二进制日志文件功能开启之后备份的就行)。恢复数据库时,可以通过时间恢复,也可以通过操作点恢复。
1、通过时间恢复方法如下:
如果我在2011-04-02 00:00:00时刻开启了二进制日志文件功能,并备份了数据库文件。且在2011-04-02 12:00:00数据库发生异常,需要恢复到2011-04-02 10:00:00。则操作如下:
l 用备份将数据库回复到2011-04-02 00:00:00时候的状态。
l 在命令行输入如下命令:
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)
这样,系统会自动执行从二进制日志有记录开始截止到2011-04-02 10:00:00,用户所做过的所有操作。与stop-date对应的,还有start-date属性,可以设定执行记录的开始时间。也可以两个属性都设置。
2、通过操作点恢复方法如下:
在命令行中输入mysqlbinlog D:\binary-log.000003 > D:\log.txt,执行后打开log.txt,
查看里面语句,可以发现:在每个操作之前,都会有一个独特的编号,如下红字显示:
/*!*/; # 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`
此编号随着操作数增多而变大。和时间一样是一个标记,通过操作点恢复的语句如下:
mysqlbinlog --stop-position="450" mysql安装目录\data\binary-log.000001 | mysql -u root –p
这样,系统会自动执行二进制日志中编号最低的语句到编号450语句。
与stop-position对应的,还有start-position属性,可以设定执行记录的开始编号。
附:(你应该看看)
1.0 mysqlbinlog 是mysql自带的一个日志操作工具!
2.0 如果直接打开log文件 可能会是乱码,所以我们一般会:
D:\mysql_log>mysqlbinlog logbin_ouyang.000003 >log_3.txt 复制下 然后用记事本打开!
就可以清楚的看到 操作的编号了 或者说(行号)
3.0 如果发生了错误的操作!如果可以的话!你应该立马停止数据库!然后恢复数据!
4.0 如果只是去掉某一个语句,你可以选择恢复两次 ,如图:
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 如果发生 Could not read entry at offset 1478: Error in log format or read error. 类似的错误!
请检查你的编号是否正确!注意这个编号 不是一些编辑器显示的那个行号哦,# at 450 /
经常delete 、update错了!所有给自己个文档!当然我也希望你永远的用不上这个文档 ! 周末愉快! (排版有的乱哈!多多包涵!)

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

MySQL是一個開源的關係型數據庫管理系統。 1)創建數據庫和表:使用CREATEDATABASE和CREATETABLE命令。 2)基本操作:INSERT、UPDATE、DELETE和SELECT。 3)高級操作:JOIN、子查詢和事務處理。 4)調試技巧:檢查語法、數據類型和權限。 5)優化建議:使用索引、避免SELECT*和使用事務。

可以通過以下步驟打開 phpMyAdmin:1. 登錄網站控制面板;2. 找到並點擊 phpMyAdmin 圖標;3. 輸入 MySQL 憑據;4. 點擊 "登錄"。

MySQL是一種開源的關係型數據庫管理系統,主要用於快速、可靠地存儲和檢索數據。其工作原理包括客戶端請求、查詢解析、執行查詢和返回結果。使用示例包括創建表、插入和查詢數據,以及高級功能如JOIN操作。常見錯誤涉及SQL語法、數據類型和權限問題,優化建議包括使用索引、優化查詢和分錶分區。

選擇MySQL的原因是其性能、可靠性、易用性和社區支持。 1.MySQL提供高效的數據存儲和檢索功能,支持多種數據類型和高級查詢操作。 2.採用客戶端-服務器架構和多種存儲引擎,支持事務和查詢優化。 3.易於使用,支持多種操作系統和編程語言。 4.擁有強大的社區支持,提供豐富的資源和解決方案。

Redis 使用單線程架構,以提供高性能、簡單性和一致性。它利用 I/O 多路復用、事件循環、非阻塞 I/O 和共享內存來提高並發性,但同時存在並發性受限、單點故障和不適合寫密集型工作負載的局限性。

MySQL在數據庫和編程中的地位非常重要,它是一個開源的關係型數據庫管理系統,廣泛應用於各種應用場景。 1)MySQL提供高效的數據存儲、組織和檢索功能,支持Web、移動和企業級系統。 2)它使用客戶端-服務器架構,支持多種存儲引擎和索引優化。 3)基本用法包括創建表和插入數據,高級用法涉及多表JOIN和復雜查詢。 4)常見問題如SQL語法錯誤和性能問題可以通過EXPLAIN命令和慢查詢日誌調試。 5)性能優化方法包括合理使用索引、優化查詢和使用緩存,最佳實踐包括使用事務和PreparedStatemen

MySQL和SQL是開發者必備技能。 1.MySQL是開源的關係型數據庫管理系統,SQL是用於管理和操作數據庫的標準語言。 2.MySQL通過高效的數據存儲和檢索功能支持多種存儲引擎,SQL通過簡單語句完成複雜數據操作。 3.使用示例包括基本查詢和高級查詢,如按條件過濾和排序。 4.常見錯誤包括語法錯誤和性能問題,可通過檢查SQL語句和使用EXPLAIN命令優化。 5.性能優化技巧包括使用索引、避免全表掃描、優化JOIN操作和提升代碼可讀性。

構建 SQL 數據庫涉及 10 個步驟:選擇 DBMS;安裝 DBMS;創建數據庫;創建表;插入數據;檢索數據;更新數據;刪除數據;管理用戶;備份數據庫。
