利用Log Explorer將你已經delete,truncate,drop過的資料進行恢復

liangck發表於2008-10-21

原地址: http://blog.csdn.net/jiangopen/archive/2004/07/14/41684.aspx
作者:jiangopen

 瞭解資料庫的人都知道,資料庫的日誌記錄了我們所有對資料庫的操作動作,正是有了日誌才使得事務的回滾成為可能。也就是說日誌可以讓所有的動作可逆,儘管我們知道這個原理,但是很少有人去分析sqlserver的日誌,然後生成逆向的指令碼,將已經執行的刪除動作撤銷。現在,我們可以不用發愁了,因為有了Log Explorer ,我們可以使用它來分析sqlserver的日誌,生成逆向指令碼,來搶救我們已經刪除的資料。當然,你把日誌清了,我就沒辦法搶救了。廢話不說了,使用步驟如下:

    1、要有Log Explorer for SQL Server 這個軟體,http://www.lumigent.com提供這個產品,最新的版本目前是4.0,但是遺憾的是未註冊版只能在演示資料庫上進行操作。當然你可以利用搜尋引擎來查詢已經破解的版本,我目前得到的版本是3.2,是破解的版本,我希望公司使用者還是去買個註冊號,這年頭做軟體不容易,我們自己作個產品也很費勁,互相理解一下吧。你可以進入http://www.efile.com.cn/,用空間搜索功能,輸入“log”,進行搜尋,那麼我的個人空間上有此產品(3.2版本的),直接下載即可。另外,你可以到www.ttxx.com搜尋此軟體。

    2、軟體的安裝我就不多說了,直接照提示裝即可,裡面有序號產生器。

    3、對應軟體的使用,裡面有幫助嚮導,提示的很清楚。不過我還是想把快速的使用方法告訴大家:

    4、在開始程式組中點Log Explorer程式圖示(像個X).即可進入到程式的主介面。

    5、單擊file選單下面的attach log file命令即可開啟連線資料的畫面,選擇伺服器,輸入使用者和口令。

    6、進入到選擇資料庫的畫面,選擇你要操作的資料庫。(可以選擇use backup file 方式)

    7、點選attach按鈕出現了一個提示框,這裡面說得是,在某些情況下此工具也不是萬能的,都是英文,自己瞧吧。

    8、點確定按鈕,關閉提示框。在左邊的操作命令樹有很多日誌相關的操作。如:日誌統計、日誌分析、日誌過濾、日誌檢視(view log)

    9、單擊borwse下的view log 就看到了這些日誌的記錄。

    10、下面舉個例子,來說說如何運用它。(假設現在連線的是pubs資料庫)

    11、在sqlserver查詢分析器中輸入 select * into test1 from jobs  
                                    delete test1
    12、現在可以在log explorer中看到了,後面的記錄中有delete 的日誌記錄(背景為綠色)

    13、現在右鍵單擊其中一條記錄,然後選擇UNDO..,將提示你儲存一個Recovery.sql的指令碼,這個指令碼就是delete test1的逆向指令碼,將

它儲存下來,放入查詢分析器中執行,哈哈,資料就全部回來了。

    14、現在再做一個試驗,用truncate table test1命令試試。

    15、這時要找回其中的資料就不能到view log 中去了,點選view dll commands命令,點選上面的大快捷圖示filter command(有hint提示,就是第一個大圖示),在出現的選項中只選擇truncate table 命令,其他的都去掉,點選apply。這時程式就只篩選出與truncate table 有關的命令,看到下面的salvage命令按鈕了嗎?這個就是生成逆向指令碼的命令按鈕,把逆向指令碼調入到查詢分析器中執行,資料就回來了。你

可以用drop table 試試,逆向指令碼不僅可以把丟掉的表建立,資料照樣可以找回來。

    16、好了,功能很強大,你自己多用就熟悉了,特別要注意使用篩選器來篩選要恢復的某個操作、注意操作的時間,時間要精確,操作太多,日誌也複雜,眼都會看花,所以你要多用其中的工具進行篩選。

相關文章