다음을 통해 공유


SQL Server에서 메모리 최적화 파일 그룹을 사용하여 데이터베이스를 복원할 때 오류 3156

이 문서에서는 SQL Server에서 메모리 최적화 파일 그룹이 있는 데이터베이스를 복원하려고 할 때 발생하는 3156 오류에 대한 해결 방법을 제공합니다.

적용 대상: SQL Server

증상

SQL Server에서 메모리 최적화 파일 그룹이 있는 데이터베이스를 복원하려고 하면 다음 오류 메시지가 표시됩니다.

Msg 3156, Level 16, State 6, Line 1
'데이터베이스 파일' 파일을 '<Driver:\Folder Path>\<<Database Folder>'로 복원할 수 없습니다.><> WITH MOVE를 사용하여 올바른 파일 위치를 확인하십시오.

원인

데이터베이스 복원 과정에서 SQL Server 데이터베이스 엔진 메모리 최적화 파일 그룹에 대한 폴더를 만듭니다. 이 문제는 동일한 폴더 경로에 이름이 같은 폴더가 이미 있고 SQL Server 또는 다른 프로세스에서 폴더를 사용하는 경우에 발생합니다.

해결 방법

데이터베이스를 복원할 때 다른 폴더 이름 또는 다른 폴더 경로를 사용합니다.

스크립트 예제

  • 파일 그룹을 사용하여 데이터베이스를 만드는 스크립트 예제

    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
    
  • 데이터베이스 복원의 스크립트 예제

    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