會導(dǎo)致數(shù)據(jù)庫的應(yīng)用程序不能正常運(yùn)行。
創(chuàng)新互聯(lián)成立10多年來,這條路我們正越走越好,積累了技術(shù)與客戶資源,形成了良好的口碑。為客戶提供成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)頁設(shè)計(jì)、域名注冊、網(wǎng)絡(luò)營銷、VI設(shè)計(jì)、網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。網(wǎng)站是否美觀、功能強(qiáng)大、用戶體驗(yàn)好、性價(jià)比高、打開快等等,這些對于網(wǎng)站建設(shè)都非常重要,創(chuàng)新互聯(lián)通過對建站技術(shù)性的掌握、對創(chuàng)意設(shè)計(jì)的研究為客戶提供一站式互聯(lián)網(wǎng)解決方案,攜手廣大客戶,共同發(fā)展進(jìn)步。
SqlServer是數(shù)據(jù)庫,如果系統(tǒng)卸載了此數(shù)據(jù)庫,則應(yīng)用此數(shù)據(jù)庫的應(yīng)用程序不能正常運(yùn)行。
SQL Server中誤刪除數(shù)據(jù)的恢復(fù)本來不是件難事,從事務(wù)日志恢復(fù)即可。但是,這個(gè)恢復(fù)需要有兩個(gè)前提條件:
1. 至少有一個(gè)誤刪除之前的數(shù)據(jù)庫完全備份。
2. 數(shù)據(jù)庫的恢復(fù)模式(Recovery mode)是“完整(Full)”。
針對這兩個(gè)前提條件,會有三種情況:
情況一、如果這兩個(gè)前提條件都存在,通過SQL語句只需三步就能恢復(fù)(參考文章),無需借助第三方工具。
a) 備份當(dāng)前數(shù)據(jù)庫的事務(wù)日志:BACKUP LOG [數(shù)據(jù)庫名] TO disk= N'備份文件名' WITH NORECOVERY
b) 恢復(fù)一個(gè)誤刪除之前的完全備份:RESTORE DATABASE [數(shù)據(jù)庫名] FROM DISK = N'完全備份文件名' WITH NORECOVERY, REPLACE
c) 將數(shù)據(jù)庫恢復(fù)至誤刪除之前的時(shí)間點(diǎn):RESTORE LOG [數(shù)據(jù)庫] FROM DISK = N'第一步的日志備份文件名' WITH STOPAT = N'誤刪除之前的時(shí)間點(diǎn)' , RECOVERY
情況二、如果第1個(gè)前提條件不存在,第2個(gè)前提條件存在,需要借助第三方工具。
情況三、如果第2個(gè)前提條件不存在,無法恢復(fù)。所以,一定要將數(shù)據(jù)庫恢復(fù)模式設(shè)置為“完整(Full)”。
我現(xiàn)在面臨的是第二種情況,需要找第三方工具。
開始找的是Log Explorer for SQL Server,不支持SQL Server 2008。
后來找的是SQL Log Rescue,也不支持SQL Server 2008。
接著找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要購買,Demo版并沒有數(shù)據(jù)恢復(fù)功能。
最終在officerecovery.com上找到Recovery for SQL Server,雖然也是商業(yè)軟件,需要購買,但Demo版可以恢復(fù)數(shù)據(jù),只要數(shù)據(jù)庫文件不超過24Gb。幸好朋友的數(shù)據(jù)庫文件不大,用它完成了誤刪除數(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ù)庫的數(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ù)庫的日志文件路徑(log file path)。
5. Next 并選擇目標(biāo)文件夾(Destination folder),用于存放恢復(fù)過程中生成的SQL語句與bat文件。
6. 點(diǎn)擊Start,開始恢復(fù)操作(在上一步選擇的目標(biāo)文件夾中生成相應(yīng)的SQL文件與Bat文件),然后,出現(xiàn) SQL Server Database Creation Utility 窗口。
7. Next,選擇被恢復(fù)數(shù)據(jù)存放的目標(biāo)數(shù)據(jù)庫。
8. Next, 選擇 Import availiable data from both database and log files
9. Next, Next, 然后就完成數(shù)據(jù)的恢復(fù)!
通過電腦中的控制面板無法對sqlserver軟件徹底刪除,可以借助電腦管家進(jìn)行徹底卸載,具體的卸載步驟如下:
1、打開電腦,然后找到并打開電腦中的電腦管家,并點(diǎn)擊頁面中的“軟件管理”,如下:
/iknow-pic.cdn.bcebos.com/1f178a82b9014a9071091d95a6773912b31beee7"target="_blank"title="點(diǎn)擊查看大圖"class="ikqb_img_alink"/iknow-pic.cdn.bcebos.com/1f178a82b9014a9071091d95a6773912b31beee7?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc=""/
2、然后會進(jìn)入到軟件管理頁面,可以看到左邊有很多選項(xiàng),找到“卸載”選項(xiàng):
/iknow-pic.cdn.bcebos.com/29381f30e924b8990dbc251061061d950a7bf612"target="_blank"title="點(diǎn)擊查看大圖"class="ikqb_img_alink"/iknow-pic.cdn.bcebos.com/29381f30e924b8990dbc251061061d950a7bf612?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc=""/
3、在卸載選項(xiàng)頁面中,找到中間列表的sqlserver軟件,點(diǎn)擊右側(cè)“卸載”選項(xiàng):
/iknow-pic.cdn.bcebos.com/9f510fb30f2442a7bedcba8dde43ad4bd01302c3"target="_blank"title="點(diǎn)擊查看大圖"class="ikqb_img_alink"/iknow-pic.cdn.bcebos.com/9f510fb30f2442a7bedcba8dde43ad4bd01302c3?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc=""/
4、然后會彈出一個(gè)確定卸載的窗口,點(diǎn)擊頁面中的“確定”,這樣就可以將sqlserver從電腦中徹底卸載干凈了:
/iknow-pic.cdn.bcebos.com/0dd7912397dda14446c42b9abdb7d0a20df486cd"target="_blank"title="點(diǎn)擊查看大圖"class="ikqb_img_alink"/iknow-pic.cdn.bcebos.com/0dd7912397dda14446c42b9abdb7d0a20df486cd?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto"esrc=""/
不會影響電腦的正常使用。
這是一款數(shù)據(jù)庫處理軟件,如果是自己的電腦,又不需要用數(shù)據(jù)庫的話,刪了沒關(guān)系。如果是工作電腦,最好確認(rèn)一下是誰安裝的,為什么安裝這個(gè),可能其他人有用。
MicrosoftSQLServer是由微軟開發(fā)的一款關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS),通常簡稱為SQLServer。
使用Log Explorer查看和恢復(fù)數(shù)據(jù)
Log Explorer 4.1.可用于SQL Server2005的日志查看工具
下載地址:
使用方法:
打開Log Explorer - Attach Log File - 選擇SQL Server服務(wù)器和登陸方式 - Connect -
在Database Name中選擇數(shù)據(jù)庫 - Attach- 左面對話框中Browse- View Log- 就可以看到log記錄了
想恢復(fù)的話: 右鍵Log記錄 Undo Transation- 選擇保存文件名和路徑- 然后打開該文件到查詢分析器里執(zhí)行
T-sql代碼就可以了
例如 如果Log是delete table where ...的話,生成的文件代碼就是insert table ....
然后將此insert table的代碼放到查詢分析器里執(zhí)行.就可以恢復(fù)數(shù)據(jù).
----------------------------------------------------------------------
--如何恢復(fù)被delete/update的數(shù)據(jù)
----------------------------------------------------------------------
1 連接到被刪除數(shù)據(jù)庫的Db
打開log explorer 選擇 "file"-"attach log file"-選擇服務(wù)器和登陸方式-"connect"-選擇"數(shù)據(jù)庫"-"attach"
2 查看日志
在左面操作項(xiàng)目的對話框中選擇"browse"項(xiàng)目-"view log"-就可以看到當(dāng)前的Log記錄了
3 恢復(fù)數(shù)據(jù)
右鍵某一條log記錄,選擇"undo transation"-"選擇保存文件名和路徑"-然后打開該文件到查詢分析器里執(zhí)行
T-sql代碼就可以了
例如: 如果log是delete table where ...的話,生成的文件代碼就是insert table ....
----------------------------------------------------------------------
--Log Explorer恢復(fù)被drop table和truncate table后的數(shù)據(jù)
----------------------------------------------------------------------
1 連接到被刪除數(shù)據(jù)庫的Db
操作同上
2 恢復(fù)方法
1) 選擇"salvaage dropped/truncate"菜單,在右邊的對話框中選擇表名,和droped/trucated的日期,
File Name中選擇生成insert語句腳步的存放位置,condition選擇是droped還是truncated,
最后點(diǎn)擊"create" 就會生成insert語句,把生成的語句到查詢分析器里面執(zhí)行一下就可以了
2) 選擇"ViewDDL Commands"菜單-選"truncate table" 操作項(xiàng)-點(diǎn)擊"Salvage"-生成語句-查詢分析器里執(zhí)行
----------------------------------------------------------------------
--log explorer使用的幾個(gè)問題
----------------------------------------------------------------------
1) 對數(shù)據(jù)庫做完全/差異/日志備份
備份時(shí)如果選用了刪除事務(wù)日志中不活動的條目
再用Log explorer打試圖看日志時(shí),提示No log recorders found that match the filter,would you like to view unfiltered data 選擇yes 就看不到剛才的記錄了
如果不選用了刪除事務(wù)日志中不活動的條目
再用Log explorer打試圖看日志時(shí),就能看到原來的日志并做恢復(fù)
2) 修改了其中一個(gè)表中的部分?jǐn)?shù)據(jù),此時(shí)用Log explorer看日志,可以作日志恢復(fù)
3) 然后恢復(fù)備份,(注意:恢復(fù)是斷開log explorer與數(shù)據(jù)庫的連接,或連接到其他數(shù)據(jù)上,
否則會出現(xiàn)數(shù)據(jù)庫正在使用無法恢復(fù))
恢復(fù)完后,再打開log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data,選擇yes 就看不到剛才在2中修改的日志記錄,所以無法做恢復(fù).
4) 不要用SQL的備份功能備份,搞不好你的日志就破壞了.
正確的備份方法是:
停止SQL服務(wù),復(fù)制數(shù)據(jù)文件及日志文件進(jìn)行文件備份.
然后啟動SQL服務(wù),用log explorer恢復(fù)數(shù)據(jù)