SQL Server 數據恢復到指點時間點(完整恢復)
SQL Server 數據恢復到指點時間點(完整恢復)
說到數據庫恢復,其實我們一般最常見的有兩種,一種就是簡單恢復,通過備份的bak文件直接恢復數據庫,缺點就是有可能數據丟失。另外一種就是通過備份的數據+事務日志還原數據。但是后者還原的話我們需要保證事務日志的完整性。我們今天就主要介紹的是第二種,所有的操作過程我們使用的是SSMS進行操作的。
注:使用第二種方法還原數據的時候需要注意的問題:1、要准備好之前的完整備份的數據,2、備份全新的事務日志。3、通過完整備份的數據進行完整還原。4、通過備份的全新的事務日志進行指定時間點的數據還原。
我們首先創建一個測試數據庫---DB2,然后創建一個表info
定義字段信息
我們插入數據
接下來我們備份數據,備份路勁D:\DB_BACKUP
右擊數據庫---任務--備份
備份類型:完整。
備份路勁:D:\db_backup\db2.bak
備份完成
備份完成的文件
成功備份后,我們增加幾條數據,然后刪除幾條數據(我們需要注意時間點,方便后面的操作)
此時就當是我們誤操作結果;誤操作后,我們正常還原了就可以了
需要注意的是,輸入的寫入和刪除有可能是不同的用戶進行操作的,所以 通過還原肯定是數據丟失了,所以我們通過完全備份恢復完成后,還需要通過log進行還原。
當前時間時21:32
我們插入了幾條數據
我們在過幾分鍾進行數據刪除--刪除2兩條測試數據
當前時間為:
接下來我們刪除兩條數據
此時我們發現數據有異常所以需要通過備份進行還原。但是我們的備份之后,做了一些數據的插入,如果用之前備份的恢復的話,數據肯定有丟失,所以我們還需要借助日志進行還原。
所以我們需要通過完整備份進行恢復,然后通過log進行恢復,然后恢復到指定的時間點。
在恢復完整備份之前,我們需要進行一次全新的事務日志備份。
其實備份事務日志的目錄是為了將其寫入截斷,保證數據的完整性
數據庫---右擊--任務---備份---備份類型--事務日志
備份成功后
此時我們需要通過完整備份進行還原以下數據
數據庫---任務---還原--數據庫
選擇設備---瀏覽備份的數據庫文件
記住,我們一定要在選項中選擇 norecovery
恢復狀態:RESTORE WITH NORECOVERY
開始還原提示以下信息:
我們也可以使用以下腳本進行還原
出現以上問題,我們有兩種解決方法
1、還原數據庫時,點擊選擇頁上的選項,勾選覆蓋現有數據庫(WITH REPLACE),點確定后即可成功還原數據庫(推薦此方法)。
2、進行還原操作時,點擊選擇頁上的選項,勾選保持源數據庫處於正在還原狀態(BACKUP LOG WITH NORECOVERY),即可解決問題。
我們選擇第二種方法可以正常恢復成功
此時我們查看到數據庫一直再提示---正在還原中,該現象為正常的。
接下來我們要通過事務日志進行數據還原。
數據庫---任務---還原---事務日志
瀏覽到保存的事務日志文件—DB2.trn
然后我們需要選擇刪除數據的日期及時間:我們上面記載了刪除數據的日期及時間 21:36
此時是恢復數據的主要關鍵地方。
確認的時間點信息
我們此時需要單擊選項菜單:
恢復狀態:回滾未提交的事務,使用數據庫處理可以使用的狀態。無法還原其他事務日志(RESTORE WITH RECOVERY)
我們也可以通過腳本進行數據還原。
還原成功后,數據庫狀態顯示正常
接下來我們查看數據,恢復正常了;





























