執行完整資料庫還原 (簡單復原模式)

在完整資料庫還原中,目標是還原整個資料庫。在還原期間,整個資料庫為離線狀態。在讓資料庫的任何部分上線之前,所有的資料都必須復原到一致的位置;此時資料庫的所有部分都會回到相同的時間點,而且沒有未認可的交易存在。

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

還原整個資料庫

  1. 在簡單復原模式下進行完整資料庫還原只需要一個或兩個 RESTORE 陳述式,視是否需要還原差異資料庫備份而定。

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

只還原完整資料庫備份

如果也要使用差異資料庫備份,請還原最近一次完整資料庫備份,但不要復原資料庫,然後才還原最近一次差異資料庫備份,並復原資料庫。下圖顯示這項程序。

還原完整和差異資料庫備份

當您要完整還原資料庫時,應該使用一個還原順序。下列範例說明在完整資料庫還原實例中,還原順序的一些關鍵選項。還原順序包含一或多個還原作業,會在一或多個還原階段中移動資料。會省略與這個檔案還原無關的語法和詳細資料。

資料庫會還原到其完整資料庫備份時的狀態。為了清楚起見,建議您在復原資料庫時明確指定 RECOVERY 選項,即使它是預設的。

範例

下列範例首先顯示如何使用 BACKUP 陳述式來建立 AdventureWorks2008R2 資料庫的完整資料庫備份及差異資料庫備份。此範例接著依序還原這些備份。

[!附註]

此範例會從設定復原模式為 SIMPLE 的 ALTER DATABASE 陳述式開始進行。

USE master;
--Make sure the database is using the simple recovery model.
ALTER DATABASE AdventureWorks2008R2 SET RECOVERY SIMPLE;
GO
-- Back up the full AdventureWorks2008R2 database.
BACKUP DATABASE AdventureWorks2008R2 TO DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak' 
  WITH FORMAT;
GO
--Create a differential database backup.
BACKUP DATABASE AdventureWorks2008R2 TO DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak'
   WITH DIFFERENTIAL;
GO
--Restore the full database backup (from backup set 1).
RESTORE DATABASE AdventureWorks2008R2 FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak' 
   WITH FILE=1, NORECOVERY;
--Restore the differential backup (from backup set 2).
RESTORE DATABASE AdventureWorks2008R2 FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak' 
   WITH FILE=2, RECOVERY;
GO

還原完整資料庫備份

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

RESTORE DATABASE <database_name> FROM <backup_device> [ WITH NORECOVERY ]

[!附註]

如果您也要還原差異資料庫備份,請使用 WITH NORECOVERY。

重要事項重要事項

當您將資料庫備份還原至不同的伺服器執行個體時,請參閱<使用備份與還原來複製資料庫>和<在另一個伺服器執行個體上提供可用的資料庫時,管理中繼資料>。

還原差異資料庫備份

用於還原差異資料庫備份的基本 RESTORE 語法為:

RESTORE DATABASE <database_name> FROM <backup_device> WITH RECOVERY

使用 SQL Server 管理物件 (SMO) 還原備份

支援舊版 SQL Server 的備份

在 SQL Server 2008 中,您可以還原使用 SQL Server 2000、SQL Server 2005 或 SQL Server 2008 所建立的資料庫備份。但是,SQL Server 2008 無法還原使用 SQL Server 2000 或 SQL Server 2005 所建立的 mastermodelmsdb 備份。此外,任何舊版 SQL Server 都無法還原 SQL Server 2008 備份。

SQL Server 2008 使用與之前版本不同的預設路徑。因此,若要還原在 SQL Server 2000 或 SQL Server 2005 備份的預設位置中所建立的資料庫,就必須使用 MOVE 選項。如需有關新預設路徑的詳細資訊,請參閱<SQL Server 的預設和具名執行個體的檔案位置>。

[!附註]

如需有關如何將使用 SQL Server 7.0 或舊版建立的資料庫升級至 SQL Server 2005 的詳細資訊,請參閱<複製 SQL Server 7.0 或舊版的資料庫>。