SQL Server/SQL Server Tip

ATTACH DATABASE 오류 1314

SungWookKang 2015. 7. 23. 09:10
반응형

ATTACH DATABASE 오류 1314

  • Version : SQL Server 2005, 2008, 2008R2, 2012
  • Windows Vista, 7, Server 2008, 2008R2

 

SQL Server에서 Database를 ATTACH 할 때 발생하는 1314 오류에 대해서 알아보자.

 

이 포스트는 CSS SQL Server Engineers 팀 블로그에 게시된 내용이며 필자가 읽고 이해한 내용을 바탕으로 정리하였다. 번역의 오류나 기술적 오류가 있음을 미리 알려둔다. 자세한 내용은 원문을 참고한다.

 

1314 오류는 SQL Server 코드 오류이며 attach database 할 때 발생 한다. 데이터베이스 파일을 열 때 SQL Server 는 I/O 성능을 개선하는데 도움을 주기 위해 SetFileIoOverlappedRange를 호출 한다. SQL Server에서 데이터베이스를 생성 할 때 Lock Pages in Memory를 활성화 하는데 이 때 SetFileIoOverlappedRange에 명시된 메모리 범위의 첫 번째 바이트가 손상 될 수 있다.

 

이것은 일반적으로 SQL Server 서비스 계정으로 페이지 잠금을 요청 할 때 이루어 진다. 윈도우에 대한 권한을 보유하지 못하였을 때 SQL Server는 아래와 같은 오류를 기록 한다.

 

SQL Server 2005에서 attach dbatabse 할 경우 파일을 열 때 보안 검증을 위해 사용자 가장을 하여 SetFileIoOverlappedRange 를 호출 한다. 이 때 1314 오류가 발생할 수도 있다.

 

SQL Server에서 ALTER DATABASE OFFLINE / ONLINE 그리고 데이터베이스 파일을 열 때에도 서비스 계정으로 SetFileIoOverlappedRange에 대해 성공적으로 완료 할 수 있다.

 

이 문제를 방지하기 위해선 다음 문서를 참고 한다.

http://blogs.msdn.com/b/psssql/archive/2012/03/20/setfileiooverlappedrange-can-lead-to-unexpected-behavior-for-sql-server-2008-r2-or-sql-server-2012-denali.aspx

 

 

[참고자료]

http://blogs.msdn.com/b/psssql/archive/2012/03/20/setfileiooverlappedrange-can-lead-to-unexpected-behavior-for-sql-server-2008-r2-or-sql-server-2012-denali.aspx

 

 

2013-10-17 / 강성욱 / http://sqlmvp.kr

      

 

 

반응형