증상
Microsoft SQL Server 2012에서 AlwaysOn 가용성 그룹 기능을 사용한다고 가정합니다. 보조 복제본(replica) 연결 액세스를 "읽기 가능"에서 "읽을 수 없음"으로 변경하면 지정된 복제본(replica) 페이지 압축을 사용하는 페이지에서 손상이 발생합니다.
보조 복제본(replica) 이 문제가 발생하는 가용성 데이터베이스는 동기화 다시 실행 단계에서 오류로 인해 복구할 수 없습니다. 보조 복제본(replica) 기본 복제본(replica) 동기화되지 않으며 "SUSPEND_FROM_REDO"의 동기화 상태를 보고합니다. 또한 보조 복제본(replica) 호스트하는 SQL Server 오류 로그에 다음과 같은 오류 메시지가 표시됩니다.
참고
<
날짜><시간> spid<ID> 오류: 17066, 심각도: 16, 상태: 1.
<
날짜><시간> spid<ID> SQL Server Assertion: File: <page.cpp>, line=3898 Failed Assertion = '!pageFull'. 이 오류는 타이밍과 관련이 있을 수 있습니다. 문을 다시 실행한 후에도 오류가 지속되면 DBCC CHECKDB를 사용하여 구조적 무결성을 위해 데이터베이스를 검사 서버를 다시 시작하여 메모리 내 데이터 구조가 손상되지 않도록 합니다.
<
날짜><시간> spid<ID> 오류: 3624, 심각도: 20, 상태: 1.
<
날짜><시간> spid<ID> 시스템 어설션 검사 실패했습니다. 자세한 내용은 SQL Server 오류 로그를 확인합니다. 일반적으로 어설션 실패는 소프트웨어 버그 또는 데이터 손상으로 인해 발생합니다. 데이터베이스 손상을 검사 DBCC CHECKDB를 실행하는 것이 좋습니다. 설치하는 동안 Microsoft에 덤프를 보내기로 합의한 경우 미니 덤프가 Microsoft로 전송됩니다. 최신 서비스 팩 또는 기술 지원의 QFE에서 Microsoft에서 업데이트를 사용할 수 있습니다.
<
날짜><시간> spid<ID> AlwaysOn 가용성 그룹 데이터베이스 '<DataBase 이름>'에 대한 데이터 이동이 일시 중단되었습니다. "시스템"(원본 ID 2; 원본 문자열: 'SUSPEND_FROM_REDO'). 데이터베이스에서 데이터 이동을 다시 시작하려면 데이터베이스를 수동으로 다시 시작해야 합니다. 가용성 데이터베이스를 다시 시작하는 방법에 대한 자세한 내용은 온라인 설명서 SQL Server 참조하세요.
<
날짜><시간> spid<ID> 오류: 3313, 심각도: 21, 상태: 2.
<
날짜><시간> spid<ID> 데이터베이스 'DataBase 이름>'<에서 기록된 작업을 다시 실행하는 동안 로그 레코드 ID(1786:4978584:74)에서 오류가 발생했습니다. 일반적으로 특정 오류는 이전에 Windows 이벤트 로그 서비스에서 오류로 기록됩니다. 전체 백업에서 데이터베이스를 복원하거나 데이터베이스를 복구합니다.
<
날짜><시간> spid<ID> ALTER DB 매개 변수 옵션: RESUME
<
날짜><시간> 데이터베이스 '<DataBase 이름>'에 대한 spid<ID> AlwaysOn 가용성 그룹 데이터 이동이 다시 시작되었습니다. 정보 메시지일 뿐입니다. 사용자 작업은 필요하지 않습니다.
<
날짜><시간> spid<ID> 비정형 트랜잭션은 AlwaysOn 가용성 그룹 상태 변경에 대한 데이터베이스 <DataBase 이름으로> 롤백됩니다. 예상 롤백 완료: 100%. 정보 메시지일 뿐입니다. 사용자 작업은 필요하지 않습니다.
<
날짜><시간> 복제본 ID가 {bbdedecb-f26b-47e9-9e7d-7c22f99edb23}인 가용성 복제본(replica) 보조 데이터베이스 '<DataBase 이름>'에 대해 기본 데이터베이스가 종료된 spid<ID> AlwaysOn 가용성 그룹 연결입니다. 정보 메시지일 뿐입니다. 사용자 작업은 필요하지 않습니다.
<
날짜><시간> spid<ID> 데이터베이스 'DataBase 이름>'<을 시작합니다.
<
날짜><시간> spid<ID> 데이터베이스 '<DataBase 이름>'(13)의 복구가 0% 완료되었습니다(약 781초 남아 있음). 3단계 중 1단계. 정보 메시지일 뿐입니다. 사용자 작업은 필요하지 않습니다.
……
해결 방법
이 문제는 다음과 같은 SQL Server 누적 업데이트에서 처음 해결되었습니다.
SQL Server 2012 SP2에 대한 누적 업데이트 6
SQL Server 2012 SP1의 누적 업데이트 16
SQL Server 대한 누적 업데이트 정보
SQL Server 대한 각각의 새로운 누적 업데이트에는 이전 누적 업데이트에 포함된 모든 핫픽스 및 모든 보안 수정 사항이 포함됩니다. SQL Server 대한 최신 누적 업데이트를 확인하세요.
추가 정보
이전 문제는 보조 복제본(replica) 대한 읽기 액세스가 변경되었을 때 발생할 수 있습니다.
다음 두 가지 방법을 사용하여 보조 복제본(replica) 가용성 데이터베이스의 읽기 액세스를 설정할 수 있습니다.
ALTER AVAILABILITY GROUP 명령을 사용하여 읽기 액세스를 설정합니다.
ALTER AVAILABILITY GROUP [AGName] MODIFY REPLICA ON N'<SRV>' WITH (SECONDARY_ROLE(ALLOW_CONNECTIONS = NO))SSMS(SQL Server Management Studio 개체 탐색기 설정을 변경하여 읽기 액세스를 설정합니다.
- 서버에 연결한 다음 AlwaysOn 가용성 폴더를 엽니다.
- 가용성 그룹 폴더를 엽니다.
- 가용성 그룹을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
- 보조 복제본(replica) 읽기 가능한 보조 속성을 아니요로 변경한 다음 확인을 클릭합니다.
상태
Microsoft에서 이는 "적용 대상" 섹션에 나열된 Microsoft 제품에서의 문제임을 확인했습니다.