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

適用於:SQL Server

在完整資料庫還原中,目標是還原整個資料庫。 在還原期間,整個資料庫為離線狀態。 在資料庫的任何部分能夠上線之前,所有資料都必須先復原到一致的時間點,使資料庫的所有部分都位於相同的時間點,且不存在任何未提交的交易。

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

重要

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

關於早期版本 SQL Server 備份的支援資訊,請參閱 (Transact-SQL) 的「相容性支援」章節RESTORE。

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

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

只還原完整資料庫備份

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

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

注意

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

Transact-SQL RESTORE 基本語法

Transact-SQLRESTORE 用於恢復完整資料庫備份的基本語法如下:

RESTORE DATABASE database_name 來自 backup_device 【無復原】

注意

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

還原資料庫備份的基本 RESTORE 語法如下:

RESTORE DATABASE database_namebackup_device與康復

範例 (Transact-SQL)

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

這個範例顯示在完整資料庫還原實例中,還原順序的一些關鍵選項。 「還原順序」 (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) 還原備份