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

適用於:SQL Server

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

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

重要

建議您不要附加或還原來源不明或來源不受信任的資料庫。 這些資料庫可能包含惡意程式碼,因此可能執行非預期的 Transact-SQL 程式碼,或是修改結構描述或實體資料庫結構,而造成錯誤。 使用來源不明或來源不受信任的資料庫之前,請先在非實際執行伺服器的資料庫上執行 DBCC CHECKDB ,同時檢查資料庫中的程式碼,例如預存程序或其他使用者定義程式碼。

本主題內容:

注意

如需舊版 SQL Server 備份支援的相關資訊,請參閱 RESTORE (Transact-SQL) 的<相容性支援>一節。

簡單復原模式下的資料庫備份概觀

在簡單復原模式下進行完整資料庫還原只需要一個或兩個 RESTORE 陳述式,視是否想要還原差異資料庫備份而定。 如果您只使用完整資料庫備份,則只需要還原最近的備份,如下圖所示。

Restoring only a full database backup

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

Restoring full and differential database backups

注意

若您想將資料庫備份還原至不同的伺服器執行個體,請參閱 使用備份與還原複製資料庫

基本 Transact-SQL RESTORE 語法

用於還原完整資料庫備份的基本 Transact-SQLRESTORE 語法為:

RESTORE DATABASE database_name FROM backup_device [ WITH NORECOVERY ]

注意

若您也想還原差異資料庫備份,請使用 WITH NORECOVERY。

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

RESTORE DATABASE database_name FROM backup_device WITH RECOVERY

範例 (Transact-SQL)

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

這個範例顯示在完整資料庫還原實例中,還原順序的一些關鍵選項。 「還原順序」 (Restore sequence) 包含一個或多個還原作業,會在一個或多個還原階段中移動資料。 會省略與這個檔案還原無關的語法和詳細資料。 為了清楚起見,建議您在復原資料庫時明確指定 RECOVERY 選項,即使它是預設的。

注意

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

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

相關工作

還原完整資料庫備份

還原差異資料庫備份

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

另請參閱

RESTORE (Transact-SQL)
BACKUP (Transact-SQL)
sp_addumpdevice (Transact-SQL)
完整資料庫備份 (SQL Server)
差異備份 (SQL Server)
Backup Overview (SQL Server)
還原和復原概觀 (SQL Server)