KB3009974 - 수정: SQL SERVER AG 및 Logshipping 환경에서 디스크의 기본 및 보조 복제본(replica) 로그 파일에 대한 섹터 크기가 서로 다른 경우 동기화 속도가 느려짐

적용 대상
SQL Server 2014 Developer SQL Server 2014 Enterprise SQL Server 2014 Standard SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2016 Enterprise Core SQL Server 2016 Standard SQL Server 2016 Developer SQL Server 2016 Enterprise SQL Server 2016 Web SQL Server 2016 Express

참고

이 핫픽스를 적용한 후에는 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 디스크)에 있습니다.

이 시나리오에서는 다음 오류 메시지가 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 대한 각각의 새로운 누적 업데이트에는 이전 누적 업데이트에 포함된 모든 핫픽스 및 모든 보안 수정 사항이 포함됩니다. SQL Server 대한 최신 누적 업데이트를 참조하세요.

해결 방법

이 문제를 해결하려면 대상의 트랜잭션 로그 파일을 물리적 섹터당 바이트가 512바이트로 설정된 드라이브로 이동합니다.

상태

Microsoft에서 이는 "적용 대상" 섹션에 나열된 Microsoft 제품에서의 문제임을 확인했습니다.

추가 정보

모범 사례로 모든 복제본(로그 파일을 호스트하는 모든 디스크)의 모든 디스크 크기가 동일한지 확인합니다. 보조 데이터베이스의 물리적 섹터가 512바이트이고 주 섹터 크기가 4KB인 혼합 환경에서는 TF 1800을 512바이트 물리적 섹터 크기를 가진 모든 서버 또는 복제본에서 시작 플래그로 사용해야 합니다. 이렇게 하면 진행 중인 로그 만들기 형식이 4KB 섹터 크기를 사용합니다.

SQL Server 더 큰 섹터 크기로 작동하는 방법에 대한 자세한 내용은 지원 블로그의 다음 게시물을 참조하세요.

SQL Server–스토리지 공간/VHDx 및 4K 섹터 크기

Fsutil 명령 프롬프트 유틸리티를 사용하여 물리적 섹터당 바이트 값을 확인할 수 있습니다. 이 매개 변수가 출력에 표시되지 않으면 KB 아티클에 지정된 핫픽스 982018 적용해야 합니다.

가지고 있는 드라이브의 종류를 확인하려면 다음 단계를 수행합니다.

  1. 관리자 권한 명령 프롬프트에서 다음 명령을 사용합니다.
    Fsutil fsinfo ntfsinfo x: x 자리 표시자는 확인 중인 드라이브를 나타냅니다.

  2. 섹터 당 바이트물리적 섹터당 바이트 값을 사용하여 가지고 있는 드라이브의 종류를 결정합니다. 이렇게 하려면 다음 표를 사용합니다.

    "섹터당 바이트" 값 "물리적 섹터당 바이트" 값 드라이브 유형
    4096 4096 4K 네이티브
    512 4096 고급 형식(512E라고도 함)
    512 512 512 바이트 네이티브