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

iSQlServer發表於2009-01-20

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

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

 還原整個資料庫
簡單恢復模式下的完整資料庫還原只涉及一個或兩個 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。
 


如何還原資料庫備份 (Transact-SQL)

如何還原資料庫備份 (SQL Server Management Studio)

如何通過現有的資料庫備份建立新的資料庫 (SQL Server Management Studio)

重要提示:
如果將資料庫備份還原到其他伺服器例項,請參閱通過備份和還原來複制資料庫和當資料庫在其他伺服器例項上可用時管理後設資料。
 


還原差異資料庫備份

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

RESTORE DATABASE database_name FROM backup_device WITH RECOVERY

如何還原差異資料庫備份 (Transact-SQL)

如何還原差異資料庫備份 (SQL Server Management Studio)

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

SqlRestore

 對 SQL Server 早期版本中備份的支援
在 SQL Server 2008 中,可以還原使用 SQL Server 2000、SQL Server 2005 或 SQL Server 2008 建立的資料庫備份。但是,SQL Server 2008 無法還原使用 SQL Server 2000 或 SQL Server 2005 建立的 master、model 和 msdb 備份。此外,任何早期版本的 SQL Server 都無法還原 SQL Server 2008 備份。

SQL Server 2008 使用與早期版本不同的預設路徑。因此,若要還原在 SQL Server 2000 或SQL Server 2005 備份的預設位置建立的資料庫,必須使用 MOVE 選項。有關新預設路徑的資訊,請參閱 SQL Server 的預設例項和命名例項的檔案位置。

注意:
有關如何將使用 SQL Server 版本 7.0 或早期版

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

相關文章