navicat刪除的資料能還原嗎?
navicat刪除的資料是可以還原的。
用navicat刪除資料庫中的入侵數據,導致刪順手了,把一些看似重複數據的重要數據在表中直接右鍵刪除掉了(相當於delete from table指令),而該資料庫並沒有做過這些資料的備份,同時也沒有開啟二進位日誌,常規的復原方法徹底走入死路。
在解決的過程中,做過以下幾種嘗試:
1.了解到如果開啟了日誌,直接mysqlbinlog 使用日誌復原即可。
2.如果不是刪除了一個表的部分數據,而是刪除整個表,那麼可以在刪除後馬上用磁碟數據恢復軟體嘗試恢復。 (因為刪除表後會有文件被刪除,而刪除表的部分數據,文件還是存在)
3.找數據恢復的公司,該公司號稱用ibdata1就能恢復,於是我使用工具分析ibdata1,一頁一頁查看有沒有歷史記錄存在,最後發現頁中只存放了現有資料。
而使用ibdata1恢復數據,應該是在了解數據表結構的前提下,資料庫除ibdata1外其他數據受損不能正常使用資料庫時嘗試,而不是刪了表數據後恢復什麼的。 (事實上,這個文件是儲存現有表格資料的,其實也可以設定成每個表格一個檔案。)
#4.最後發現mysql下有ib_logfile0和ib_logfile1兩個文件,其實這兩個文件裡,記錄了Mysql的一些事物日誌,用於事務的前滾後滾,是Mysql本身使用的,這個文件用文字工具打開後,有很多亂碼,但卻可以查找到被刪除的少量資料的insert記錄,極少數的亂碼透過前後語句找出了原文,最終透過事物日誌恢復了刪除的檔案。
相關推薦:《Navicat for mysql使用圖文教學》
註:用事物日誌恢復,需要幾個前提。
1:知道刪除資料的大概位置,不要這邊查找,那邊又不斷有新資料插入。
2:因為有很多亂碼,適用於尋找少量數據,而不是用作大量數據的恢復,浪費體力。
3:如果二進位日誌沒開,沒有備份,那麼就只能用這種方法還原了。
以上是navicat刪除的資料能還原嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!