Problembeschreibung
Stellen Sie sich folgendes Szenario vor:
-
Sie aktivieren das Feature AlwaysOn-Verfügbarkeitsgruppen in Microsoft SQL Server 2014.
-
Die AlwaysOn-Datenbank verfügt über einen benutzerdefinierten CLR (Common Language Runtime)-Datentyp (UDT). Darüber hinaus ist derselbe CLR-UDT in mehr als einer Datenbank vorhanden.
-
Sie führen eine Abfrage aus, die mehrere Datenbanken mit dem CLR-UDT umfasst.
In diesem Szenario tritt ein Zugriffsverletzungsfehler auf dem sekundären Replikat auf, und die Instanz von SQL Server stürzt mit der folgenden Meldung im SQL Server-Fehlerprotokoll ab:
2015-02-17 13:07:36.85 spid27s Herunterfahren der Datenbank aufgrund von Ausnahme 2905 während der VLR-Verarbeitung bei Commit. 2015-02-17 13:07:36.85 spid27s-Fehler: 3449, Schweregrad: 21, Bundesland: 1.2015-02-17 13:07:36.85 spid27s SQL Server muss beendet werden, um eine Datenbank wiederherzustellen (Datenbank-ID 2). Bei der Datenbank handelt es sich entweder um eine Benutzerdatenbank, die nicht heruntergefahren werden konnte, oder um eine Systemdatenbank. Starten Sie SQL Server neu. Wenn die Datenbank nach einem anderen Start nicht wiederhergestellt werden kann, reparieren oder wiederherstellen Sie die Datenbank.
Darüber hinaus erhalten Sie die folgende Fehlermeldung in ihrer sekundären Replikatdatenbank, und der Fehler wird erst nach dem Neustart von SQL Server entfernt:
Msg 3961, Ebene 16, Zustand 1, fehlerhafte 3Snapshot-Isolations Transaktion in der Datenbank "<DatabaseName>", weil das Objekt, auf das die Anweisung zugreift, von einer DDL-Anweisung in einer anderen parallelen Transaktion seit dem Anfang dieser Transaktion geändert wurde. Es ist nicht zulässig, da die Metadaten nicht versioniert sind. Eine gleichzeitige Aktualisierung von Metadaten kann zu Inkonsistenzen führen, wenn Sie mit der Snapshotisolation kombiniert werden.
Fehlerbehebung
Informationen zur kumulativen Aktualisierung
Das Problem wurde zuerst im folgenden kumulativen Update von SQL Server behoben.
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Wir empfehlen, die neuesten kumulativen Updates für SQL Server herunterzuladen und zu installieren:
Informationen zum UpdateUm dieses Problem zu beheben, wenden Sie das Update KB 3043788: ein auf-Anforderung-Hotfix-Update-Paket ist für SQL Server 2014 verfügbar.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.