SQL 2008 R2 Sp1 적용과 9013 오류

  • 포맷 섹터 크기에 따른 오류

 

  • Version : SQL Server 2008R2 SP1

 

최근 디스크의 포맷 방식이 변화하고 있다고 한다. SQL Server를 운영할 때 기존의 포맷과 다른 섹터크기의 포맷을 사용하면 어떻게 될까?

 

오류에 대해서 살펴보기 전에 다음 포스트를 참고하여 포맷이 어떤 방향으로 변하는지 트렌드를 알아 보자.

 

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

 

SQL Server 2008R2 SP1에서 512바이트의 동적 공간 디스크 드라이브를 더 큰 물리적 섹터를 수용 할 수 있도록 업데이트 했다. 이는 일반적으로 4K의 물리적 섹터 크기 드라이브이며 SQL 2008R2 트랜잭션 로그 코드는 동적으로 다양한 분야의 구성을 수용하기 위해 제시된 물리적 섹터 크기로 조정 된다.

 

포맷된 섹터 크기(데이터베이스가 생성된 디스크의 물리적 섹터 크기)는 데이터베이스의 메타데이터에 저장하고 데이터베이스를 다시 시작할 때 ( recovered/online…) 우리는 로그 파일에 기록된 데이터가 이 형식의 섹터크기 경계에 정렬되어 있는지 확인 한다. 데이터가 경계선과 맞지 않다면 에러로그에 오류 메시지를 기록 한다.

ErrorNum

9013

ErrorMessage

The tail of the log for database %ls is being rewritten to match the new sector size of %d bytes. %d bytes at offset %I64d in file %ls will be written

 

SQL Server 2008R2 SP1 기반의 빌드된 SQL Server에 적용후 재시작 하였을 때 master, msdb.model database 에서 발생한다.

 

다음 그림은 masterlog.ldf의 예이다. SQL Server는 4K의 논리적 섹터크기를 가지고 있지만 디스크는 512 바이트 섹터를 사용한다.

 

SQL Server 2008R2 SP1에서 우리는 512바이트의 물리적 섹터를 감지하고 우리의 쓰기 경계로 사용한다. 이전 버전의 포맷(논리적) 섹터 크기를 사용한다. 예를 들어 우리는 지금 1,2섹터를 쓸 수 있다. SQL Server를 다시 시작할 때 SQL 2008R2 SP1 로그 파일은 메타데이터(4K)에 선택되어 있고 정렬되어 있지 않아 경고가 발생한다. 나머지 6섹터는 빈 데이터로 기록하여 4K 경계로 정렬한다. 그러나 로그 적용에 기록 할 때 다시 512바이트 경계로 기록하고 재시작시 위의 동작을 반복 한다.

 

이것은 데이터베이스의 위험이 되지는 않는다. SQL Server는 섹터 정렬 경계에 쓰고 그냥 섹터 크기의 논리적 및 물리적 불일치는 시작 메시지의 잡음 정도이다.

추가로 파티션 및 디스크 할당에 대해서 다음 포스트를 참고하면 좋을 듯 하다.

  • 파티션 오프셋과 SQL Server에 대한 디스크 할당 단위 크기 :

http://sqlmvp.kr/140173933247

 

 

[참고자료]

http://sqlmvp.kr/140173933247

 

 

 



강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 32239
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 16380
1894 SQL Server에서 Drop 및 Delete 사용자 찾기 jevida(강성욱) 2016.10.12 1701
1893 SQL Server 트랜잭션 로그 읽기 jevida(강성욱) 2016.10.12 2275
1892 MaxBCPThreads에 따른 BCP 병렬출력 jevida(강성욱) 2016.10.11 1120
1891 확장이벤트와 dm_os_wait_stats 대기유형 매핑 jevida(강성욱) 2016.10.11 1958
1890 장기 트랜잭션 확인 및 경고 설정 jevida(강성욱) 2016.10.11 1523
1889 SQL 데이터 수집툴 DiagManager 사용법 jevida(강성욱) 2016.10.11 1381
1888 Windows Server 2012 R2 그룹 관리 서비스 계정 및 SQL 서버 jevida(강성욱) 2016.10.11 1886
1887 Kerbros 구성 관리자 툴 jevida(강성욱) 2016.10.11 1214
1886 SQL Server Geography 및 Geometory 데이터 형식 jevida(강성욱) 2016.10.11 2710
1885 SQL Server를 이용한 신용카드 보안 -조직이 PCI DSS 준수를 달성 하기 위한 요건 jevida(강성욱) 2016.10.11 1427
1884 TDE 암호화 사용하기 jevida(강성욱) 2016.10.11 3765
1883 SQL Server 암호화 하기 jevida(강성욱) 2016.10.11 2883
1882 의도하지 않은 분산트랜잭션 사용 jevida(강성욱) 2016.10.11 968
1881 Affinity I/O Mask jevida(강성욱) 2016.10.11 1225
1880 LPE_BATCH 스핀락 jevida(강성욱) 2016.10.11 923
1879 SQL Server 17953 오류 jevida(강성욱) 2016.10.11 1061
1878 SQL 연결 18056 오류 jevida(강성욱) 2016.10.11 1472
» SQL 2008 R2 Sp1 적용과 9013 오류 - 포맷 섹터 크기에 따른 오류 jevida(강성욱) 2016.10.11 2023
1876 JDBC 로깅 파일 위치 설정 jevida(강성욱) 2016.10.11 1003
1875 NUMA Node 메모리 블록 jevida(강성욱) 2016.10.11 1085





XE Login