最近在網(wǎng)上看到破解版本的SQL SERVER 的數(shù)據(jù)庫(kù)修復(fù)軟件越來(lái)越多,在\x0d\x0a閑時(shí),下載了所有的試用版本及已經(jīng)破解版本,找到以前保留的損壞MDF,進(jìn)\x0d\x0a行一番比較。斷斷續(xù)續(xù)經(jīng)過(guò)幾天的比較,這些軟件的功能與特點(diǎn)基本上了解清楚,\x0d\x0a寫(xiě)出來(lái),與大家共享。\x0d\x0aRecoveryToolboxForSQLServer(產(chǎn)地:俄國(guó))\x0d\x0a特點(diǎn):數(shù)據(jù)恢復(fù)效果較好,對(duì)于庫(kù)結(jié)構(gòu)恢復(fù)較正常。\x0d\x0a使用:直接選擇損壞的MDF 文件,將修復(fù)結(jié)果直接輸出到SQLSERVER 中。\x0d\x0a或者保存成SQL 腳本文件。\x0d\x0aSysTools SQL Recovery(產(chǎn)地不詳)\x0d\x0a特點(diǎn):顯示數(shù)據(jù)時(shí),對(duì)中文不支持,只顯示出UniCode,在運(yùn)行時(shí)容易程度中\(zhòng)x0d\x0a斷直接退出;此軟件有些像RecoveryToolboxForSQLServer\x0d\x0a使用:直接選擇損壞的MDF 文件,將修復(fù)結(jié)果直接輸出到SQLSERVER 中。\x0d\x0a或者保存成SQL 腳本文件。\x0d\x0aofficerecovery 中的 Recovery for SQL Server(產(chǎn)地:美國(guó))\x0d\x0a特點(diǎn):支持BAK,LOG 文件,但修復(fù)后的數(shù)據(jù)容易丟失,庫(kù)結(jié)構(gòu)提較取較完整。\x0d\x0a使用:直接選擇損壞的MDF 文件,將修復(fù)結(jié)果直接輸出到SQLSERVER 中。\x0d\x0a或者保存成SQL 腳本文件。\x0d\x0aKernel for SQL Database(產(chǎn)地:印度)\x0d\x0a特點(diǎn):恢復(fù)效果好,但日期的顯示,它是用國(guó)外的方式,庫(kù)結(jié)構(gòu)提取一般。\x0d\x0a使用:直接選擇損壞的MDF 文件,將修復(fù)結(jié)果直接輸出到SQLSERVER 中。\x0d\x0a或者保存成SQL 腳本文件。\x0d\x0aStellar Phoenix SQL Recovery (產(chǎn)地:印度)\x0d\x0a特點(diǎn):數(shù)據(jù)恢復(fù)效果較好,程序運(yùn)行時(shí)易不正常退出,庫(kù)結(jié)構(gòu)提取不出來(lái)。\x0d\x0a使用:直接選擇損壞的MDF 文件,將修復(fù)結(jié)果直接輸出到SQLSERVER 中。\x0d\x0a無(wú)法保存成SQL 腳本。\x0d\x0a上述軟件都已經(jīng)有破解版本或者免費(fèi)版本,大家在選擇時(shí)應(yīng)該有所了解。\x0d\x0a說(shuō)明:庫(kù)結(jié)構(gòu)提取不完整,修復(fù)后的數(shù)據(jù)雖然可以在SQL SERVER 中附加,查\x0d\x0a看,導(dǎo)出,備份,但在應(yīng)用軟件下是無(wú)法連接此數(shù)據(jù)庫(kù)的,經(jīng)過(guò)對(duì)上述軟件修復(fù)后的數(shù)據(jù)庫(kù)文件進(jìn)行研究,已經(jīng)找到解決MDF 文件加軟件的辦法,有此修復(fù)需

成都創(chuàng)新互聯(lián)公司2013年開(kāi)創(chuàng)至今,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元聶榮做網(wǎng)站,已為上家服務(wù),為聶榮各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
恢復(fù)sqlserver數(shù)據(jù)庫(kù)表數(shù)據(jù)步驟如下:
一、心態(tài):
1、務(wù)必冷靜,事情已經(jīng)發(fā)生不可慌亂。
2、立即查看當(dāng)前時(shí)間,最好能夠精確到秒,并做記錄。
3、應(yīng)立即向直接上級(jí)反映此事,不可隱瞞,防止事態(tài)擴(kuò)大。
4、如果權(quán)限允許,應(yīng)當(dāng)立即停止相關(guān)應(yīng)用,防止有新的數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)。
二、恢復(fù):
1、構(gòu)建新數(shù)據(jù)庫(kù)以及寫(xiě)入一些數(shù)據(jù)
2、做一次完整備份,這個(gè)是前提,沒(méi)有一份完整備份文件是無(wú)法進(jìn)行接下來(lái)的操作的。
注意:如上圖所示,恢復(fù)模式一定要說(shuō)完整,如果是其他類(lèi)型那恐怕就沒(méi)有下文了。一般來(lái)講新建數(shù)據(jù)庫(kù)的時(shí)候,默認(rèn)不要去改恢復(fù)模式這個(gè)屬性。
3、寫(xiě)入一條新數(shù)據(jù)。
4、記住此時(shí)要記錄時(shí)間點(diǎn)。
此刻最好看一下系統(tǒng)時(shí)間。接下來(lái)就要演示如何進(jìn)行數(shù)據(jù)恢復(fù)。
5、做事務(wù)日志備份,做事務(wù)日志備份需要注意一下一點(diǎn),如圖所示。
備份模式請(qǐng)選擇事務(wù)日志,備份路徑自行決定
進(jìn)入選項(xiàng),將可靠性第1、2勾選,事務(wù)日志選擇第二個(gè),壓縮屬性可以不選擇.點(diǎn)擊確定備份成功,此時(shí)數(shù)據(jù)庫(kù)將顯示為正在還原狀態(tài)
注意:如果備份失敗,請(qǐng)檢查該數(shù)據(jù)庫(kù)是否正在被占用,如果是請(qǐng)kill。
6、還原完整備份。
數(shù)據(jù)庫(kù)處于正在還原狀態(tài),右鍵數(shù)據(jù)庫(kù)--任務(wù)--還原--文件和文件組,選擇最近的一次完整備份。此時(shí),需要在“選項(xiàng)”中選擇第二種還原方式,具體如下圖。
如上圖,勾選完整數(shù)據(jù)備份文件。
如上圖,恢復(fù)狀態(tài)選擇第二種,從字面意思就知道為什么要選擇這種。
7、接著還原備份的事務(wù)日志。
完整備份還原完畢,接著要對(duì)事務(wù)日志進(jìn)行還原,右鍵數(shù)據(jù)庫(kù)--任務(wù)--還原--事務(wù)日志,如下圖:
還原事務(wù)日志的時(shí)候需要特別注意“時(shí)間點(diǎn)”這個(gè)設(shè)置,其他不需要設(shè)置。
時(shí)間點(diǎn)選擇為誤刪數(shù)據(jù)的時(shí)間點(diǎn)之前就可以恢復(fù)出誤刪的數(shù)據(jù),所以之前強(qiáng)調(diào)要查看一下時(shí)間。如下圖所示
點(diǎn)擊確定,在確定等待還原成功,數(shù)據(jù)庫(kù)變成可用狀態(tài)。如下圖。
如果查詢發(fā)現(xiàn)數(shù)據(jù)不是你想要的,那么可以重復(fù)上述的操作,從備份事務(wù)日志開(kāi)始,然后最后選擇時(shí)間點(diǎn)的時(shí)候在縮小范圍。
使用Log Explorer查看和恢復(fù)數(shù)據(jù)
Log Explorer 4.1.可用于SQL Server2005的日志查看工具
下載地址:
使用方法:
打開(kāi)Log Explorer - Attach Log File - 選擇SQL Server服務(wù)器和登陸方式 - Connect -
在Database Name中選擇數(shù)據(jù)庫(kù) - Attach- 左面對(duì)話框中Browse- View Log- 就可以看到log記錄了
想恢復(fù)的話: 右鍵Log記錄 Undo Transation- 選擇保存文件名和路徑- 然后打開(kāi)該文件到查詢分析器里執(zhí)行
T-sql代碼就可以了
例如 如果Log是delete table where ...的話,生成的文件代碼就是insert table ....
然后將此insert table的代碼放到查詢分析器里執(zhí)行.就可以恢復(fù)數(shù)據(jù).
----------------------------------------------------------------------
--如何恢復(fù)被delete/update的數(shù)據(jù)
----------------------------------------------------------------------
1 連接到被刪除數(shù)據(jù)庫(kù)的Db
打開(kāi)log explorer 選擇 "file"-"attach log file"-選擇服務(wù)器和登陸方式-"connect"-選擇"數(shù)據(jù)庫(kù)"-"attach"
2 查看日志
在左面操作項(xiàng)目的對(duì)話框中選擇"browse"項(xiàng)目-"view log"-就可以看到當(dāng)前的Log記錄了
3 恢復(fù)數(shù)據(jù)
右鍵某一條log記錄,選擇"undo transation"-"選擇保存文件名和路徑"-然后打開(kāi)該文件到查詢分析器里執(zhí)行
T-sql代碼就可以了
例如: 如果log是delete table where ...的話,生成的文件代碼就是insert table ....
----------------------------------------------------------------------
--Log Explorer恢復(fù)被drop table和truncate table后的數(shù)據(jù)
----------------------------------------------------------------------
1 連接到被刪除數(shù)據(jù)庫(kù)的Db
操作同上
2 恢復(fù)方法
1) 選擇"salvaage dropped/truncate"菜單,在右邊的對(duì)話框中選擇表名,和droped/trucated的日期,
File Name中選擇生成insert語(yǔ)句腳步的存放位置,condition選擇是droped還是truncated,
最后點(diǎn)擊"create" 就會(huì)生成insert語(yǔ)句,把生成的語(yǔ)句到查詢分析器里面執(zhí)行一下就可以了
2) 選擇"ViewDDL Commands"菜單-選"truncate table" 操作項(xiàng)-點(diǎn)擊"Salvage"-生成語(yǔ)句-查詢分析器里執(zhí)行
----------------------------------------------------------------------
--log explorer使用的幾個(gè)問(wèn)題
----------------------------------------------------------------------
1) 對(duì)數(shù)據(jù)庫(kù)做完全/差異/日志備份
備份時(shí)如果選用了刪除事務(wù)日志中不活動(dòng)的條目
再用Log explorer打試圖看日志時(shí),提示No log recorders found that match the filter,would you like to view unfiltered data 選擇yes 就看不到剛才的記錄了
如果不選用了刪除事務(wù)日志中不活動(dòng)的條目
再用Log explorer打試圖看日志時(shí),就能看到原來(lái)的日志并做恢復(fù)
2) 修改了其中一個(gè)表中的部分?jǐn)?shù)據(jù),此時(shí)用Log explorer看日志,可以作日志恢復(fù)
3) 然后恢復(fù)備份,(注意:恢復(fù)是斷開(kāi)log explorer與數(shù)據(jù)庫(kù)的連接,或連接到其他數(shù)據(jù)上,
否則會(huì)出現(xiàn)數(shù)據(jù)庫(kù)正在使用無(wú)法恢復(fù))
恢復(fù)完后,再打開(kāi)log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data,選擇yes 就看不到剛才在2中修改的日志記錄,所以無(wú)法做恢復(fù).
4) 不要用SQL的備份功能備份,搞不好你的日志就破壞了.
正確的備份方法是:
停止SQL服務(wù),復(fù)制數(shù)據(jù)文件及日志文件進(jìn)行文件備份.
然后啟動(dòng)SQL服務(wù),用log explorer恢復(fù)數(shù)據(jù)
1、確保備份下的master數(shù)據(jù)庫(kù)與要恢復(fù)的SQL SERVER的版本一致性。
2、關(guān)閉打開(kāi)SQL Server Management Studio,打開(kāi)服務(wù)器管理器,點(diǎn)擊“配置”-“服務(wù)”,找到SQL SERVER服務(wù),右鍵點(diǎn)擊出快捷菜單。點(diǎn)擊“停止”停止MSSQLSERVER服務(wù)。
3、以管理員賬戶打開(kāi)cmd,輸入以下的命令:net start mssqlserver?/m。
4、打開(kāi)SQL Server Management Studio,出現(xiàn)連接到服務(wù)器的窗口,點(diǎn)擊取消。
5、點(diǎn)擊“新建查詢”,出現(xiàn)連接到服務(wù)器的窗口,點(diǎn)擊確定。因?yàn)槭菃斡脩裟J剑虼酥荒苡幸粋€(gè)鏈接進(jìn)入。
6、在查詢窗口輸入以下的命令。
7、重新啟動(dòng)SQL SERVER(MSSQLSERVER)服務(wù),右鍵點(diǎn)擊出快捷菜單。點(diǎn)擊“啟動(dòng)”啟動(dòng)服務(wù)就可以了。
SQL Server中誤刪除數(shù)據(jù)的恢復(fù)本來(lái)不是件難事,從事務(wù)日志恢復(fù)即可。但是,這個(gè)恢復(fù)需要有兩個(gè)前提條件:
1. 至少有一個(gè)誤刪除之前的數(shù)據(jù)庫(kù)完全備份。
2. 數(shù)據(jù)庫(kù)的恢復(fù)模式(Recovery mode)是“完整(Full)”。
針對(duì)這兩個(gè)前提條件,會(huì)有三種情況:
情況一、如果這兩個(gè)前提條件都存在,通過(guò)SQL語(yǔ)句只需三步就能恢復(fù)(參考文章),無(wú)需借助第三方工具。
a) 備份當(dāng)前數(shù)據(jù)庫(kù)的事務(wù)日志:BACKUP LOG [數(shù)據(jù)庫(kù)名] TO disk= N'備份文件名' WITH NORECOVERY
b) 恢復(fù)一個(gè)誤刪除之前的完全備份:RESTORE DATABASE [數(shù)據(jù)庫(kù)名] FROM DISK = N'完全備份文件名' WITH NORECOVERY, REPLACE
c) 將數(shù)據(jù)庫(kù)恢復(fù)至誤刪除之前的時(shí)間點(diǎn):RESTORE LOG [數(shù)據(jù)庫(kù)] FROM DISK = N'第一步的日志備份文件名' WITH STOPAT = N'誤刪除之前的時(shí)間點(diǎn)' , RECOVERY
情況二、如果第1個(gè)前提條件不存在,第2個(gè)前提條件存在,需要借助第三方工具。
情況三、如果第2個(gè)前提條件不存在,無(wú)法恢復(fù)。所以,一定要將數(shù)據(jù)庫(kù)恢復(fù)模式設(shè)置為“完整(Full)”。
我現(xiàn)在面臨的是第二種情況,需要找第三方工具。
開(kāi)始找的是Log Explorer for SQL Server,不支持SQL Server 2008。
后來(lái)找的是SQL Log Rescue,也不支持SQL Server 2008。
接著找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要購(gòu)買(mǎi),Demo版并沒(méi)有數(shù)據(jù)恢復(fù)功能。
最終在officerecovery.com上找到Recovery for SQL Server,雖然也是商業(yè)軟件,需要購(gòu)買(mǎi),但Demo版可以恢復(fù)數(shù)據(jù),只要數(shù)據(jù)庫(kù)文件不超過(guò)24Gb。幸好朋友的數(shù)據(jù)庫(kù)文件不大,用它完成了誤刪除數(shù)據(jù)的恢復(fù)。
下面分享一下用Recovery for SQL Server進(jìn)行恢復(fù)的操作步驟:
1. 運(yùn)行Recovery for SQL Server
2. 點(diǎn)擊菜單中的 File Recover,選擇要恢復(fù)的數(shù)據(jù)庫(kù)的數(shù)據(jù)文件(.mdf)
3. Next Next,進(jìn)入 Recovery Configuration 界面,選擇Custom(選擇了Custom才可以選擇從日志中恢復(fù)誤刪除的數(shù)據(jù))。
4. Next 進(jìn)入 Recovery options 窗口,選中 Search for deleted records,并選擇要恢復(fù)的數(shù)據(jù)庫(kù)的日志文件路徑(log file path)。
5. Next 并選擇目標(biāo)文件夾(Destination folder),用于存放恢復(fù)過(guò)程中生成的SQL語(yǔ)句與bat文件。
6. 點(diǎn)擊Start,開(kāi)始恢復(fù)操作(在上一步選擇的目標(biāo)文件夾中生成相應(yīng)的SQL文件與Bat文件),然后,出現(xiàn) SQL Server Database Creation Utility 窗口。
7. Next,選擇被恢復(fù)數(shù)據(jù)存放的目標(biāo)數(shù)據(jù)庫(kù)。
8. Next, 選擇 Import availiable data from both database and log files
9. Next, Next, 然后就完成數(shù)據(jù)的恢復(fù)!
網(wǎng)站名稱(chēng):SQLserver的修復(fù),sql server 修復(fù)
URL網(wǎng)址:http://chinadenli.net/article27/dsgspjj.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、靜態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、外貿(mào)建站、網(wǎng)站內(nèi)鏈、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)