가용성 그룹 데이터베이스가 동기화되지 않음 / 복구 보류 모드에서 멈춤


12

SQL Server 2014 SP1 (12.0.4422.0) 인스턴스에서 스토리지를 업그레이드하는 동안 SQL Server를 다시 시작한 후 보조 데이터베이스에서 두 데이터베이스가 시작되지 않는 문제가 발생했습니다. 새로운 (더 큰) SSD를 설치하고 데이터 파일을 새 볼륨에 복사하는 동안 서버가 몇 시간 동안 오프라인 상태였습니다. SQL Server를 다시 시작하면 두 데이터베이스를 제외한 모든 데이터베이스가 다시 동기화를 시작했습니다. 다른 두 개는 SSMS에서 동기화되지 않음 / 복구 보류 중으로 표시되었습니다 .

SSMS가 동기화되지 않음 / 복구 보류

이전에 비슷한 동기화되지 않음 / 복구 중 문제 가 있었으므로 가용성 그룹-> 가용성 데이터베이스 섹션에서 상태를 확인했지만 빨간색 X를 표시했습니다.

가용성 그룹, 가용성 데이터베이스

심지어 데이터 이동을 일시 중지하려고하면 오류 메시지가 생성되었습니다.

가용성 그룹 'SENetwork_AG'의 가용성 복제본 'ny-sql03'에있는 데이터베이스 'StackExchange.Bycycles.Meta'에서 데이터 이동을 일시 중지하지 못했습니다. (Microsoft.SqlServer.Smo)

추가 정보 : transact-SQL 문 또는 배치를 실행하는 중에 예외가 발생했습니다. (Microsoft.SqlServer.ConnectionInfo)

파일에 액세스 할 수 없거나 메모리 또는 디스크 공간이 부족하여 'StackExchange.Bycycles.Meta'데이터베이스를 열 수 없습니다. 자세한 내용은 SQL Server 오류 로그를 참조하십시오. (Microsoft Sql Server, 오류 : 945)

확인한 파일이 있고 권한 문제가 없습니다. 또한 관리의 SSMS에서 SQL Server 로그를 확인했지만 복구 보류 중이거나 두 데이터베이스의 문제에 대해서는 아무것도 보지 못했습니다.

도움을 구 하면서 데이터베이스를 복원해야한다는 두 가지 다른 기사 를 찾았습니다 .

데이터베이스가 복구 보류 상태에있을 때 보조 서버에서 데이터 복제를 재개 할 수있는 방법이 있습니까?

답변:


16

서버가 잠시 오프라인 상태 였으므로 기본 서버의 복구 창을 벗어난 것으로 생각했습니다. 우리는 데이터베이스에 최신 트랜잭션 로그적용 하여 복구 프로세스가 시작되는지 확인 하기로 결정했습니다 .

-- Remove database from Availability Group:    
Alter Database [StackExchange.Bicycles.Meta] SET HADR OFF;

-- Apply t-logs to catch up. This can be done manually in SSMS or via:
RESTORE LOG [StackExchange.Bicycles.Meta] FROM DISK = '\\ny-back01\backups\SQL\_Trans\SENetwork_AG\StackExchange.Bicycles.Meta\StackExchange.Bicycles.Meta_LOG_20160217_033201.trn' WITH NORECOVERY;

-- Re-join database to availability group
ALTER DATABASE [StackExchange.Bicycles.Meta] SET HADR AVAILABILITY GROUP = [SENetwork_AG];
ALTER DATABASE [StackExchange.Bicycles.Meta] SET HADR RESUME;

두 데이터베이스 모두에 대해 보조 서버에서 위를 실행 한 후 다시 동기화를 시작할 수있었습니다.

업데이트 : 수동 AG 장애 조치 후 새 기본 복제본의 데이터베이스 중 하나가 동기화되지 않음 모드 ( SQL Server를 다시 시작한 후 동기화되지 않음 / 복구 보류 로 전환) 에서 멈춤 과 비슷한 문제가 발생 하여 위의 단계를 수행하여 문제를 해결했습니다. 문제도 있습니다.


1

기본 노드에서 AAG에서 DB를 제거하고 전체 백업 및 트랜잭션 백업을 수행하고이 두 백업을 보조 노드의 DB에서 복원 한 다음 DB를 AAG에 다시 추가 할 수 있습니다. 이때 보조 노드 DB가 동기화되지 않고 있음을 나타낼 수 있지만, 두 번째 답변에서 제안 된 사항을 수행하는 것만 (벌칙을 매수 -2), 보조 노드를 기본 노드로 이동하면 문제가 해결됩니다.


-2

다음에는 기본을 '동기화하지 않음'보조로 장애 조치 한 후 다시 시도하십시오. 보조는 이제 동기화되어야합니다.


3
이것은 끔찍한 제안입니다.
arcain

이 제안은 데이터 손실을 초래할 수 있습니다
Aleksey Vitsko
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.