Síntomas
Imagine la siguiente situación:
-
Habilite la característica de grupos de disponibilidad AlwaysOn en Microsoft SQL Server 2014.
-
La base de datos AlwaysOn tiene un tipo de datos definido por el usuario de Common Language Runtime (CLR) (UDT). Además, el mismo UDT de CLR existe en más de una base de datos.
-
Ejecute una consulta que implique varias bases de datos que tengan el UDT de CLR.
En este escenario, se produce un error de infracción de acceso en la réplica secundaria y la instancia de SQL Server se bloquea con el mensaje siguiente en el registro de errores de SQL Server:
2015-02-17 13:07:36.85 spid27s cerrando la base de datos debido a la excepción 2905 durante el procesamiento de VLR en commit. 2015-02-17 13:07:36.85 spid27s error: 3449, gravedad: 21, estado: 1.2015-02-17 13:07:36.85 spid27s SQL Server debe cerrarse para recuperar una base de datos (ID. de base de datos 2). La base de datos es una base de datos de usuario que no se pudo apagar o una base de datos del sistema. Reinicie SQL Server. Si la base de datos no se puede recuperar después de otro Inicio, reparela o restáurela.
Además, recibe el siguiente mensaje de error en la base de datos de réplica secundaria y el error no desaparecerá hasta que reinicie SQL Server:
Mensaje 3961, nivel 16, estado 1, línea 3Snapshot no se pudo realizar la transacción de aislamiento en la base de datos ' <nombrebasededatos> ' porque el objeto al que tuvo acceso la instrucción ha sido modificado por una instrucción DDL en otra transacción simultánea desde el inicio de esta transacción. No está permitido porque los metadatos no tienen una versión. Una actualización simultánea de los metadatos puede dar lugar a una incoherencia si se combina con el aislamiento de instantánea.
Resolución
Información de actualización acumulativa
El problema se solucionó por primera vez en la siguiente actualización acumulativa de SQL Server.
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Le recomendamos que descargue e instale las últimas actualizaciones acumulativas de SQL Server:
Información de la actualizaciónPara resolver este problema, aplique la actualización KB 3043788: hay disponible un paquete de actualización de la revisión a petición para SQL Server 2014.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".