【王老師實操課】手把手教你SQL Server數(shù)據(jù)庫刪除數(shù)據(jù)恢復方法及步驟
瀏覽量: 次 發(fā)布日期:2023-08-17 21:49:10
【王老師實操課】手把手教你sql server數(shù)據(jù)庫刪除數(shù)據(jù)恢復方法及步驟
往期回顧
在第一期實操課中,王老師和大家分享了關(guān)于數(shù)據(jù)恢復中的分區(qū)格式化數(shù)據(jù)恢復實操課程,各位可以點擊鏈接進行課程復習:數(shù)據(jù)破壞手段之分區(qū)格式化淺析。
在上期課程的最后,為大家布置了兩道課后練習題,你們都做對了嗎?現(xiàn)在,公布課后練習題答案:第一題:64張;第二題:720張。本期,王老師將繼續(xù)為大家分享數(shù)據(jù)庫的實操課程,介紹SQL Server數(shù)據(jù)庫刪除記錄恢復的方法。
SQL Server數(shù)據(jù)庫是Microsoft開發(fā)設(shè)計的一個關(guān)系數(shù)據(jù)庫智能管理系統(tǒng)(RDBMS),廣泛應用于電商、旅游、金融、游戲、移動辦公、數(shù)據(jù)倉庫和數(shù)據(jù)分析平臺,包括常見的企業(yè)OA、ERP管理軟件、財務管理軟件、收銀軟件等。在案件取證過程中,取證人員經(jīng)常會遇到SQL Server數(shù)據(jù)庫記錄被刪除的情況,本文將和大家分享恢復SQL Server刪除記錄的方法,希望為各位的取證工作提供一定的參考價值。(文末為大家準備了實操練習題喲~)
以下為圖文講解內(nèi)容:
一、刪除記錄分析
SQL Server數(shù)據(jù)庫一般是以兩個文件存放的,一個擴展名為mdf,是數(shù)據(jù)文件;另一個擴展名為ldf,為日志文件。SQL Server刪除數(shù)據(jù)庫記錄,主要有三種方式,分別是:
1. delete from數(shù)據(jù)表 where 條件 —— 刪除內(nèi)容不刪除定義,不釋放空間。會記錄每條刪除操作的日志,刪除方式為一條一條刪除,會記錄每個刪除操作的日志。
2. drop table 數(shù)據(jù)表 —— 刪除整張表(包括表結(jié)構(gòu)定義),速度最快,最徹底,不保存具體日志。
3. truncate table 數(shù)據(jù)表 —— 刪除整張表內(nèi)容(只刪除數(shù)據(jù),保留表結(jié)構(gòu)),沒有保存具體刪除日志,會截斷數(shù)據(jù)并釋放空間。
我們來測試一下SQL2000環(huán)境下,三種不同的刪除方式,數(shù)據(jù)庫記錄能否恢復。原始記錄如下,一共有95條記錄:
(1)使用delete語句刪除表記錄,表記錄被刪除,再使用DBF6300數(shù)據(jù)庫取證分析系統(tǒng)掃描。
(2)使用drop語句刪除表,執(zhí)行語句后,表已經(jīng)無法查看,再使用DBF6300數(shù)據(jù)庫取證分析系統(tǒng)掃描。
(3)使用truncate語句清空表,執(zhí)行語句后,表記錄被清空,再使用DBF6300數(shù)據(jù)庫取證分析系統(tǒng)掃描。
二、刪除恢復思路
SQL Server數(shù)據(jù)庫記錄被刪除以后,通常有3種數(shù)據(jù)恢復方法。
1. 通過獲取日志內(nèi)的操作記錄(增、刪、改等),將日志記錄轉(zhuǎn)化為SQL語句,回寫數(shù)據(jù)庫記錄。
2. 通過事務日志回滾,有以下兩個前提:
(1)至少有一個誤刪除之前的數(shù)據(jù)庫完全備份。
(2)數(shù)據(jù)庫的恢復模式(Recovery mode)是“完整(Full)”。
3. 使用針對數(shù)據(jù)庫記錄恢復的專業(yè)軟件—DBF6300數(shù)據(jù)庫取證分析系統(tǒng)。
數(shù)據(jù)庫的日志恢復需要滿足特定日志模式設(shè)置,并尋找適合版本的軟件通過特定操作步驟進行恢復,且恢復數(shù)據(jù)具有時效性,需要及時恢復,通過日志方式恢復數(shù)據(jù)庫數(shù)據(jù)需要很復雜的操作步驟,對于不太熟悉數(shù)據(jù)庫的人員建議選擇使用DBF6300數(shù)據(jù)庫取證分析系統(tǒng)進行恢復分析操作。
三、案例實操
我們來看一個案例,2021年初,某執(zhí)法部門突擊檢查一個洗浴中心,但是前臺眼疾手快,瞬間清除了營業(yè)數(shù)據(jù),導致執(zhí)法人員無法查看收銀記錄,現(xiàn)在需要數(shù)據(jù)恢復。
針對本案例,我們來看看具體如何操作,進行數(shù)據(jù)庫記錄恢復。
1. 打開DBF6300數(shù)據(jù)庫取證分析系統(tǒng),選擇文件模式,掃描需要恢復的數(shù)據(jù)庫文件。
2. 查看各個表的記錄恢復結(jié)果。
3. 恢復所有記錄。
一般而言,記錄恢復操作就到此結(jié)束,但是導出的數(shù)據(jù)往往不具備關(guān)聯(lián)性,不方便數(shù)據(jù)分析,我們可以嘗試將這些數(shù)據(jù)還原到收銀軟件的數(shù)據(jù)庫中,從收銀軟件來查看數(shù)據(jù)統(tǒng)計。
4. 使用語句清空數(shù)據(jù)庫記錄(部分數(shù)據(jù)庫表存在條件約束限制,無法清空)。
(1)執(zhí)行語句select 'delete '+name FROM SYSOBJECTS WHERE TYPE = 'U' ,查詢結(jié)果會針對這個數(shù)據(jù)庫,生成刪除這個數(shù)據(jù)庫所有表的語句。
(2)將查詢結(jié)果復制到查詢分析器執(zhí)行,清空數(shù)據(jù)庫記錄。
5. 將步驟3導出的數(shù)據(jù),導入這個空的數(shù)據(jù)庫內(nèi)(由于格式等原因,導入會報錯)。
6. 安裝收銀軟件,配置數(shù)據(jù)庫。
7. 登錄軟件,查看數(shù)據(jù)。
(1)從數(shù)據(jù)庫中找到用戶名和密碼(有的數(shù)據(jù)庫表,密碼會加密存放)。
(2)查看營業(yè)報表。
至此,本次數(shù)據(jù)庫記錄的刪除恢復就已經(jīng)完成,并且導入到原始數(shù)據(jù)庫內(nèi),查看明細以及數(shù)據(jù)統(tǒng)計也非常方便。
四、注意事項
1. 現(xiàn)場數(shù)據(jù)庫固定的時候,需注意數(shù)據(jù)庫是否存放在本電腦上,可以通過以下三個步驟來查找:
(1)查看程序列表,看看是否安裝數(shù)據(jù)庫服務。
(2)由于數(shù)據(jù)庫文件并不是都保存在默認安裝目錄,可以根據(jù)擴展名全盤搜索,并注意數(shù)據(jù)庫文件的修改時間。
(3)若沒有搜索到,可以查看注冊表或配置文件,看看遠程連接地址。
2. 需要先停止數(shù)據(jù)庫服務,再固定數(shù)據(jù)庫文件。
(1)若未停止數(shù)據(jù)庫服務,復制會報錯,無法完成數(shù)據(jù)庫文件固定。
(2)若未停止數(shù)據(jù)庫服務,通過工具強行拷貝數(shù)據(jù)庫文件,則可能導致數(shù)據(jù)庫不完整,無法附加分析。
五、案例練習
文章實操練習題及軟件下載鏈接(軟件激活可微信或撥打電話聯(lián)系028-85211099):https://pan.baidu.com/s/1k_DgFBttuZpoRFsuX2akmA,提取碼:u36r;
請按以下要求恢復數(shù)據(jù)庫中的數(shù)據(jù):
1、恢復表t_rm_payflow的記錄,統(tǒng)計付款(字段sale_amount)總額。
2、恢復表t_rm_saleflow的記錄,按照商品(字段item_no)匯總銷售金額。
如果您有任何想要了解的實操問題,或者在實戰(zhàn)中難以處理的問題,都可以在欄目下方留言告訴我們,我們會將大家的問題安排進欄目的后續(xù)內(nèi)容。
往期精選
南京兆柏數(shù)據(jù)恢復中心 南京兆柏數(shù)據(jù)恢復中心
. 數(shù)據(jù)庫恢復掛起怎么辦,SQL Server數(shù)據(jù)庫恢復掛起怎么辦?全面解析及解決方法
. sqlserver可疑數(shù)據(jù)庫恢復,SQL Server 可疑數(shù)據(jù)庫恢復全攻略
. sqlserver2008數(shù)據(jù)庫可疑,SQL Server 2008數(shù)據(jù)庫可疑狀態(tài)解
. 數(shù)據(jù)庫的恢復模式有哪些,SQL Server數(shù)據(jù)庫的恢復模式詳解
. SQL Server 恢復掛起狀態(tài),原因、診斷與解決方法
. sqlserver備份到其他服務器,SQL Server數(shù)據(jù)庫備份到其他服務器的實用
. 2008數(shù)據(jù)庫怎么還原數(shù)據(jù)庫,SQL Server 2008 數(shù)據(jù)庫還原指南
. sqlserver數(shù)據(jù)庫恢復掛起狀態(tài),什么是SQL Server數(shù)據(jù)庫恢復掛起狀態(tài)?
. sqlserver數(shù)據(jù)庫恢復50g大約多少時間,了解SQL Server數(shù)據(jù)庫恢復
. sql server數(shù)據(jù)庫顯示恢復掛起,什么是SQL Server數(shù)據(jù)庫恢復掛起?
. sqlserver數(shù)據(jù)庫恢復進度,什么是SQL Server數(shù)據(jù)庫恢復進度?
. sqlserver數(shù)據(jù)庫恢復步驟,SQL Server數(shù)據(jù)庫恢復步驟
. sqlserver數(shù)據(jù)庫恢復數(shù)據(jù),什么是SQL Server數(shù)據(jù)庫恢復數(shù)據(jù)?
. sqlserver數(shù)據(jù)庫恢復,什么是SQL Server數(shù)據(jù)庫恢復?
. sqlserver數(shù)據(jù)庫恢復掛起什么導致的,什么是SQL Server數(shù)據(jù)庫恢復掛起
. sqlserver數(shù)據(jù)庫恢復掛起,什么是SQL Server數(shù)據(jù)庫恢復掛起?
. sqlserver數(shù)據(jù)庫恢復工具,什么是SQL Server數(shù)據(jù)庫恢復工具?
. sqlserver數(shù)據(jù)庫恢復模式,什么是SQL Server數(shù)據(jù)庫恢復模式?
. sqlserver數(shù)據(jù)庫恢復掛起怎么解決,什么是SQL Server數(shù)據(jù)庫恢復掛起?