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