MySQL資料庫誤刪恢復

這世界上有後悔葯

-www.houhuiyao.cc 後悔葯數據恢復 站長語

前面介紹了MySQL資料庫在使用InnoDB引擎時,如果誤刪了數據表,在共享表空間MySQL數據表InnoDB引擎表誤刪恢復(共享表空間ibdata1)和獨立表空間MySQL數據表InnoDB引擎表誤刪恢復(獨立表空間innodb_file_per_table=1)的情況下如何恢複數據。

本文將探討下MySQL資料庫誤刪恢復。

後悔葯數據恢復提醒您:

1,首先需要說明的是,生產環境下慎重執行刪除操作,除非你確實明白自己在做什麼,否則不執行危險動作。

2,有條件的情況下,依靠系統來管理數據和資料庫,儘可能降低依潛在的管理的風險。

3,資料庫有Update、Delete、Insert、Truncate、Drop類操作,先在測試環境執行一次,看結果和預期是否相符。生產環境執行前,先對要操作的表做一個備份,以防萬一。後續將針對每個危險動作如何在生產執行時即準備好危機應對動作做一個探討。

4,備份,備份,備份。

資料庫誤刪,不管是使用的rm -rf testdb還是drop database testdb,最終的效果都是一樣的:數據目錄下的testdb目錄及目錄下的文件都不可見了(和之前介紹的Linux下恢復刪除的情況一致),實際上文件內容依然還在那裡如果沒有數據覆蓋上去的話。

#測試環境準備命令:

mysql> create database testdb;

Query OK, 1 row affected (0.08 sec)

mysql>

mysql> use testdb;

Database changed

mysql>

mysql> create table aa(id int not null primary key, name varchar(20));

Query OK, 0 rows affected (0.34 sec)

mysql>

mysql> insert into aa values(1,a),(2,b),(3,c),(4,d);

Query OK, 4 rows affected (0.17 sec)

Records: 4 Duplicates: 0 Warnings: 0

mysql> select * from aa;

+----+------+

| id | name |

+----+------+

| 1 | a |

| 2 | b |

| 3 | c |

| 4 | d |

+----+------+

4 rows in set (0.00 sec)

testdb資料庫表文件:

#刪除資料庫:

#使用SQL命令

drop database testdb;

#使用rm

rm -rf testdb/

那麼,這種情況下的資料庫恢復動作就簡單了,參考前面介紹Innodb引擎時的恢復方法即可:

1,完整的恢復testdb目錄及目錄下的文件即可找回刪除掉的庫名和表數據,然後針對具體的表引擎,將數據重新導入到資料庫中即可。

2,如果找回的是非完整的,那麼操作思路是一樣的,能恢復多少恢復多少,剩餘的如果實在找不回來,從最近一次的備份里提取,然後依靠其他手段比如單據來補全數據。

還是不知道怎麼恢復MySQL資料庫?找後悔葯MySQL數據恢復houhuiyao.cc吧!

推薦閱讀:

MySQL練習
OCP-1Z0-051 第十題
SQL 設計得爛嗎,諸如redis,nosql又該如何選擇?
SQLiGODs 注入(一個有意思的玩法)
《基於oracle學習SQL語言》學習筆記——第三章 單行函數

TAG:SQL | 資料庫 | MySQL |