증상
다음과 같은 경우를 생각해 볼 수 있습니다.
-
Microsoft SQL Server 2012 또는 SQL Server 2014을 사용 합니다.
-
주 복제본에서 service broker를 사용 하도록 설정 된 데이터베이스가 있습니다.
-
Service broker를 사용 하도록 설정 된 주 서버에서 데이터베이스를 백업 하 고 보조 서버에서 복원 합니다.
-
기본 및 보조 서버 간에 가용성 그룹을 정의 하는 과정에서 새 가용성 그룹 마법사 또는 명령: ALTER DATABASE <dbname> SET HADR availability group = <agname 을 사용 하 여 가용성 그룹에 데이터베이스에 참가 하려고 합니다>
이 시나리오에서는 SQL Server 오류 로그에 다음과 같은 오류가 기록 됩니다.
{오류: 3449, 심각도: 21, 상태: 1. 데이터베이스 (데이터베이스 ID 1)를 복구 하기 위해 SQL Server를 종료 해야 합니다. 데이터베이스가 종료 될 수 없는 사용자 데이터베이스 이거나 시스템 데이터베이스입니다. SQL Server를 다시 시작 합니다. 다른 시작 후 데이터베이스가 복구 되지 않으면 서버 종료로 인해 복구 또는 restoreSQL 추적이 중지 되었습니다. 추적 ID = ' 1 '입니다. 이 메시지는 정보 제공 용입니다. 사용자 작업은 필요 하지 않습니다.}
원인
이 문제는 service broker 사용 데이터베이스를 백업 하 고 보조 서버에 복원 하는 경우 복원 된 데이터베이스의 service broker를 사용할 수 없기 때문에 발생 합니다. 데이터베이스는 내부적으로 서비스 브로커 id를 계속 유지 합니다. 보조 서버에서 복원 된 데이터베이스를 가용성 그룹에 추가 하면 service broker를 사용할 수 있습니다. 가용성 데이터베이스에서 동일한 GUID가 감지 되 고 다음 오류가 발생 합니다 (자동). 9772 ""<dbname>"데이터베이스의 Service broker는 동일한 ID를 사용 하는 service broker가 이미 있으므로 사용할 수 없습니다. 이렇게 하면 데이터베이스에서 가용성 그룹에 참가 하는 동안 3449 오류가 발생 하 고 SQL server가 예기치 않게 종료 됩니다.
해결 방법
이 문제는 다음 SQL Server 누적 업데이트에서 처음 수정 되었습니다.
SQL Server 2014 누적 업데이트 1 /en-us/help/2931693
SQL Server 2012 SP1 용 누적 업데이트 9 /en-us/help/2931078
각각의 새로운 새 누적 업데이트에는 이전 누적 업데이트에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server에 대 한 최신 누적 업데이트를 확인 하세요.
상태
Microsoft는 "적용 대상" 절에 나열한 제품에서 이 문제를 확인했습니다.