Síntomas

En la arquitectura de creación de reflejo de Microsoft SQL Server, puede encontrar una aserción de SQL Server en el servidor asociado (espejo). Además, encontrará un mensaje de error similar al siguiente en el registro de errores de SQL ServerSQL Server . Este error generalmente significa que el par de espejo debe ser reconstruido.

Aserción de SQL Server: Archivo: loglock.cpp, línea 834 Aserción fallida : 'resultado LCK_OK' . Este error puede estar relacionado con el tiempo. Si el error persiste después de volver a ejecutar la instrucción, utilice DBCC CHECKDB para comprobar la integridad estructural de la base de datos o reinicie el servidor para asegurarse de que las estructuras de datos en memoria no están dañadas. Error: 3624, Gravedad: 20, Estado: 1.Una comprobación de aserción del sistema ha fallado. Compruebe el registro de errores de SQL Server para obtener más información. Normalmente, un error de aserción se debe a un error de software o a daños en los datos. Para comprobar si hay daños en la base de datos, considere la posibilidad de ejecutar DBCC CHECKDB. Si acordó enviar volcados a Microsoft durante la instalación, se enviará un mini volcado a Microsoft. Es posible que Microsoft disponga de una actualización en el Service Pack más reciente o en un QFE del Soporte técnico.

Nota Cuando se produce este problema, se genera un archivo de minivolcado en la carpeta de registro de errores de SQL ServerSQL Server . Este archivo tiene un nombre similar a "SQLDumpnnnn.mdmp."

Causa

Este problema puede producirse en varios escenarios diferentes. Cada escenario tiene una causa y una resolución diferentes, y cada escenario puede provocar el mismo mensaje de error y aserción. Notas

  • Aunque la firma de error parece ser muy específica, el error real se debe a una aserción que ha fallado. Por ejemplo, el error podría deberse a una aserción que realiza una comprobación proactiva en el código de SQL Server que valida las condiciones "saludables" para que se produzca un error lo más limpia posible en lugar de provocar un bloqueo en todo el proceso.

  • No puede determinar fácilmente la causa real. Los servicios de soporte al cliente de Microsoft suelen determinar la causa. Normalmente, esto recopila el archivo de copia de seguridad completa de la base de datos principal y las copias de seguridad del registro de transacciones que cubren la hora del problema. Además, es posible que se requiera un archivo de volcado de proceso completo del reflejo para reproducir el problema en configuraciones específicas.

Resolución

Información del Service Pack

Para resolver este problema, obtenga la corrección más reciente para la versión de SQL Server. Para obtener más información, consulte la tabla siguiente.

Causa

Artículo de Knowledge Base

Primero fijado en

Diferente comportamiento de bloqueo entre el primario y el espejo

2938828 FIX: La creación de reflejo de la base de datos golpea la aserción y la sesión de creación de reflejo muestra el estado suspendido en SQL Server 2012 o SQL Server 2014

2931693 Actualización acumulativa 1 para SQL Server 20142931078 Actualización acumulativa 9 para SQL Server 2012 SP1

Problemas de escalado de bloqueo

CORREGIR 953625: Mensaje de error cuando SQL Server 2005 sincroniza una base de datos reflejada: "Expresión: resultado LCK_OK"

951217 Paquete de actualización acumulativa 8 para SQL Server 2005 Service Pack 2

Bloquear la migración durante las divisiones de página

CORREGIR 974319: Error de aserción y mensaje de error intermitente al usar la creación de reflejo de la base de datos en SQL Server 2005, en SQL Server 2008 o en SQL Server 2008 R2: "Aserción de SQL Server: Archivo: <loglock.cpp>, línea .823 Aserción fallida ' 'resultado de la LCK_OK'"

974648 Paquete de actualización acumulativa 6 para SQL Server 2005 Service Pack 3975976 Paquete de actualización acumulativa 8 para SQL Server 2008975977 Paquete de actualización acumulativa 5 para SQL Server 2008 Service Pack 1975976 Paquete de actualización acumulativa 1 para SQL Server 2008 R2

Inserción a granel / BCP con Check_Constraints OFF

SQL Server 2012

Cambio de las claves de cifrado:

  • Clave maestra de base de datos

  • Clave maestra de instancia de servidor

SQL Server 2012

Operaciones de reducción (PurgeIAM) en conflicto con otras transacciones

982933 Mensaje de error al reducir los archivos de datos en el principal en una creación de reflejo de la base de datos para dos servidores sql Server 2005

983329 Paquete de actualización acumulativa 10 para SQL Server 2005 Service Pack 3

División de páginaseguida de escalamiento de bloqueo seguido de desasignación y asignación de esa página

CORREGIR 983564: Mensaje de error al usar la creación de reflejo de la base de datos en Microsoft SQL Server 2005, Microsoft SQL Server 2008 o Microsoft SQL Server 2008 R2, y se produce un error de aserción de forma intermitente

983329 Paquete de actualización acumulativa 10 para SQL Server 2005 Service Pack 32083921 Actualización acumulativa 9 para SQL Server 2008 Service Pack 12289254 Actualización acumulativa 1 para SQL Server 2008 Service Pack 22261464 Paquete de actualización acumulativa 3 para SQL Server 2008 R2

Notas

  • La última columna muestra solo la primera compilación que contiene la corrección. Dado que las compilaciones de SQL ServerSQL Server son acumulativas, las compilaciones posteriores, como SQL Server 2008 R2 SP1, contienen esas correcciones. Sin embargo, esas compilaciones no se enumeran en la tabla.

  • Cualquier compilación posterior a SQL Server 2005 SP3 Cumulative Update (CU) 10, SQL Server 2008 SP2 CU 1 o SQL Server 2008 R2 CU3 contiene todas las correcciones enumeradas para escenarios de aserción "lck_ok". En el momento en que se escribió este artículo, esas compilaciones fueron reemplazadas por al menos un Service Pack completo. El Service Pack debe proteger la mayoría de las compilaciones actualizadas instaladas de SQL ServerSQL Server en los escenarios fijos. Para obtener más información acerca de cómo obtener el Service Pack más reciente para su versión de SQL Server, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:

    913089 Cómo obtener el Service Pack más reciente para SQL Server 2005968382 Cómo obtener el Service Pack más reciente para SQL Server 20082527041 Cómo obtener el Service Pack más reciente para SQL Server 2008 R2

  • Debe tener en cuenta que dos escenarios no tienen correcciones disponibles. La razón es que estos dos problemas requieren una rearquitectura de los internos del registro de transacciones de SQL ServerSQL Server . Este cambio solo se puede incluir con una versión principal de SQL Server. En este caso, el problema se corrige en Microsoft SQL Server 2012.El escenario de cambio de clave maestra es un evento lo suficientemente raro como para convertir el escenario en un caso de esquina. Sin embargo, el escenario BCP/Bulk Insert es común. Dado que el escenario de inserción bcp/bulk sigue sin fijarse para SQL Server 2008 y SQL Server 2008 R2, es la causa conocida más probable de aserciones "lck_ok" en las compilaciones actuales de estos productos. Para obtener más información acerca de este escenario, consulte la sección "Más información".

  • Este artículo puede no reflejar los problemas que se descubrieron después de su publicación. Puede buscar en Microsoft Knowledge Base cualquier nuevo artículo individual de "Fijar" según corresponda.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".

Más información

Escenario de inserción a granel BCP

Puede producirse un error de 3624 junto con una aserción de "resultado LCK_OK" en el asociado reflejado de un conjunto de creación de reflejo de SQL Server 2008 o SQL Server 2008 R2 si se cumplen las condiciones siguientes:

  • Se está produciendo una actividad BCP o de inserción masiva en la base de datos principal.

  • La actividad de inserción BCP/Bulk utiliza la opción CHECK_CONSTRAINTS - OFF. Nota El valor predeterminado de esta opción es OFF.

Para evitar este problema, establezca la opción CHECK_CONSTRAINTS en ON para la operación BCP/Bulk Insert. El rendimiento de la operación BCP/Bulk Insert puede verse afectado. Nota SQL Server 2012 no se ve afectado por este problema.

Referencias

Para obtener más información acerca de la terminología de actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

824684 Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¿Cómo de satisfecho está con la calidad de la traducción?
¿Qué ha afectado a tu experiencia?

¡Gracias por sus comentarios!

×