SQL Server 2008 誤刪除資料的恢復
前言
在平時大家用到SQL Server的時候很多,也經常會對其進行各種操作,簡單的資料查詢或新增還沒什麼問題,頂多就是新增錯誤直接刪除就可以了,但如果你操作的是重要的資料庫,而且庫中有著重要的資料,更甚至你還進行了update、delete操作,那該怎麼辦呢?
小編犯的錯誤也是不可饒恕的,一句忘記加where條件的update一執行,把一千多條重要資料作廢了,小編還真是嚇了個不輕,還好花費了些時間補救了。只是通過各路搜尋,小編沒有找到update後的恢復辦法,卻找到一個delete的,這也是很寶貴的,寶貴的東西最好的辦法就是記錄下來~~~
解決方案
SQL Server中誤刪除資料的恢復需要有兩個前提條件:
1. 至少有一個誤刪除之前的資料庫完全備份。
2. 資料庫的恢復模式(Recovery mode)是“完整(Full)”。
那麼問題來了,如何檢視資料庫的恢復模式呢?
檢視或更改資料庫恢復模式
1.連線到相應的 SQL Server 資料庫引擎例項之後,展開“資料庫”;
2.右鍵單擊所要進行操作的資料庫,再選擇“屬性”,開啟“資料庫屬性”對話方塊;
3.在“選擇頁”窗格中,單擊“選項”;
4.當前恢復模式顯示在“恢復模式”列表框中;
5.在列表中就可以選擇不同的模式來更改恢復模式啦~~~
在這裡:
詳述
繼續說如何解決delete的問題。針對前面所說的兩個前提條件,會有三種情況:
情況一、如果這兩個前提條件都存在,那就好說啦!
這個就很簡單了,直接把現在已經錯誤的資料庫刪掉,將之前備份好的資料庫還原即可,省時省力。
情況二、如果第1個前提條件不存在,第2個前提條件存在,需要藉助第三方工具。
情況三、如果第2個前提條件不存在,那就真的是無法恢復了。
所以,一定要將資料庫恢復模式設定為“完整(Full)”。
第三方工具恢復
根據搜尋的情況看,第三方工具有多種,比如:Log Explorer for SQL Server、
Recovery for SQL Server操作
用Recovery for SQL Server進行恢復的操作步驟:
1.執行Recovery for SQL Server
2.點選選單中的 File > Recover,選擇要恢復的資料庫的資料檔案(.mdf)
3. Next > Next,進入 Recovery Configuration 介面,選擇Custom(選擇了Custom才可以選擇從日誌中恢復誤刪除的資料)。
4. Next 進入 Recovery options 視窗,選中 Search for deleted records,並選擇要恢復的資料庫的日誌檔案路徑(log file path)。
5. Next 並選擇目標資料夾(Destination folder),用於存放恢復過程中生成的SQL語句與bat檔案。
6. 點選Start,開始恢復操作(在上一步選擇的目標資料夾中生成相應的SQL檔案與Bat檔案),然後,出現 SQL Server Database Creation Utility 視窗。
7. Next,選擇被恢復資料存放的目標資料庫。
8. Next, 選擇 Import availiable data from both database and log files
9. Next, Next, 然後就完成資料的恢復!
只是這個方案還是有些瑕疵的,通過搜尋,這個方案確實是可以恢復資料的,只是恢復之後的資料變成了DEMO型,還需要大家手動稍作修改。
由於本方案是針對SQL Server 2008來解決的,小編的SQL Swrver為2012版本,所以以上過程小編沒有實戰,還期待大家誰有機會嘗試了告知小編哦!
總結
通過這次小編著實是長記性了,資料庫一定要多做備份,常做備份;而且還是不要輕易拿含有重要資料的庫來進行操作,有個測試庫最好了。大家也就吸取小編的經驗教訓,認真對待資料庫,資料無價,容不得失誤!
所以,做為程式設計師,做資料除錯的時候,必須要先備份資料庫!