Sql server 資料恢復工具----LogExplore 使用方法
Log Explore 是sqlserver資料庫的資料恢復工具。
恢復原理:利用sqlserver資料庫檔案中,LDF日誌檔案記錄資料庫操作日誌的原理,將其中的日誌找到,並逆向執行。
LogExplore使用方法:
安裝後開啟log explorer file=>attach log file->選擇伺服器和登陸方式->connect->
選擇資料庫->attach->左面對話方塊中browse->view log->就可以看到log記錄,
點選“View DDL Commands”裡面就有很多drop table 命令
點選下面的“undo”按鈕是生成表結構的語句(create table ....)
點選下面的“Salvage”按鈕是生成插入語句的(insert into ...values....)
我是按照上述方法的“Salvage”來生成被刪除表的Insert語句,實際上用這個方法生成的SQL指令碼已經包含了CreateTable。該過程速度大概用了8個小時,當時覺得慢,後來相比恢復過程,這個速度簡直快的不行。最大的表指令碼生成後超過1G。
生成所有的SQL指令碼後,防止萬一,我將資料庫停下,並把Date資料夾的Log和.MDF檔案拷出來(怕破壞LOG檔案,沒有使用資料庫的備份方式備份),檔案大小總共為5.7G
此後開始進行正式的恢復工作。新建一個資料庫,先試著用SQL查詢分析器執行了一個小表的指令碼,完全沒有問題。但後來發現匯入比較大的SQL指令碼檔案,查
詢分析器就報錯了。請教了realgz得知logExplorer本身對大指令碼有良好支援,因此改用LogExplorer--》Run
SQL Script 功能來執行指令碼。果然大檔案也可以恢復了。
但開始執行後發現包含有ntext欄位的表恢復起來異常緩慢,開啟一個包含nText欄位的表的恢復指令碼發現裡面使用writeText來寫入資料。恢復
一個30萬資料的表居然用了將近12小時的時間,而資料庫中又有大量這樣的表,為了加快資料,我又在幾個機器上裝了LogExplorer加入恢復過程,
終於經過3天的時間,全部的表都搞的差不多了,不過恢復過程有少量的錯誤。
接下來我將幾個機器的表導到同一個資料庫中,不過此時恢復的表是沒有包含索引、標識等擴充套件屬性的,因此需要重新建立索引、標識、預設值以及觸發器。在建立主鍵的時候發現居然有資料重複。。。沒辦法只好刪除重複資料。
使用 select distinct * into t_New from t_Old
可以刪除重複資料,但遇到有ntext欄位的表是不能用這個方法的,最後只好用 Delete From t_Table
Where ID IN (Select ID From t_Table a where (Select
Count(*) From t_Table a where a.ID = ID ) > 1
)直接刪除了有重複資料的記錄
經過72小時的努力,99.9%的資料恢復。並於4月8日晚上恢復執行網站。
這時候部分使用者反映無法登陸,一查發現是有小部分資料丟失,也就是LogExplorer裡報錯誤的那些資料……沒辦法,我重新用UEdit開啟SQL腳
本,查詢這些資料,發現還在,仔細一看發現,這些資料裡都有部分內容裡使用大量的回車,LogExplorer無法識別,因此才出的錯誤。
呵呵,顧客是上帝,沒辦法,只好將使用者表重新在本地恢復一次,遇到錯誤就記錄下ID,然後再考出SQL指令碼到查詢分析器執行(查詢分析器可以執行)
現在建立了維護計劃,每個星期做一次完整備份。另外運算元據庫的流程也變的規範,防止此類事故出現
************************************************************************************
1、慎重使用Text/nText欄位
2、LogExplorer的指令碼執行工具對付大檔案很不錯,但執行過程會對多個回車產生誤判斷
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-628259/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server資料庫恢復,SQL Server資料恢復,SQL Server資料誤刪除恢復工具SQLRescueSQLServer資料庫資料恢復
- 【資料庫資料恢復】Sql Server資料庫資料恢復案例資料庫資料恢復SQLServer
- 伺服器sql server 資料恢復伺服器SQLServer資料恢復
- 【資料庫資料恢復】sql server資料庫連線失效的資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】SQL server資料庫被加密怎麼辦?如何恢復?資料庫資料恢復SQLServer加密
- 資料庫資料恢復—附加資料庫錯誤823的SQL Server資料恢復案例資料庫資料恢復SQLServer
- 【資料庫資料恢復】SQL Server資料庫磁碟空間不足的資料恢復案例資料庫資料恢復SQLServer
- SQL Server資料庫恢復常見問題SQLServer資料庫
- 【資料庫資料恢復】透過資料頁恢復Sql Server資料庫資料的過程資料庫資料恢復SQLServer
- Sybase SQL Anywhere(ASA)資料庫恢復,ASA資料恢復,資料誤刪除恢復工具ReadASADBSQL資料庫資料恢復
- 資料庫資料恢復-SQL SERVER資料庫MDF (NDF)或LDF損壞如何恢復資料?資料庫資料恢復SQLServer
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- 【資料庫資料恢復】磁碟空間不足導致sql server錯誤的資料恢復資料庫資料恢復SQLServer
- 資料庫資料恢復-SQL SERVER資料庫檔案大小變為“0”的資料恢復方案資料庫資料恢復SQLServer
- 伺服器SQL server資料庫被加密恢復方案伺服器SQLServer資料庫加密
- Sql Server資料庫檔案丟失的恢復方法SQLServer資料庫
- 伺服器資料恢復-ESX SERVER資料恢復案例伺服器資料恢復Server
- SQL Server資料庫出現邏輯錯誤的資料恢復SQLServer資料庫資料恢復
- 【資料庫資料恢復】windows server下SqlServer資料庫的資料恢復資料庫資料恢復WindowsServerSQL
- 使用binlog2sql工具來恢復資料庫SQL資料庫
- 【虛擬機器資料恢復】VMware ESX SERVER資料恢復案例虛擬機資料恢復Server
- 【北亞資料恢復】通過碎片拼接技術恢復XenServer伺服器磁碟中SQL Server資料庫資料資料恢復Server伺服器SQL資料庫
- 硬碟資料恢復工具硬碟資料恢復
- 資料恢復工具PhotoRec資料恢復
- Sybase ASE資料庫恢復,Sybase資料恢復,資料誤刪除恢復工具READSYBDEVICE資料庫資料恢復dev
- 解析ESX SERVER故障資料恢復方法Server資料恢復
- SQL Server中使用臨時表進行資料備份與恢復SQLServer
- 【伺服器資料恢復】xen server常見故障的資料恢復方案伺服器資料恢復Server
- Disk Drill資料恢復工具資料恢復
- oradim工具恢復資料庫資料庫
- SQL Server 資料頁損壞修復SQLServer
- sql server資料庫錯誤資料恢復(資料庫連線失效,無法附加查詢)SQLServer資料庫資料恢復
- 將 SQL Server 資料庫還原到某個時點(完整恢復模式)SQLServer資料庫模式
- VMWARE ESX SERVER虛擬化資料恢復Server資料恢復
- 如何進行SQL Server容災恢復WISQLServer
- 使用binlog2sql恢復資料SQL
- 【資料庫資料恢復】MS SQL資料庫附加資料庫出錯怎麼恢復資料?資料庫資料恢復SQL
- 【資料庫資料恢復】SQL SERVER資料庫MDF (NDF)或LDF損壞問題如何解決?資料庫資料恢復SQLServer
- SQL Server資料庫中了360字尾勒索病毒怎麼辦,勒索病毒解密資料恢復SQLServer資料庫解密資料恢復