還原資料庫,資料庫提示正在還原中的處理辦法(轉)
阿新 • • 發佈:2018-11-13
轉載地址:https://www.cnblogs.com/shy1766IT/p/5189857.html
還原資料庫時,提示還原成功,可是資料庫列表中該資料庫顯示正在還原中:
執行此命令即可:
RESTORE DATABASE EnterPriseBuilding WITH RECOVERY
瞭解SQLServer指令碼之資料庫誤刪資料找回:http://www.cnblogs.com/Leo_wl/p/3614804.html
1. 至少有一個誤刪除之前的資料庫完全備份。
2. 資料庫的恢復模式(Recovery mode)是“完整(Full)”。
一、還原需要的條件設定
使用命令,是通過sqlserver的事務日誌以及一個誤刪除前的資料庫的完整備份進行還原,所以在sqlserver2012的維護計劃嚮導中,要建立完整備份,差異備份和事務日誌,具體如下
以及在資料庫屬性,選項設定中,設定為完整備份,具體如下圖
做好如上兩個設定,資料庫誤刪後找回資料就會非常輕鬆,現在說一下如何還原sqlserver資料到故障點。
二、還原命令
還原主要分為四步走:
1、出現故障後,首先執行備份事務日誌命令,這裡以AdventureWorks作為資料庫名。命令如下:
BACKUP LOG AdventureWorks TO DISK = 'C:\SQLServerBackups\AdventureWorks_transcationlog.bak' WITH NORECOVERY;
2、從完整備份還原資料
RESTORE DATABASE [QASupervision] FROM DISK='M:\Database\OA\AdventureWorks_Fullbackup_2014_03_18_010002_0155764.bak' WITH NORECOVERY, REPLACE
3、從差異備份還原資料
RESTORE DATABASE [QASupervision] FROM DISK='M:\Database\OA\AdventureWorks_diffbackup_2014_03_18_020002_0155764.bak' WITH NORECOVERY, REPLACE
4、從事務日誌還原資料,還原到某個時間點之前
DECLARE @dt datetime SELECT @dt=DATEADD(HOUR,-16,GETDATE()) select @dt RESTORE LOG [QASupervision] FROM DISK='C:\SQLServerBackups\AdventureWorks_transcationlog.bak' WITH [email protected],RECOVERY
5、還原資料庫,如果資料庫提示正在還原中,則執行此命令即可。
RESTORE DATABASE AdventureWorks WITH RECOVERY