Compartir a través de


MSSQLSERVER_3168

Se aplica a: SQL Server

Detalles

Attribute Valor
Nombre del producto SQL Server
Id. de evento 3168
Origen de eventos MSSQLSERVER
Componente SQLEngine
Nombre simbólico LDDB_SYSTEMWRONGVER
Texto del mensaje No se puede restaurar la copia de seguridad de la base de datos del sistema en el dispositivo %!s! porque se creó con una versión de servidor (%!s!) distinta de la de este servidor (%!s!)

Explicación

No se puede restaurar una copia de seguridad de una base de datos del sistema (maestra, modelo o msdb) en una compilación de servidor que difiere de la compilación en la que se creó originalmente la copia de seguridad.

Nota:

La instalación de una actualización de mantenimiento como la actualización acumulativa o service pack o una GDR cambia el número de compilación del servidor. Las compilaciones de servidor siempre son incrementales.

Causas posibles:

Es posible que el esquema de la base de datos de las bases de datos del sistema cambie entre compilaciones de servidor. Para asegurarse de que un cambio de esquema no provoca incoherencias, la instrucción RESTORE compara el número de compilación del servidor del archivo de copia de seguridad con el número de compilación del servidor en el que intenta restaurar la copia de seguridad. Si las compilaciones son diferentes, la instrucción emite un mensaje de error "3168" y la operación de restauración finaliza anómalamente.

Algunos escenarios en los que puede producirse este problema son los siguientes:

  • Intenta restaurar una base de datos del sistema en el servidor A a partir de una copia de seguridad realizada en el servidor B. Los servidores A y B se encuentran en distintas compilaciones de servidor. Por ejemplo, el servidor A se encuentra en una compilación de la versión original mientras que el servidor B se encuentra en una compilación del Service Pack 1 (SP1).

  • Intenta restaurar una base de datos del sistema a partir de una copia de seguridad realizada en el mismo servidor. Sin embargo, el servidor estaba ejecutando una compilación diferente cuando se ejecutó el proceso de copia de seguridad. Es decir, el servidor se actualizó desde que se creó la copia de seguridad.

Acción del usuario

Para resolver el problema, siga estos pasos:

Nota:

Para los procedimientos siguientes, el servidor A es el servidor basado en SQL Server de origen en el que se realiza la copia de seguridad y el servidor B es el servidor basado en SQL Server de destino al que intenta restaurar la copia de seguridad:

  1. Determine la versión del servidor B (versión B) mediante la consulta siguiente:

    SELECT @@VERSION;
    
  2. Ejecute una consulta similar a la siguiente para determinar la versión de SQL Server que se estaba ejecutando cuando se realizó la copia de seguridad de origen (versión A):

    RESTORE headeronly FROM disk = 'c:\sqlbackups\masterdb.bak'

  3. Revise los valores de SoftwareVersionMajorlas columnas , SoftwareVersionMinory SoftwareVersionBuild para determinar la compilación del servidor de origen que se usó cuando se realizó la copia de seguridad. Por ejemplo, supongamos que los valores son los siguientes:

    • SoftwareVersionMajor: 15
    • SoftwareVersionMinor: 0
    • SoftwareVersionBuild: 4236 En este caso, la versión de SQL Server de origen cuando se realizó la copia de seguridad es 15.0.4236.
  4. Use las tablas de lista de versiones completas de SQL Server o la hoja de cálculo de compilaciones de Excel para determinar la versión de SQL Server a la que corresponde la compilación. Por ejemplo, 15.0.4236 se asigna a SQL Server 2019 CU16+GDR (versión A).

  5. Use una de las siguientes opciones:

    • Si la versión A es mayor que la versión B, use la información que se encuentra en Las últimas actualizaciones y el historial de versiones de SQL Server para actualizar el servidor B a la misma compilación que la versión A.

    • Si la versión A es menor que la versión B, quite temporalmente las actualizaciones posteriores mediante los pasos siguientes:

      1. En Panel de control, seleccione Programas > y características y, a continuación, seleccione Ver actualizaciones instaladas.

      2. Busque la entrada que corresponde a cada uno de los paquetes de actualización posteriores que corresponden a la versión B.

      3. Mantenga presionado (o haga clic con el botón derecho) en la entrada y, a continuación, seleccione Desinstalar.

    • Después de comprobar que la versión B es la misma que la versión A, vuelva a intentar la operación de restauración de la base de datos maestra en el servidor B.

  6. (Recomendado) Actualice el servidor B a la versión disponible más reciente y, a continuación, realice una nueva copia de seguridad de las bases de datos del sistema.

Consulte también

Limitaciones en la restauración de bases de datos del sistema (SQL Server)

Restauración de la base de datos maestra (Transact-SQL)

La manera más fácil de recompilar la base de datos maestra