1.如果妳有歸檔日誌的話,妳可以先將數據恢復到上壹個備份點,然後使用recover恢復到做命令前的時間點上。呵呵,還是很麻煩的。
2.mysql中的表在正常情況下執行delete 指定刪除的記錄實際上只是在索引文件中做了刪除標記,同時也將數據文件中對記錄的頭幾個字節改寫, 但這幾個字節具體的與入內容不清楚.
通過研究數據文件, 會發現幾種數據類型保存的格式.
varchar: 在該類型數據開始的位置有壹個字節來指出後面多少個字節是該字段的內容, 但是有壹個例外就是如果後面的內容與varchar字段指定的長度完全相等時,就沒有開頭的這個字節了.
text: 這個基本上與varchar類型壹樣, 但是在開始是由兩個字節來指出後面的數據長度的. 而且是高位在前,低位在後.
datetime: 為8個字節,同樣是低位在前,高位在後, 將其轉化為long值後就是yyyymmddhhmmss的格式的數據.
由於要恢復的表中只有這幾種數據類型,所以對其他的類型沒有研究.
知道了數據儲存的格式, 就可以分析數據文件來讀取記錄了.
需要註意壹點就是如果妳在刪除數據庫插入了新的數據, 那麽就有可能將原來的數據覆蓋掉. 所以應該在刪除出錯後立即恢復才能恢復出大部分數據