1. 程式人生 > 實用技巧 >SQL SERVER差異備份還原

SQL SERVER差異備份還原

本文測試恢復分開的完整備份和差異備份檔案。

完整備份檔案ssms恢復沒有問題,但差異備份恢復始終報錯。以下是微軟幫助文件中示例:

--微軟幫助文件
RESTORE DATABASE AdventureWorks2008R2
   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak'
   WITH FILE = 6
      NORECOVERY;
RESTORE DATABASE AdventureWorks2008R2
   FROM DISK = 'Z:\SQLServerBackups\AdventureWorks2008R2.bak
' WITH FILE = 9 RECOVERY;

WITH FILE = 6 處會報錯(後同),可能是針對同一檔案中包含多個備份情況。但說明了關鍵一點,即:

/*

第1步,還原完整備份,必須使用 WITH NORECOVERY ,不對資料庫執行操作,不回滾事務,使資料庫處於【正在還原...】狀態,
此時資料庫不可使用,但可繼續還原其它檔案; 第2步,還原差異備份,使用 WITH RECOVERY,回滾未提交事務,使資料庫恢復到可使用狀態。
*/

瞭解了這一點,即使使用ssms進行差異備份還原操作,也可以正常還原。

另附示例,使用其它資料庫備份,恢復新資料庫到指定檔案位置:

--使用 BACKUP 和 RESTORE 複製資料庫
BACKUP DATABASE AdventureWorks2008R2 
   TO AdventureWorks2008R2Backups ;

RESTORE FILELISTONLY 
   FROM AdventureWorks2008R2Backups ;

RESTORE DATABASE TestDB 
   FROM AdventureWorks2008R2Backups 
   WITH MOVE 'AdventureWorks2008R2_Data' TO 'C:\MySQLServer\testdb.mdf',
   MOVE '
AdventureWorks2008R2_Log' TO 'C:\MySQLServer\testdb.ldf';