訓練
在 SQL Server 中使用記憶體優化檔案群組還原資料庫時發生錯誤 3156
本文提供 3156 錯誤的因應措施,當您嘗試還原 SQL Server 中具有記憶體優化檔案群組的資料庫時,就會發生此錯誤。
適用於:SQL Server
嘗試還原 SQL Server 中具有記憶體優化檔案群組的資料庫時,您會收到下列錯誤訊息:
訊息 3156,層級 16,狀態 6,第 1 行
檔案 '<Database File>' 無法還原至 '<Driver>:\<Folder Path>\<Database Folder>'。 請使用 WITH MOVE 來識別該檔案的有效位置。
在資料庫還原過程中,SQL Server 資料庫引擎 會建立記憶體優化檔案群組的資料夾。 如果相同資料夾路徑中已經有同名的資料夾,而且 SQL Server 或其他進程會使用資料夾,就會發生此問題。
還原資料庫時,請使用不同的資料夾名稱或不同的資料夾路徑。
使用檔案群組建立資料庫的腳本範例
SQLUSE [master]; GO CREATE DATABASE Contoso ON PRIMARY ( NAME = 'Contoso_Primary', FILENAME= 'C:\SQLserver\Contoso\Contoso_data.mdf', SIZE=4MB, MAXSIZE=10MB, FILEGROWTH=1MB), FILEGROUP Contoso_FG1 ( NAME = 'Contoso_FG1', FILENAME = 'C:\SQLserver\Contoso\Contoso_FG1.ndf', SIZE = 1MB, MAXSIZE=10MB, FILEGROWTH=1MB) ALTER DATABASE Contoso ADD FILEGROUP [Contoso_FG1] CONTAINS MEMORY_OPTIMIZED_DATA GO
資料庫還原的腳本範例
SQLUSE [master] GO RESTORE DATABASE [Contoso] FROM DISK = N'C:\backup\compress\Contoso\Contoso.bak' WITH FILE = 1, MOVE N'Contoso_data' TO N'C:\SQLserver\Contoso\Contoso_data.mdf', MOVE N'Contoso_log' TO N'C:\SQLServer\Contoso\Contoso_log.ldf', MOVE N'<Database File>' TO N'<Driver>:\<Folder Path>\<Database Folder>', Replace, NOUNLOAD, STATS = 5 GO
注意
<Database Folder>
如果未使用 ,Replace
腳本中的 關鍵詞將確保還原程式已完成,而不會發生錯誤。
其他資源
文件
-
SQL Server 備份和還原作業問題 - SQL Server
本文針對 SQL Server 備份和還原作業問題進行疑難解答,例如作業需要很長的時間,且不同 SQL Server 版本之間發生問題。
-
在 SQL Server 中還原資料庫時,使用 [還原資料庫] 對話方塊的 [選項] 頁面,即可修改還原作業的行為與結果。
-
RESTORE (Transact-SQL) - SQL Server
RESTORE 陳述式可還原利用 BACKUP 命令取得的 SQL 資料庫備份。