依據mysql時間點進行數據恢復的案例分享


轉自:http://www.jquerycn.cn/a_14108

在mysql中,根據故障的時間點恢復相關數據的方法分享,有需要的朋友參考下。

問題描述:
搭建一個基於binlog的數據庫恢復的測試環境,mysqlbinlog工具可以指定恢復時間點和指定恢復位置,參數分別為

--start-date、--stop-date、start-position、
stop-position。
 用於演示使用指定恢復時間點的方式。

准備工作:
1,測試庫新建一個測試庫yewu_test和delete_test的表

1 create table delete_test(uIn int, name varchar(30)); 

2,插入三條測試數據:

insert into  delete_test values(1,'a'),(2,'b'),(3,'c'); 

3,創建一個全備份,備份完成時間2010-04-05 19:57:29

mysqldump -uroot --socket=/tmp/mysql_tmp.sock --single-transaction --master-data=2 --skip-opt --no-autocommit --create-options yewu_test > yewu_test.sql 

4,在2013-04-05 20:01:14分刪除delete_test表

 drop table delete_test; 

5,在2013-04-05 20:04:47分創建一個新表並插入數據

 create table after_time_table(uIn int, colname varchar(30));
 insert into after_time_table values(1,'col1'),(2,'col2'); 

現在要求恢復誤刪的delete_test表的所有數據

實施恢復:
1,停止應用並做當前時間點的一個全備(如果恢復操作失敗,用於回檔)

2,關閉binlog后重啟mysqld

 1)注釋/etc/my.cnf配置文件中的log_bin配置
 2)mysqladmin --socket=/tmp/mysql_tmp.sock -uroot shutdown
 3)mysqld_safe --defaults-file=/etc/my.cnf --socket=/tmp/mysql_tmp.sock &

3,進入mysql客戶端並刪除yewu_test庫

 drop database yewu_test;

4,還原2013-04-05 19:57:29的全備

create database yewu_test;
 mysql --default-character-set=gbk -uroot yewu_test --socket=/tmp/mysql_tmp.sock < yewutest.sql

5,恢復截止到2013-04-05 20:01:13的數據(即恢復drop table delete_test前的所有數據)

mysqlbinlog -uroot --socket=/tmp/mysql_tmp.sock --stop-date='2010-04-05 20:01:13' binlog.000010 | mysql -uroot --socket=/tmp/mysql_tmp.sock

6,恢復從2013-04-05 20:01:15到當前的數據(即恢復drop table delete_test后的所有數據)

mysqlbinlog -uroot --socket=/tmp/mysql_tmp.sock --start-date='2010-04-05 20:01:15' binlog.000010 | mysql -uroot --socket=/tmp/mysql_tmp.sock

7,打開binlog並重啟mysqld

 ./bin/mysqld_safe --defaults-file=/etc/my.cnf --socket=/tmp/mysql_tmp.sock &

8,此時在yewu_test庫看到delete_test表的所有數據已經還原,另外,在drop table delete_test之后所有的數據庫操作(建表和插入數據到after_time_table),也同樣被恢復。

說明:上述基於時間的恢復,精確的時間是從binlog文件中找到該語句對應的具體時間點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM