閱讀英文

共用方式為


在 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 或其他進程會使用資料夾,就會發生此問題。

因應措施

還原資料庫時,請使用不同的資料夾名稱或不同的資料夾路徑。

指令碼範例

  • 使用檔案群組建立資料庫的腳本範例

    SQL
    USE [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
    
  • 資料庫還原的腳本範例

    SQL
    USE [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腳本中的 關鍵詞將確保還原程式已完成,而不會發生錯誤。

另請參閱

MSSQLSERVER_3156