KB5014298 - FIX: Se produce el error 3241 al ejecutar RESTAURAR BASE DE DATOS O RESTAURAR REGISTRO

Se aplica a
SQL Server 2019 on Windows

Síntomas

En Microsoft SQL Server 2019, restaurar la base de datos comprimida o las copias de seguridad de registros de las bases de datos que tienen habilitado el cifrado de datos transparente (TDE) puede provocar el siguiente error:

Nota

  • Msj 3241, Nivel 16, Estado 18, Número de línea<>
  • La familia de medios en el dispositivo "<Nombre >de archivo de copia de seguridad" está formada incorrectamente. SQL Server no puede procesar esta familia de medios.

Solución alternativa

Para solucionar este problema, no comprima las copias de seguridad de las bases de datos habilitadas para TDE mediante ninguno de los métodos siguientes:

Resolución

Información sobre la actualización acumulativa

Este problema se corrige en la siguiente actualización acumulativa para SQL Server:

Actualización acumulativa 16 para SQL Server 2019

Nota Debe crear las copias de seguridad junto con esta corrección para evitar el problema. No funcionará la instalación de la CU fija en la instancia de destino e intentar restaurar la misma copia de seguridad creada sin la corrección.

Más información

Importante

A partir de SQL Server 2019 CU16, la creación de copias de seguridad comprimidas (base de datos o registro) de bases de datos habilitadas para TDE usará un nuevo formato de copia de seguridad que solo se puede restaurar en una instancia que tenga CU16 o posterior instalado.

Al restaurar una copia de seguridad comprimida de una base de datos habilitada para TDE creada en CU16 o posterior en una instancia de SQL Server 2019 de la versión CU15 o anterior, se produce el siguiente error:

  • RESTAURAR BASE DE DATOS

    Nota

    • Msj 3013, Nivel 16, Estado 1, Número de línea<>
    • RESTORE DATABASE está terminando de forma anómala.
    • Msj 9004, Nivel 21, Estado 1, Número de línea<>
    • Se ha producido un error al procesar el registro de la base de datos "TDE_DB". Si es posible, restaure a partir de una copia de seguridad. Si no hay una copia de seguridad disponible, puede que sea necesario reconstruir el registro.
  • RESTAURAR REGISTRO

    Nota

    • Ubicación: mediaRead.cpp:1018
    • Expresión: readSize <= m_Demand
    • SPID: 84
    • Process ID: ProcessID
    • Msj 3013, Nivel 16, Estado 1, Número de línea<>
    • RESTORE LOG está terminando de forma anómala.
    • Msj 3624, Nivel 20, Estado 1, Número de línea<>
    • Error en una comprobación de aserción del sistema. 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 aceptó enviar volcados a Microsoft durante la instalación, se enviará un minivolcado a Microsoft. Una actualización podría estar disponible de Microsoft en el Service Pack más reciente o en una revisión del servicio de soporte técnico.

Nota RESTORE HEADERONLY y RESTORE FILELISTONLY no se ven afectados por el problema y funcionarán en todos los casos.

RESTORE VERIFYONLY puede devolver correctamente una copia de seguridad COMPLETA que no es válida según el escenario anterior: no confíe en RESTORE VERIFYONLY para establecer que la copia de seguridad se puede restaurar sin abordar el problema anterior. RESTORE VERIFYONLY en una copia de seguridad de registros normalmente producirá el mismo error que un RESTORE LOG real descrito anteriormente.

Por lo tanto, es importante asegurarse de que, en un contexto en el que TDE y la compresión de copia de seguridad puedan estar habilitados, cualquier instancia de SQL Server 2019 que consuma copias de seguridad de otras instancias de SQL Server 2019 recibirá CU16 (o posterior) antes que las instancias que generan el material de copia de seguridad. Las arquitecturas de trasvase de registros serían un excelente ejemplo de tal situación: actualice primero las instancias secundarias.

Una vez que se ha creado una copia de seguridad del registro de transacciones con compresión, normalmente no es posible volver a crearla sin compresión. Por consiguiente, actualizar el servidor principal de trasvase de registros a SQL Server 2019 CU16 o posterior en este contexto interrumpiría los trabajos de restauración hasta que también se actualice el servidor secundario.

Una copia de seguridad sin comprimir de una base de datos habilitada para TDE, una copia de seguridad comprimida de una base de datos que no está habilitada para TDE o una copia de seguridad sin comprimir de una base de datos que no está habilitada para TDE no usarán el nuevo formato de copia de seguridad introducido en CU16 y se pueden restaurar en una instancia de SQL Server 2019 de cualquier versión.

Por lo tanto, es necesario deshabilitar la compresión de copia de seguridad si tiene previsto restaurar un material de base de datos habilitado para TDE (ya sea copia de seguridad completa o copia de seguridad del registro de transacciones) a cualquier instancia de SQL Server de versiones anteriores a SQL Server 2019 CU16.

Acerca de las actualizaciones acumulativas para SQL Server

Cada nueva actualización acumulativa para SQL Server contiene todas las revisiones y correcciones de seguridad de la compilación anterior. Se recomienda instalar la compilación más reciente para su versión de SQL Server:

Actualización acumulativa más reciente para SQL Server 2019

Estado

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

Referencias

Obtenga información sobre la terminología que usa Microsoft para describir las actualizaciones de software.