Sintomi
Considerare lo scenario descritto di seguito:
-
Si usa Microsoft SQL Server 2012 o SQL Server 2014.
-
Si dispone di un database con Service Broker abilitato nella replica primaria.
-
È possibile eseguire il backup del database in un server principale che dispone di Service Broker abilitato e ripristinarlo nel server secondario.
-
Nell'ambito della definizione del gruppo di disponibilità tra i server primari e secondari, è possibile provare a partecipare al gruppo di disponibilità tramite la creazione guidata nuovo gruppo di disponibilità o il comando: ALTER DATABASE <dbname> SET HADR availability group = <AGNAME>
In questo scenario viene registrato il seguente errore nel log degli errori di SQL Server:
{Error: 3449, gravità: 21, stato: 1. SQL Server deve essere arrestato per recuperare un database (ID database 1). Il database è un database utente che non è stato possibile arrestare o un database di sistema. Riavviare SQL Server. Se il database non viene recuperato dopo un altro avvio, il ripristino o la traccia restoreSQL è stata interrotta a causa di un arresto del server. ID traccia =' 1'. Si tratta solo di un messaggio informativo; non è necessaria alcuna azione per l'utente.}
Causa
Il problema si verifica perché se è stato eseguito il backup e il ripristino di un database di Service Broker abilitato nel server secondario, il Service Broker nel database ripristinato non è abilitato. Il database mantiene ancora un ID di Service Broker internamente. Quando si aggiunge il database ripristinato nel server secondario al gruppo di disponibilità, Service Broker è abilitato. Viene rilevato lo stesso GUID nel database di disponibilità e viene generato l'errore seguente: 9772 "il Service Broker nel database"<dbname>"non può essere abilitato perché esiste già un Service Broker abilitato con lo stesso ID". In questo modo viene visualizzato l'errore 3449 quando il database partecipa al gruppo di disponibilità e causa l'arresto imprevisto di SQL Server.
Risoluzione
Il problema è stato risolto per la prima volta nel seguente aggiornamento cumulativo di SQL Server.
Aggiornamento cumulativo 1 per SQL Server 2014 /en-us/help/2931693
Aggiornamento cumulativo 9 per SQL Server 2012 SP1 /en-us/help/2931078
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. Vedere gli ultimi aggiornamenti cumulativi per SQL Server:
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".