이 문서에서는 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
키워드는 복원 프로세스가 오류 없이 완료되도록 합니다.