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 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 1291
1886 SQL Server Geography 및 Geometory 데이터 형식 jevida(강성욱) 2016.10.11 2540
1885 SQL Server를 이용한 신용카드 보안 -조직이 PCI DSS 준수를 달성 하기 위한 요건 jevida(강성욱) 2016.10.11 1400
1884 TDE 암호화 사용하기 jevida(강성욱) 2016.10.11 3569
1883 SQL Server 암호화 하기 jevida(강성욱) 2016.10.11 2807
1882 의도하지 않은 분산트랜잭션 사용 jevida(강성욱) 2016.10.11 914
1881 Affinity I/O Mask jevida(강성욱) 2016.10.11 1198
1880 LPE_BATCH 스핀락 jevida(강성욱) 2016.10.11 911
1879 SQL Server 17953 오류 jevida(강성욱) 2016.10.11 1038
1878 SQL 연결 18056 오류 jevida(강성욱) 2016.10.11 1392
» SQL 2008 R2 Sp1 적용과 9013 오류 - 포맷 섹터 크기에 따른 오류 jevida(강성욱) 2016.10.11 1934
1876 JDBC 로깅 파일 위치 설정 jevida(강성욱) 2016.10.11 990
1875 NUMA Node 메모리 블록 jevida(강성욱) 2016.10.11 1063
1874 AppDomain unloading 오류 로그 – CLR 오류 jevida(강성욱) 2016.10.11 1223
1873 SQL Server IO and Latch 설명 jevida(강성욱) 2016.10.11 3459
1872 마지막 백업 시간 및 DBCC 확인 [1] jevida(강성욱) 2016.10.08 1637
1871 DMV를 활용한 CPU 트러블슈팅 - Sys.dm_exec_query_stats, sys.dm_os_ring_buffers 활용 [1] jevida(강성욱) 2016.10.08 1963
1870 백업 미디어 세트에 압축 백업 추가하기 jevida(강성욱) 2016.10.08 1512
1869 Collation에 따른 실행계획 변경과 성능 문제 jevida(강성욱) 2016.10.08 1708
1868 SQL Connection Timeout 디버깅 with BizTalk Server jevida(강성욱) 2016.10.08 2355
1867 인스턴스 파일 초기화 활성 jevida(강성욱) 2016.10.08 1759





XE Login