¿Cómo restaurar un archivo de copia de seguridad de la base de datos SQL Server de una versión superior en un SQL Server de versión inferior?
Con SQL Server 2008 R2 (10.50.1600) , hice un archivo de copia de seguridad y ahora quiero restaurarlo en el servidor SQL Server 2008 de mi servidor en vivo (10.00.1600) .
Cuando intenté restaurar la copia de seguridad en SQL Server 2008, aparece un error, es decir, Restore Failed
porque:
Se realizó una copia de seguridad de la base de datos en un servidor que ejecuta la versión 10.50.1600. Esa versión es incompatible con este servidor, que ejecuta la versión 10.00.1600.
¿Cómo restauro el archivo de respaldo en este servidor?
sql-server
Oreo
fuente
fuente
Respuestas:
No, no es posible degradar una base de datos. 10.50.1600 es la versión de SQL Server 2008 R2 . No hay absolutamente ninguna manera de restaurar o adjuntar esta base de datos a la instancia de SQL Server 2008 en la que está intentando restaurar (10.00.1600 es SQL Server 2008). Sus únicas opciones son:
fuente
Puede usar la funcionalidad llamada Exportar aplicación de nivel de datos que genera un
.bacpac
archivo que consiste en un esquema de base de datos y datos.En el servidor de destino, puede usar la opción Importar aplicación de nivel de datos que crea y llena una nueva base de datos a partir de un
.bacpac
archivo creado previamenteSi solo desea transferir el esquema de la base de datos, puede usar Extraer la aplicación de nivel de datos para crear el archivo e Implementar la aplicación de nivel de datos para implementar el esquema de base de datos creado.
He intentado este proceso en diferentes versiones de SQL Server desde SQL 2014 a SQL 2012 y desde SQL 2014 a SQL 2008R2 y funcionó bien.
fuente
sqlpackage.exe
línea de comandos. Google para más.No necesariamente funcionará
Copia de seguridad / restauración : no funcionará cuando el destino sea una versión anterior de MS SQL.
Copiar base de datos : no funcionará cuando el destino sea SQL Server Express: "El servidor de destino no puede ser una instancia Express de SQL Server 2005 o posterior".
Importación de datos : no copiará el esquema.
Trabajará
Generación de guiones - Tareas -> Generar guiones . Asegúrese de establecer la versión deseada de SQL Server de destino en la página Establecer opciones de secuencias de comandos -> Avanzado . También puede elegir allí si copiar el esquema, los datos o ambos. Tenga en cuenta que en la secuencia de comandos generada, es posible que deba cambiar la carpeta DATA para los archivos mdf / ldf si cambia de no expreso a expreso o viceversa.
Servicios de publicación de bases de datos de Microsoft SQL Server : creo que viene con SQL Server 2005 y superior. Descargue la última versión desde aquí . Prerrequisitos:
sqlncli.msi
/sqlncli_x64.msi
/sqlncli_ia64.msi
,SQLServer2005_XMO.msi
/SQLServer2005_XMO_x64.msi
/SQLServer2005_XMO_ia64.msi
(descargar aquí ).fuente
Aquí están mis 2 centavos en diferentes opciones para completar esto:
Herramientas de terceros : Probablemente la forma más fácil de hacer el trabajo es crear una base de datos vacía en una versión inferior y luego usar herramientas de terceros para leer la copia de seguridad y sincronizar la nueva base de datos recién creada con la copia de seguridad.
Red Gate es uno de los más populares, pero hay muchos otros como ApexSQL Diff , ApexSQL Data Diff , Adept SQL , Idera ... Todas estas son herramientas premium, pero puedes hacer el trabajo en modo de prueba;)
Generación de scripts : como otros ya mencionaron, siempre puede estructurar scripts y datos utilizando SSMS, pero debe tener en cuenta el orden de ejecución. Por defecto, los scripts de objetos no están ordenados correctamente y tendrá que ocuparse de las dependencias. Esto puede ser un problema si la base de datos es grande y tiene muchos objetos.
Asistente de importación y exportación : esta no es una solución ideal, ya que no restaurará todos los objetos, sino solo las tablas de datos, pero puede considerarlo para soluciones rápidas y sucias cuando sea necesario.
fuente
No puede restaurar la base de datos (o adjuntar) creada en la versión superior a la versión inferior. La única forma es crear un script para todos los objetos y usar el script para generar la base de datos.
Sí, ahora ha terminado con Crear script con esquema y datos de la base de datos.
fuente
Otra forma de hacer esto es usar la función "Copiar base de datos":
Busque haciendo clic derecho en la base de datos de origen> "Tareas"> "Copiar base de datos".
Puede copiar la base de datos a una versión inferior de la instancia de SQL Server. Esto funcionó para mí desde un SQL Server 2008 R2 (SP1) - 10.50.2789.0 a Microsoft SQL Server 2008 (SP2) - 10.0.3798.0
fuente
Puedes probar esto.
fuente
Vaya a Tarea-> Generar guiones ...
En Avanzado en "Tipos de datos para script", seleccione
"Schema and data"
e intente ejecutar este script en su versión inferior.fuente
No es bonito, pero así es como lo hice, te garantizo que tienes esta opción instalada en tu instalación de SQL 2008 R2.
1) Haga clic con el botón derecho en la base de datos en SQL Server 2008 R2 "Tareas" .. "Generar secuencias de comandos" en el asistente, seleccione toda la base de datos y los objetos en el primer paso. En el paso "Establecer opciones de secuencias de comandos" debería ver un botón "Avanzado", seleccione esto y asegúrese de seleccionar "Script para la versión del servidor" = SQL Server 2008 "no la versión R2. Este es un paso crucial, porque" importar datos " por sí solo no trae todas las claves primarias, constriants y otros objetos como procedimientos almacenados ".
2) Ejecute el script SQL generado en la nueva instalación o instancia de la base de datos SQL Express o SQL Server 2008 usando la ventana de consulta o abra el script .sql guardado y ejecute y debería ver la nueva base de datos.
3) Ahora haga clic derecho en la nueva base de datos y seleccione "Tareas" ... "Importar datos ...", elija el origen como la base de datos R2 y el destino como la nueva base de datos. "Copie datos de una o más tablas o vistas", seleccione la casilla de verificación superior para seleccionar todas las tablas y luego el siguiente paso, ejecute el paquete y debería tener todo en una versión anterior. Esto debería funcionar para volver a una versión 2005 también. Espero que esto ayude a alguien.
fuente
puede usar BCP dentro y fuera para tablas pequeñas.
Comando BCP OUT: -
Comando BCP IN: - Crear estructura de tabla para Invoicescopy1.
fuente
Aprecio que esta es una publicación antigua, pero puede ser útil para las personas saber que el Asistente de migración de Azure (disponible en Codeplex, no se puede vincular como lo es Codeplex en el momento en que estoy escribiendo esto) lo hará fácilmente.
fuente
Tendría que usar los asistentes de Importar / Exportar en SSMS para migrar todo
No es posible "rebajar" el uso de la copia de seguridad / restauración o la separación / conexión. Por lo tanto, lo que tienes que hacer es:
fuente
Puede generar script desde el menú Tarea
Para referencia detallada
Cómo migrar una base de datos de SQL Server a una versión inferior
fuente