還原數據庫時,提示還原成功,可是數據庫列表中該數據庫顯示正在還原中:
執行此命令即可:
RESTORE DATABASE EnterPriseBuilding WITH RECOVERY
1. 至少有一個誤刪除之前的數據庫完全備份。
2. 數據庫的恢復模式(Recovery mode)是“完整(Full)”。
一、還原需要的條件設置
??????? 使用命令,是通過sqlserver的事務日志以及一個誤刪除前的數據庫的完整備份進行還原,所以在sqlserver2012的維護計劃向導中,要建立完整備份,差異備份和事務日志,具體如下
以及在數據庫屬性,選項設置中,設置為完整備份,具體如下圖
做好如上兩個設置,數據庫誤刪后找回數據就會非常輕松,現在說一下如何還原sqlserver數據到故障點。
二、還原命令
還原主要分為四步走:
1、出現故障后,首先執行備份事務日志命令,這里以AdventureWorks作為數據庫名。命令如下:
BACKUP?LOG?AdventureWorks?TO?DISK?=?'C:SQLServerBackupsAdventureWorks_transcationlog.bak'? ???WITH?NORECOVERY;
2、從完整備份還原數據
RESTORE??DATABASE?[QASupervision]?FROM?DISK='M:DatabaseOAAdventureWorks_Fullbackup_2014_03_18_010002_0155764.bak'? WITH??NORECOVERY,?REPLACE
3、從差異備份還原數據
RESTORE?DATABASE?[QASupervision]?FROM?DISK='M:DatabaseOAAdventureWorks_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:SQLServerBackupsAdventureWorks_transcationlog.bak'??WITH??STOPAT=@dt,RECOVERY
5、還原數據庫,如果數據庫提示正在還原中,則執行此命令即可。
RESTORE?DATABASE?AdventureWorks?WITH?RECOVERY
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END