SQLSERVER2012数据恢复过程
生活随笔
收集整理的這篇文章主要介紹了
SQLSERVER2012数据恢复过程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
由于長時間從事企事業單位的應用系統開發,前往用戶現場升級、調試系統是比較常做的事情,但是就在昨日,由于同事的失誤在毫無知覺的情況下誤刪了教材數據庫幾乎所有的數據,一種不妙感覺油然而生,立即查詢,感覺頭發都立起來了,心想這下大半年的心血要完了。為了迅速恢復系統的使用,在當時的情況下立即關閉相關系統的訪問入口,前后共花費不到五分鐘。經過思考,立即將最近的一次備份文件進行還原,從而保證了系統的正常運行,但是此舉也不可避免的可能會丟掉某些數據。另外事情已經發生,如何做才能為以后的數據恢復做準備呢,以下是自己的觀點:
1、務必冷靜,事情已經發生不可慌亂。
2、立即查看當前時間,最好能夠精確到秒,并做記錄。
3、應立即向直接上級反映此事,不可隱瞞,防止事態擴大。
4、如果權限允許,應當立即停止相關應用,防止有新的數據寫入數據庫。事后一直不放心,當下次再出現這種情況的時候,該如何對數據進行數據恢復,盡可能的減小損失呢(做不到完全避免損失),因此從網上查閱大量資料并進行整理。之前生產數據庫使用的是sqlserver2000和2005,當時也出現過誤刪數據的情況,用LogExlorerForSQL很輕松就恢復了數據,現在數據庫升級到2012了這個工具無法使用了,因此只能采用其他辦法,在此需要特別鳴謝CSDN一位大神的文章,在此構建一個新的數據庫模擬數據恢復全過程。
1、構建新數據庫以及寫入一些數據,新的數據庫名稱擬定為TESTDB,通過新建數據庫來完成。
2、為剛剛新構建的數據庫做一次完整備份,這個是前提,沒有一份完整備份文件是無法進行接下來的操作的。備份時注意,恢復模式一定要選完整,如果是其他類型那恐怕就沒有下文了。一般來講新建數據庫的時候,默認不要去改恢復模式這個屬性。
3、創建新的測試表并寫入幾條新數據。
Create Table TestDB (fID INT,fName Varchar(20));
Insert Into TestDB (fID,fName) Values (1,'Paul01');
Insert Into TestDB (fID,fName) Values (2,'Paul02');
Insert Into TestDB (fID,fName) Values (3,'Paul03');
Insert Into TestDB (fID,fName) Values (4,'Paul04');
Insert Into TestDB (fID,fName) Values (5,'Paul05');
Select * From TestDB;
fID fName
1 Paul01
2 Paul02
3 Paul03
4 Paul04
5 Paul05
見圖一4、刪除數據,讓悲劇重現,記住此時要記錄時間點,在現實中往往會由于慌亂忘記記錄,但是希望看了這個文章之后能夠記住此事。
SELECT GETDATE()
2017-12-29 14:53:45.793UPDATE TestDB SET fName = '';
Select * From TestDB;
fID fName
1
2
3
4
5
好既然悲劇已經發生,也有了心理準備和恢復前準備,此刻最好看一下系統時間。接下來就要演示如何進行數據恢復。
SELECT GETDATE()
2017-12-29 14:55:32.6735、做事務日志備份,做事務日志備份需要注意一下一點,如圖二所示
備份類型:選擇事務日志,如果不能選擇或只有差異,說明你的數據庫不是2012版本創建的,那么就不能做什么了。
備份路徑選擇默認就好,
進入【選項】菜單,
選擇【備份到現有介質集(E)】
選擇【追加到現有備份集(H)】
可靠性選擇
完成后驗證備份
寫入介質前檢查校驗和(F)
事務日志
備份日志尾部,并使數據庫處于還原狀態(L)
壓縮屬性可以不選擇。
參見圖三和圖四,點擊【確定】
點擊確定備份成功,此時數據庫將顯示為正在還原狀態
注意:如果備份失敗,請檢查該數據庫是否正在被占用,如果是請kill。
同時請確認【用系統賬號登錄】6、還原完整備份
數據庫處于正在還原狀態,右鍵【數據庫】--【任務】--【還原】--【文件和文件組】,
選擇最近的一次完整備份。此時,需要在“選項”中選擇第二種還原方式,具體如下圖。
如上圖,勾選完整數據備份文件。
如上圖,恢復狀態選擇第二種,不對數據庫執行任何操作,不回滾未提交的事務??梢赃€原其它事務日志。
(Restore with NoRecovery)
從字面意思就知道為什么要選擇這種。
參見圖五和圖六7、接著還原備份的事務日志,圖七
完整備份還原完畢,接著要對事務日志進行還原,右鍵【數據庫】--【任務】--【還原】--【事務日志】,如下圖:
還原事務日志的時候需要特別注意“時間點”這個設置,其他不需要設置。
時間點選擇為誤刪數據的時間點之前就可以恢復出誤刪的數據,這里選擇:2017-12-29 14:54:01
所以之前強調要查看一下時間。如下圖所示:8、點擊確定,在確定等待還原成功,數據庫變成可用狀態。此時后再查詢,數據已經恢復
如果查詢發現數據不是你想要的,那么可以重復上述的操作,從備份事務日志開始,然后最后選擇時間點的時候在縮小范圍。以上,完整的演示了個人在恢復數據過程中的總結。當然前提是允許這樣干,當然大型電子商務系統、高并發系統應該不適用,肯定也不會出現誤刪數據的情況,都有對應的解決方案避免此類情況發生。
總結
以上是生活随笔為你收集整理的SQLSERVER2012数据恢复过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简述APP启动流程
- 下一篇: 目标检测 YOLOv5网络v6 0版本总