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에 대해 성공적으로 완료 할 수 있다.
이 문제를 방지하기 위해선 다음 문서를 참고 한다.
- SetFileIoOverlappedRange Can Lead to Unexpected Behavior for SQL Server 2008 R2 or SQL Server 2012 (Denali)
[참고자료]
- SetFileIoOverlappedRange Can Lead to Unexpected Behavior for SQL Server 2008 R2 or SQL Server 2012 (Denali)
2013-10-17 / 강성욱 / http://sqlmvp.kr
'SQL Server > SQL Server Tip' 카테고리의 다른 글
누락된 인덱스 확인하기 (0) | 2015.07.23 |
---|---|
비클러스터 인덱스 페이지 내용 (0) | 2015.07.23 |
SQL Server 2016 동적 데이터 마스킹 (0) | 2015.07.23 |
SQL Server 2012 Contained Database (0) | 2015.07.23 |
SQL Server 2012 사용자 정의 서버 역할 만들기 - 서버 역할을 지정하여 접근 제어 하기 (0) | 2015.07.23 |