2012-05-25 16 views
23

Una base de datos que originalmente era de SQL Server 2008, se restauró en SQL Server 2012. Se realizó una copia de seguridad de SQL Server 2012 y estoy tratando de restaurarla en mi SQL Server 2008 Express local. Sin embargo, aparece un error 'El molde especificado no es válido' (SQLManagerUI).¿Cómo puedo restaurar un archivo de copia de seguridad de base de datos (.bak) de SQL Server 2012 a SQL Server 2008 Express?

He generado un script SQL a partir de 2012 y lo configuré para que se genere con compatibilidad con SQL Server 2008. Sin embargo, es un archivo sql grande, de alrededor de 700mb.

Recuerdo que antes había intentado ejecutar un script de ese tamaño en mi SQLExpress local y también recibí un error.

¿Hay alguna forma de obtener una base de datos "grande" de SQL Server 2012 en SQL Server 2008 Express?

+4

** Nunca ** puede "volver" en términos de versiones en SQL Server. Si hizo una copia de seguridad de su base de datos en una versión 2012, no puede restaurar esa copia de seguridad a una versión 2008. Simplemente no funcionará, sin trucos o formas de evitarlo :-( –

+0

Oh, no. Gracias Marc. Trataré de ver si puedo ejecutar el script SQL generado para obtener una copia de la base de datos en mi sql local express. – stormwild

+1

Vea [Por qué SQL Server no puede restaurar la copia de seguridad a una versión anterior] (http://www.mytechmantra.com/LearnSQLServer/Unable_to_Restore_Database_From_Backup.html) –

Respuesta

21

Gracias a Marc y Aaron por proporcionar las respuestas.

La respuesta rápida es no, no es posible restaurar un archivo de copia de seguridad desde una versión superior a una versión inferior de SQL Server.

Un problema sería generar los scripts para crear la base de datos.

Puede orientar la generación de scripts a una versión inferior.

Consulte los comentarios anteriores para obtener más información.

Enlaces:

Why an SQL Server Database from a higher version cannot be restored onto a lower version of SQL Server?

Create Database in SQL Server 2012, Script and Use in 2008?

3

par de cosas que añaden que podría ser útil para la gente

Al crear scripts de grandes bases de datos utilizando asistente de secuencias de comandos en SSMS Es muy importante comprobar la ejecución ordene y esté dispuesto a arreglarlo manualmente. Las versiones anteriores de SSMS tenían este problema porque (probablemente) confiaban en sp_depends que tiene un bug.

Lo que he encontrado realmente útil en tales casos son herramientas como ApexSQL Diff que puede usar para leer copias de seguridad de la base de datos y generar scripts que están en el orden correcto de ejecución.

SQL Server database backup restore on lower version

Una cosa que ninguno de los métodos se pondrá al día es lo Aaron mencionó acerca del uso de funciones específicas para la versión más alta.

1

Una mejor opción que usar el asistente de scripting SSMS es usar una herramienta similar disponible en Codeplex llamada SQL Database Migration Wizard - http://sqlazuremw.codeplex.com/releases/view/32334. Desea que la última versión v4.x funcione con SQL Server 2012.

La herramienta está pensada originalmente para ser utilizada para migrar bases de datos entre SQL Server y Azure. Sin embargo, la herramienta funciona tan bien como entre SQL Server y SQL Server. El truco consiste en establecer SQL Server en lugar de Azure como destino en las opciones avanzadas.

El motivo por el que esta es una mejor opción que el asistente de creación de scripts SSMS es que usa BCP para la transferencia de datos en lugar de TSQL, por lo que es mucho más eficiente.

Cuestiones relacionadas