이 핫픽스를 적용한 후에는 512바이트 물리적 섹터 크기가 있는 모든 서버 또는 복제본에서 추적 플래그 1800을 시작 매개 변수로 사용하도록 설정하고 다시 시작해야 이 핫픽스가 올바르게 작동합니다.
증상
다음과 같은 경우를 생각해 볼 수 있습니다.
-
Microsoft SQL Server AlwaysOn 가용성 그룹 또는 Logshipping 기능을 사용하도록 설정합니다.
-
AG(AlwaysOn 가용성 그룹)에 기본 및 보조 복제본(replica) 로그 파일을 저장하는 디스크의 섹터 크기는 다릅니다. 또는 Logshipping 환경에서는 Logshipping 주 서버 및 Logshipping 보조 서버에 대한 로그 파일을 저장하는 디스크의 섹터 크기가 다릅니다. 예는 다음과 같습니다.
-
기본 복제본(replica) 로그 파일은 섹터 크기가 512바이트인 디스크에 있습니다. 그러나 보조 복제본(replica) 로그 파일은 섹터 크기가 4KB(KB)인 디스크에 있습니다.
-
기본 복제본(replica) 로그 파일은 섹터 크기가 512바이트인 온-프레미스 로컬 시스템에 있습니다. 그러나 보조 복제본(replica) 섹터 크기가 4KB(Windows Azure Storage 디스크)인 Windows Azure Storage 디스크에 있습니다.
-
이 시나리오에서는 다음 오류 메시지가 SQL Server 오류 로그에 기록됩니다. 서버를 다시 시작하기 전에 보조 데이터베이스에 적용되지 않은 로그가 있는 경우 다시 시작한 후 잠시 동안 오류 메시지가 계속될 수 있습니다.
동기 IO로 대체해야 하는 X 잘못 정렬된 로그 IO가 있습니다. 현재 IO가 파일에 있습니다....
또한 AG 또는 Logshipping 동기화는 동기 I/O로 인해 매우 느리게 실행됩니다. 보조 복제본(replica) Windows Azure Storage에 있는 경우 동기화 프로세스를 완료하는 데 예상보다 훨씬 오래 걸립니다.
참고 이 문제는 섹터 크기가 4KB인 새 드라이브와 512바이트 섹터 크기의 이전 드라이브를 모두 사용할 때 발생합니다. 새 드라이브에 대한 자세한 내용은 SQL Server - 새 드라이브 4K 섹터 크기 및 SQL Server-스토리지 공간/VHDx 및 4K 섹터 크기 사용을 참조하세요.
해결 방법
이 문제는 다음과 같은 SQL Server 누적 업데이트에서 처음 해결되었습니다.
2014년 SQL Server 누적 업데이트 5 /en-us/help/3011055
SQL Server 2012 SP2 /en-us/help/3002049 대한 누적 업데이트 3
SQL Server 2012 SP1 /en-us/help/3002044 대한 누적 업데이트 13
핫픽스를 적용하고 섹터 크기가 512바이트인 디스크에서 실행되는 모든 서버 복제본에서 시작 매개 변수로 추적 플래그 1800을 사용하도록 설정하면 다음 파일의 크기가 약간 증가합니다.
-
트랜잭션 로그 파일
-
로그 백업
또한 다음 메시지가 주 서버의 SQL Server 오류 로그에 기록됩니다.
데이터베이스 '<데이터베이스 이름>'에 대한 로그의 꼬리는 4096바이트의 새 섹터 크기와 일치하도록 다시 작성됩니다.
이 메시지는 안전하게 무시할 수 있는 정보 메시지입니다.
SQL Server 대한 각각의 새로운 누적 업데이트에는 이전 누적 업데이트에 포함된 모든 핫픽스 및 모든 보안 수정 사항이 포함됩니다. SQL Server 대한 최신 누적 업데이트를 참조하세요.
해결 방법
이 문제를 해결하려면 대상의 트랜잭션 로그 파일을 물리적 섹터당 바이트가 512바이트로 설정된 드라이브로 이동합니다.
상태
Microsoft는 "적용 대상" 절에 나열한 Microsoft 제품에서 이 문제를 확인했습니다.
추가 정보
모범 사례로 모든 복제본(로그 파일을 호스트하는 모든 디스크)의 모든 디스크 크기가 동일한지 확인합니다. 보조 데이터베이스의 물리적 섹터가 512바이트이고 주 섹터 크기가 4KB인 혼합 환경에서는 TF 1800을 512바이트 물리적 섹터 크기를 가진 모든 서버 또는 복제본에서 시작 플래그로 사용해야 합니다. 이렇게 하면 진행 중인 로그 만들기 형식이 4KB 섹터 크기를 사용합니다.
SQL Server 더 큰 섹터 크기에서 작동하는 방법에 대한 자세한 내용은 지원 블로그의 다음 게시물을 참조하세요.
SQL Server–스토리지 공간/VHDx 및 4K 섹터 크기
Fsutil 명령 프롬프트 유틸리티를 사용하여 물리적 섹터당 바이트 값을 확인할 수 있습니다. 이 매개 변수가 출력에 표시되지 않으면 KB 아티클에지정된 핫픽스 982018 적용해야 합니다.
가지고 있는 드라이브의 종류를 확인하려면 다음 단계를 수행합니다.
-
관리자 권한 명령 프롬프트에서 다음 명령을 실행합니다.
Fsutil fsinfo ntfsinfo x: 참고 x 자리 표시자는 확인 중인 드라이브를 나타냅니다.
-
섹터 당 바이트 및 물리적 섹터당 바이트 값을 사용하여 가지고 있는 드라이브의 종류를 결정합니다. 이렇게 하려면 다음 표를 사용합니다.
"섹터당 바이트" 값
"물리적 섹터당 바이트" 값
드라이브 유형
4096
4096
4K 네이티브
512
4096
고급 형식(512E라고도 함)
512
512
512 바이트 네이티브