KB3009974 - FIX: Sincronización lenta cuando los discos tienen diferentes tamaños de sector para los archivos de registro de réplica principal y secundaria en entornos SQL Server AG y Logshipping

Se aplica a
SQL Server 2014 Developer SQL Server 2014 Enterprise SQL Server 2014 Standard SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2016 Enterprise Core SQL Server 2016 Standard SQL Server 2016 Developer SQL Server 2016 Enterprise SQL Server 2016 Web SQL Server 2016 Express

Nota

Después de aplicar esta revisión, debe habilitar la marca de seguimiento 1800 como parámetro de inicio en todos los servidores o réplicas que tengan un tamaño de sector físico de 512 bytes y reiniciarlos para que esta revisión funcione correctamente.

Síntomas

Tenga en cuenta el siguiente escenario:

  • Habilita los grupos de disponibilidad AlwaysOn o la característica Logshipping en Microsoft SQL Server.

  • Los discos que almacenan los archivos de registro de la réplica principal y secundaria en un grupo de disponibilidad AlwaysOn (AG) tienen diferentes tamaños de sector. O bien, en entornos de Logshipping, los discos que almacenan los archivos de registro para los servidores primarios y secundarios de Logshipping tienen diferentes tamaños de sector. Por ejemplo:

    • El archivo de registro de réplica principal se encuentra en un disco con un tamaño de sector de 512 bytes. Sin embargo, el archivo de registro de réplica secundaria se encuentra en un disco con un tamaño de sector de 4 kilobytes (KB).
    • El archivo de registro de réplica principal se encuentra en un sistema local local que tiene un tamaño de sector de 512 bytes. Sin embargo, la réplica secundaria se encuentra en un disco de almacenamiento de Windows Azure que tiene un tamaño de sector de 4 kilobytes (KB).

En esta situación, el mensaje de error siguiente se registra en el registro de errores de SQL Server. El mensaje de error puede continuar durante un tiempo después del reinicio si ha habido registros que no se aplicaron a la secundaria antes de reiniciar el servidor.

Nota

Ha habido X E/S de registro desalineadas que han requerido volver a la E/S sincrónica. La OI actual está archivada ...

Además, la sincronización de AG o Logshipping se ejecuta muy lentamente debido a las E/S sincrónicas. Si la réplica secundaria está en Windows Azure Storage, el proceso de sincronización tarda mucho más tiempo del esperado en finalizar.

Nota: Este problema se produce al usar tanto las nuevas unidades con un tamaño de sector de 4 KB como las antiguas con un tamaño de sector de 512 bytes. Para obtener más información acerca de las nuevas unidades, consulte SQL Server: nuevas unidades que usan el tamaño del sector 4K y el tamaño del sector SQL Server–Espacios de almacenamiento/VHDx y 4K.

Resolución

Este problema se corrigió por primera vez en la siguiente actualización acumulativa de SQL Server.

Actualización acumulativa 38 para SQL Server 2014 /en-us/help/3011055

Actualización acumulativa 3 para SQL Server 2012 SP2 /en-us/help/3002049

Actualización acumulativa 38 para SQL Server 2012 SP1 /en-us/help/3002044

Después de aplicar la revisión y habilitar la marca de seguimiento 1800 como parámetro de inicio en todas las réplicas de servidores que se ejecutan en un disco con un tamaño de sector de 512 bytes, observa un pequeño aumento en el tamaño de los siguientes archivos:

  • Archivo de registro de transacciones
  • Copias de seguridad de registros

Además, observa que los mensajes siguientes se registran en el registro de errores de SQL Server del servidor principal:

Nota

La cola del registro de la base de datos '<nombre> de base de datos' se está reescribiendo para que coincida con el nuevo tamaño del sector de 4096 bytes

Este es un mensaje informativo que se puede ignorar de forma segura.

Acerca de las actualizaciones acumulativas para SQL Server

Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y correcciones de seguridad que se incluyeron con la actualización acumulativa anterior. Consulte las actualizaciones acumulativas más recientes para SQL Server:

Solución alternativa

Para solucionar este problema, mueva el archivo de registro de transacciones en el destino a una unidad que tenga Bytes por sector físico establecido en 512 bytes.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información

Como práctica recomendada, trate de asegurarse de que todos los discos de todas las réplicas (al menos todos los discos que hospedan archivos de registro) tengan el mismo tamaño de sector. En entornos mixtos, donde la entidad secundaria tiene un sector físico de 512 bytes y la principal tiene un tamaño de sector de 4 KB, TF 1800 debe usarse como marca de inicio en todos los servidores o réplicas que tengan un tamaño de sector físico de 512 bytes y se hayan reiniciado. Esto garantiza que el formato de creación de registros en curso utiliza un tamaño de sector de 4 KB.

Para obtener más información acerca de cómo funciona SQL Server con sectores de mayor tamaño, consulte el artículo siguiente en el blog de soporte técnico:

SQL Server: espacios de almacenamiento/VHDx y tamaño de sector 4K

Puede utilizar la utilidad de símbolo del sistema Fsutil para determinar el valor de Bytes por sector físico . Si este parámetro no está visible en la salida, debe aplicar la revisión especificada en el artículo de KB 982018 .

Para comprobar el tipo de unidad que tienes, sigue estos pasos:

  1. Ejecute el comando siguiente en un símbolo del sistema con privilegios elevados:
    fsutil fsinfo ntfsinfo x: Nota El marcador de posición x representa la unidad que está comprobando.

  2. Use los valores de Bytes por sector y Bytes por sector físico para determinar el tipo de unidad que tiene. Para ello, utilice la siguiente tabla:

    Valor "Bytes por sector" Valor "Bytes por sector físico" Tipo de unidad
    4096 4096 4K nativo
    512 4096 Formato avanzado (también conocido como 512E)
    512 512 Nativo de 512 bytes