簡單恢復模式下執行資料庫完整還原

iSQlServer發表於2009-01-19

資料庫完整還原的目的是還原整個資料庫。整個資料庫在還原期間處於離線狀態。在資料庫的任何部分變為聯機之前,必須將所有資料恢復到同一點,即資料庫的所有部分都處於同一時間點並且不存在未提交的事務。

在簡單恢復模式下,資料庫不能還原到特定備份中的特定時間點。

 還原整個資料庫
簡單恢復模式下的完整資料庫還原只涉及一個或兩個 RESTORE 語句,具體取決於是否需要還原差異資料庫備份。

如果只使用完整資料庫備份,則只需還原最近的備份,如下圖所示。


如果還使用差異資料庫備份,則應還原最近的完整資料庫備份而不恢復資料庫,然後還原最近的差異資料庫備份並恢復資料庫。下圖顯示了這一過程。


還原整個資料庫時,應當使用單一的還原順序。以下示例顯了資料庫完整還原方案的還原順序中的關鍵選項。還原順序由通過一個或多個還原階段來移動資料的一個或多個還原操作組成。將省略與此目的無關的語法和詳細資訊。

將資料庫恢復到完整資料庫備份的狀態。在恢復資料庫時,儘管 RECOVERY 選項是預設值,但為清楚起見,仍建議顯式指定該選項。

示例
以下示例首先顯示瞭如何使用 BACKUP 語句來建立 AdventureWorks 資料庫的完整資料庫備份和差異資料庫備份。然後按順序還原這些備份。

注意:
此示例以 ALTER DATABASE 語句開頭,該語句將恢復模式設定為 SIMPLE。
 


 複製程式碼
USE master;
--Make sure the database is using the simple recovery model.
ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE;
GO
-- Back up the full AdventureWorks database.
BACKUP DATABASE AdventureWorks TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
  WITH FORMAT;
GO
--Create a differential database backup.
BACKUP DATABASE AdventureWorks TO DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
   WITH DIFFERENTIAL;
GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
   WITH FILE=1, NORECOVERY;
--Restore the differential backup (from backup set 2).
RESTORE DATABASE AdventureWorks FROM DISK = 'Z:\SQLServerBackups\AdventureWorks.bak'
   WITH FILE=2, RECOVERY;
GO還原完整資料庫備份

用於還原資料庫備份的 RESTORE 語句的基本語法是:

RESTORE DATABASE database_name FROM backup_device [ WITH NORECOVERY ]

注意:
如果還打算還原差異資料庫備份,則應使用 WITH NORECOVERY。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-541426/,如需轉載,請註明出處,否則將追究法律責任。

相關文章