Sintomi
Considerare lo scenario descritto di seguito:
-
Si Abilita la caratteristica gruppi di disponibilità AlwaysOn in Microsoft SQL Server 2014.
-
Il database AlwaysOn include il tipo di dati CLR (Common Language Runtime) definito dall'utente. Inoltre, lo stesso tipo di dati CLR esiste in più di un database.
-
Si esegue una query che include più database con il tipo definito dall'utente CLR.
In questo scenario si verifica un errore di violazione di Access nella replica secondaria e l'istanza di SQL Server si arresta in modo anomalo con il messaggio seguente nel log degli errori di SQL Server:
2015-02-17 13:07:36.85 spid27s la chiusura del database a causa dell'eccezione 2905 durante l'elaborazione di VLR in fase di commit. 2015-02-17 13:07:36.85 spid27s errore: 3449, gravità: 21, stato: 1.2015-02-17 13:07:36.85 spid27s SQL Server deve essere arrestato per recuperare un database (ID database 2). 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, ripristinare o ripristinare il database.
Inoltre, viene visualizzato il messaggio di errore seguente nel database della replica secondaria e l'errore non verrà andarsene finché non si riavvia SQL Server:
Msg 3961, livello 16, stato 1, transazione di isolamento linea 3Snapshot non riuscito nel database "<Databasename>" perché l'oggetto a cui l'istruzione ha eseguito l'accesso è stato modificato da un'istruzione DDL in un'altra transazione simultanea dall'inizio della transazione. Non è consentito perché i metadati non sono versione. Un aggiornamento simultaneo ai metadati può determinare un'incongruenza se mescolato con l'isolamento dello snapshot.
Risoluzione
Informazioni sull'aggiornamento cumulativo
Il problema è stato risolto per la prima volta nel seguente aggiornamento cumulativo di SQL Server.
Ogni nuovo aggiornamento cumulativo per SQL Server contiene tutti gli hotfix e tutti gli aggiornamenti della sicurezza inclusi nell'aggiornamento cumulativo precedente. È consigliabile scaricare e installare gli aggiornamenti cumulativi più recenti per SQL Server:
Informazioni sull'aggiornamentoPer risolvere il problema, applicare l'aggiornamento KB 3043788: un pacchetto di aggiornamento hotfix su richiesta è disponibile per SQL Server 2014.
Stato
Microsoft ha confermato che questo problema si verifica nei prodotti elencati nella sezione "Si applica a".