徵狀
當您使用 Microsoft SQL Server 2012 中的 [ 取代 ] 選項從備份還原資料庫時,來自備份資料庫的已還原資料庫的物理檔案名可能會覆寫現有資料庫的物理檔案名。例如,請考慮下列案例:
-
您有兩個 SQL Server 實例(InstanceA 和 InstanceB)。
-
您的資料庫在每個 SQL Server 實例上都有相同的名稱 SQLDB。
-
在 InstanceA 上,SQLDB 資料庫資料檔案名是 DB1_InstanceA .mdf,而記錄檔案名是 DB1_InstanceA .ldf。
-
在 InstanceB 上,SQLDB 資料庫資料檔案名是 DB1_InstanceB .mdf,而記錄檔案名是 DB1_InstanceB .ldf。
-
您嘗試使用 [還原] 命令的 [取代] 選項,從 InstanceB,透過 SQLDB 資料庫從 InstanceA 還原 SQLDB 資料庫的備份。
在這種情況下,InstanceB 上 SQLDB 上的實際檔案名會變更為 DB1_InstanceA .mdf 和 DB1_InstanceA .ldf。
原因
此行為是由 SQL Server 2012 中的設計所導致。
因應措施
若要解決此問題,請不要使用 [還原] 命令的 [搭配取代] 選項。 請改為使用 [搭配 移動 ] 選項。注意: [ 使用移動 ] 選項可提供變更物理檔案名的選項。
其他相關資訊
只有在您第一次使用 [還原] 命令時,才能使用 [成為移動] 選項。 當您嘗試從備份還原資料庫時,SQL Server 會比較資料庫的恢復分叉值。 然後,備份組會根據這些值是否相符,採取下列動作:
-
如果有相符專案,備份組會繼續使用目標資料庫的檔案名。
-
如果值不同,備份組會使用備份組的名稱來取代目標資料庫的物理檔案名。
當您與 [還原] 命令一起使用 [搭配移動] 選項時,會採取下列動作:
-
在目標伺服器上建立新的復原分叉。
-
在下一個還原作業中,來自備份組的復原派生 Id 會與目標伺服器的識別碼相符。
-
與使用 [取代] 選項搭配使用的還原命令會將物理名稱保留在目標伺服器上。
如需 還原 命令的詳細資訊,請參閱 還原(transact-sql)