No puede restaurar copias de seguridad del sistema de la base de datos a una versión diferente de SQL Server

Seleccione idioma Seleccione idioma
Id. de artículo: 264474 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Síntomas

No puede restaurar una copia de seguridad de una base de datos del sistema ( master , modelo o msdb ) en una generación de servidor es diferente de la generación en la que se realizó originalmente la copia de seguridad. Se intentó realizar una restauración de tal hace que el mensaje de error siguiente que se produzca:
Servidor: Msg 3168, nivel 16, estado 1, línea 1
No se puede restaurar la copia de seguridad de la base de datos del sistema d:\temp\master.bak dispositivo porque se creó con una versión diferente del servidor (134217904) que este servidor (134217920).
Servidor: Msg 3013, nivel 16, estado 1, línea 1
RESTORE DATABASE está terminando de forma anormal.

Causa

Es posible que el esquema de base de datos para las bases de datos del sistema cambió en generaciones de servidor. Para asegurarse de que este cambio de esquema no hace que las incoherencias, uno de los cheques primer que realiza el comando RESTORE es una comparación del número de generación de servidor en el archivo de copia de seguridad y el número de generación del servidor en el que el usuario está intentando realizar la restauración. Si las dos versiones son diferentes, se produce la mensaje de error y termina la operación de restauración de forma anormal.

Nota Instalar un service pack o una revisión generación cambios en el número de generación de servidor y generaciones de servidor siempre son incrementales.

Éstos son algunos escenarios en que este problema puede producirse:
  • Un usuario intenta restaurar una base de datos en el servidor A del sistema desde una copia de seguridad realizada en el servidor B. servidores A y B están en generaciones de servidor diferente. Por ejemplo, servidor puede estar en una compilación RTM y el servidor B puede estar en un service pack 1 (SP1) la generación.
  • Un usuario intenta restaurar una base de datos del sistema desde una copia de seguridad realizada en el mismo servidor. Sin embargo, el servidor estaba en ejecución una compilación diferente cuando se ha producido la copia de seguridad. Es decir, el servidor se ha actualizado desde que se realizó la copia de seguridad.

Solución

El proceso de restauración en una situación como ésta es bastante implicados y la utiliza sólo como último recurso.

El primer paso en intentar evitar este problema es para determinar la generación actual del servidor y el servidor SQL Server se basan en que se realizó la copia de seguridad.

Microsoft SQL Server 2000 y Microsoft SQL Server 2005 proporcionan dos métodos siguientes para determinar la versión de SQL Server actual:
  • método 1
    SELECT @@version
    este código devuelve texto similar a:
    Microsoft SQL Server  2000 - 8.00.192 (Intel X86)
    Jul 31 2000 15:47:46
    Copyright (c) 1988-2000 Microsoft Corporation 
    Enterprise Edition on Windows NT 5.0 (Build 2195: )
    (1 row(s) affected)
  • método 2
    SELECT SERVERPROPERTY('ProductVersion')
    este código devuelve texto similar a:
    8.00.192
    (1 row(s) affected)
El propósito de este artículo, se hace referencia este número de compilación a como el "SQL Server compilación" en el resto de este artículo.

Puede determinar la generación en el que se produjo la copia de seguridad mediante el siguiente comando en el archivo de copia de seguridad:
RESTORE HEADERONLY
FROM DISK = 'd:\temp\master176.bak'
en el resultado que se genera, las siguientes columnas de tres (3) proporcionan la información de generación de servidor:
SoftwareVersionMajor SoftwareVersionMinor SoftwareVersionBuild
-------------------- -------------------- --------------------
8                    0                    176

The actual output has several other columns; however, only the columns that are of interest are included in this article for clarity.
para el propósito de este artículo, se hace referencia este número de generación como la "copia de seguridad Build" para el resto de este artículo.

En el ejemplo, el "SQL Server Build" es 8.00.192, mientras la "copia de seguridad Build" es 8.00.176. Porque las dos versiones son diferentes, no se permite la operación de restauración y mensaje de error 3168 se produce.

El proceso de restauración para evitar este problema varía dependiendo de la base de datos del sistema del usuario está intentando restaurar. Como medida cautelar, Microsoft recomienda que haga una copia de seguridad de todas las bases de existentes datos (bases de datos de usuario y del sistema) antes de continuar con cualquiera de estos pasos.

Si el intento de restauración se encuentra en la base de datos maestra , puede utilizar los pasos siguientes para intentar una restauración correcta:
  1. Separar todas las bases de datos de usuario que hay en el sistema mediante el procedimiento almacenado sp_detach_db . Para obtener más información acerca de cómo separar las bases de datos de usuario, consulte el tema "Attaching and Detaching Databases" en los libros en pantalla de SQL Server 2000. Si está utilizando SQL Server 2005, consulte la "Detaching y adjuntar una base de datos" en libros en pantalla de SQL Server 2005. Como una comprobación cruzada, la siguiente consulta devuelve una lista de todas las bases de datos de usuario en el sistema:
    SELECT name FROM SYSDATABASES
    WHERE dbid > 4
  2. Copia de seguridad las bases de datos msdb y model en el sistema mediante los comandos siguientes:
    BACKUP DATABASE MSDB TO DISK = '<backup device>' WITH NOINIT, NOSKIP
    BACKUP DATABASE MODEL TO DISK = '<backup device>' WITH NOINIT, NOSKIP
  3. Si la "copia de seguridad Build" es mayor que el "SQL Server compilación", instale todos los necesarios service Pack o revisión genera para restaurar hacia delante el software de servidor para la "copia de seguridad crear" que se determinó anteriormente. A continuación, vaya al paso 6.
  4. Quitar SQL Server 2000 o SQL Server 2005. Para obtener más información acerca de cómo quitar SQL Server 2000, consulte el tema "Cómo quitar SQL Server 2000" en los libros en pantalla de SQL Server 2000.
  5. Volver a instalar SQL Server 2000 o SQL Server 2005 y todos los necesarios service packs o revisiones se genera para restaurar hacia delante el software de servidor para la "copia de seguridad crear" que se determinó anteriormente.
  6. Iniciar el servidor en modo de usuario único y restaure la base de datos principal mediante el archivo de copia de seguridad para esta generación. Para obtener instrucciones acerca de restaurar la base de datos principal , consulte el tema "Restaurar el maestro de database de una copia de seguridad actual" en los libros en pantalla de SQL Server 2000. Si utiliza SQL Server 2005, vea el tema "Restaurar la base de datos master" en libros en pantalla de SQL Server 2005.
  7. Después de restaurar correctamente la base de datos principal , debe apagar y reiniciar el servicio.
  8. Si la "copia de seguridad Build" es mayor que el "SQL Server compilación", vaya al paso 10.
  9. Volver a aplicar cualquier service Pack o las generaciones de revisión necesarias para distribuir el software de servidor hacia delante a "generación SQL Server".
  10. Restaure las bases de datos msdb y model desde las copias de seguridad creados en el paso 2. Si utiliza SQL Server 2005, vea el tema "Restaurar las bases de datos model y msdb" en libros en pantalla de SQL Server 2005.
  11. Vuelva a conectar todas las bases de datos usuario mediante el procedimiento almacenado sp_attach_db . Para obtener más información acerca de cómo volver a adjuntar la base de datos, consulte el tema "Attaching and Detaching Databases" en los libros en pantalla de SQL Server 2000.
Los cambios realizados en la base de datos master después de realizar la copia de seguridad de la principal son ahora perdido y debe aplicarse manualmente.
Si se intenta la operación de restauración en el modelo o la base de datos msdb , puede utilizar los siguientes pasos para solucionar temporalmente este problema. Para ilustrar este procedimiento con un ejemplo, en este artículo hace referencia al servidor original en el que diga una de estas bases de datos msdb , consiste en restaurarse como servidor a. Este procedimiento implica instalar SQL Server en un servidor B diferentes para evitar la 3168 mensaje de error. Por supuesto, la suposición es que sólo haya una copia de seguridad desde una compilación anterior para el msdb válida en servidor a.
  1. Instalar SQL Server 2000 en servidor B (con la misma configuración de intercalación como servidor) y cualquier service Pack o las generaciones de revisión necesarios para obtener el software de servidor para la "copia de seguridad Build".
  2. Después de instalar SQL Server 2000, inicie el servicio de SQL Server e intentar restaurar la base de datos msdb desde el archivo de copia de seguridad. La funciona de la restauración si el servidor de compilación y la generación en la que se realizó la copia de seguridad son idénticos.
  3. Si la "copia de seguridad Build" es mayor que la "generación actual", vaya al paso 5.
  4. Después de una restauración correcta, actualización SQL Server 2000 en el servidor B aplicando los service packs o revisiones genera necesario pasar hacia delante el software de servidor a la "generación actual".
  5. Una vez finalizada la actualización, realice una copia de seguridad de la base de datos msdb . Ahora es posible restaurar desde esta copia de seguridad en el servidor A, teniendo en cuenta que la generación del servidor en el que se realizó la copia de seguridad y la "generación actual" son idéntica.
El mismo procedimiento funciona para la base de datos model . Nuevo, los cambios realizados en estas bases de datos desde que se realizó la copia de seguridad se pierden y deben aplicarse manualmente.

Más información

Siempre es una buena práctica de tener una estrategia de copia de seguridad actual y eficaz. Esta restricción aún es otro ejemplo de por qué una buena estrategia de copia de seguridad es importante. En la luz de esta restricción, debe realizar una copia de seguridad de las bases de datos de sistema tan pronto como actualizar el servidor cuando se instala un service pack o una versión de revisión.

Propiedades

Id. de artículo: 264474 - Última revisión: jueves, 22 de febrero de 2007 - Versión: 6.4
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Palabras clave: 
kbmt kbbackup kbprb KB264474 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 264474

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com