進入資料庫操作,難免會出現一些誤操作。這時就需要我們對資料進行恢複。一下介紹一下如何将表中的内容删除後進行恢複的過程。
首先我們模拟一下實驗環境:
将資料庫安裝好之後進入到/etc/my.cnf中
檢視是否啟用了日志功能(資料恢複是根據日志來進行恢複的。)
在此環境已經設定好了。
之後進入資料庫中建立一個庫命名未vianet_bss
進入庫中并建立一個表命名為stb_active
create table stb_active (SERVER_ID char(5),SERVER_CODE char(10),SERVER_NAME char(20),SERVER_DESC char(10),STATE char(5));
然後插入幾條資料
insert into可插入資料,之後表中出現幾條資料後我們的資料建立成功。
然後我們利用delete from stb_active where SERVER_ID=2我們将ID為2的内容給删除,待會将它恢複。
再次檢視ID為2的内容已經沒有了
之後我們利用ps -ef | grep mysql檢查到MySQLdata的位置位于何處,mysql-bin是放于data目錄之下的。
然後進入到data目錄中找到最新的那條日志檢視一下。當然是亂碼的需要轉換成.sql後可以看見内容。
mysqlbinlog -u root -p123.com mysql-bin.000006 > /opt/backup/4.sql
然後vim /opt/backup/4.sql
找到相應的時間段,我們是在什麼時候将内容删除的。
然後找到剛才我們執行删除内容的指令
并将它删除掉,此時不能進行還原如果到這裡你執行了還原的話會有資料重複。是以我們要将不是我們要還原的資料給删除掉。避免重複,但要保證和資料庫裡面的資料要一緻。
以下是沒有将有效的資料從日志中删除導緻的結果
之後我将這裡面的資料全部删除最後重新導入一份資料進入資料恢複完成。