Tengo una base de datos en una instancia de SQL Sever 2012 que me gustaría copiar en un servidor de 2008. El servidor de 2008 no puede restaurar las copias de seguridad creadas por un servidor de 2012 (lo he intentado).
No puedo encontrar ninguna opción en 2012 para crear una copia de seguridad compatible con 2008. ¿Me estoy perdiendo de algo?
¿Existe una manera fácil de exportar el esquema y los datos a un formato independiente de la versión que luego pueda importar en 2008?
La base de datos no utiliza ninguna característica específica de 2012. Contiene tablas, datos y procedimientos almacenados.
Esto es lo que he intentado hasta ahora.
Intenté Tareas → Generar secuencias de comandos en el servidor 2012, y pude generar el esquema (incluidos los procedimientos almacenados) como una secuencia de comandos SQL. Sin embargo, esto no incluyó ninguno de los datos.
Después de crear ese esquema en mi máquina 2008, pude abrir el asistente "Exportar datos" en la máquina 2012, y después de configurar el 2012 como máquina de origen y el 2008 como máquina de destino, me presentaron una lista de tablas que podría copiar Seleccioné todas mis tablas (más de 300) e hice clic en el asistente. Desafortunadamente, pasa años generando sus scripts, luego falla con errores como "Error al insertar en la columna de solo lectura 'FOO_ID'".
También probé el "Asistente para copiar bases de datos", que afirmaba poder copiar "desde 2000 o posterior a 2005 o posterior". Tiene dos modos:
"Separar y adjuntar", que falló con error:
Message: Index was outside the bounds of the array. StackTrace: at Microsoft.SqlServer.Management.Smo.PropertyBag.SetValue(Int32 index, Object value) ... at Microsoft.SqlServer.Management.Smo.DataFile.get_FileName()
Método de objeto de administración de SQL que falló con error
No se puede leer la propiedad IsFileStream. Esta propiedad no está disponible en SQL Server 7.0 ".
Respuestas:
Haga clic derecho en la base de datos en 2012 SQL Management Studio y seleccione "Tareas -> Generar secuencias de comandos". Haga clic más allá de la pantalla de bienvenida, elija "script de la base de datos completa y todos los objetos de la base de datos". En la página "especificar cómo se deben guardar los scripts", haga clic en "avanzado". En "General" en la página de propiedades emergente, cambie "Tipos de datos a script" de "Solo esquema" a "Esquema y datos" y cambie "Script para la versión del servidor" de "2012" a "2008".
Luego tuve que encontrar alguna forma de editar el inicio de este archivo SQL masivo, para ajustar cómo se crearía la base de datos: vea esto q: https://stackoverflow.com/questions/102829/best-free-text-editor -supporting-more-than-4gb-files
Y finalmente tuve que encontrar alguna forma de ejecutar el script SQL, que era demasiado grande para abrirlo en SQL Management Studio; vea esto q: https://stackoverflow.com/questions/431913/how-do-you-run- a-300mb-ms-sql-sql-file
fuente
Para las migraciones de SQL, use el Asistente de migración de bases de datos SQL gratuito y de código abierto.
Tenía una base de datos de 5GB con un par de ~ 10 millones de registros e intenté la ruta a través de Generate Script y luego la ejecuté con sqlcmd.exe. En primer lugar, el script generado no siempre funcionaba correctamente. En segundo lugar, sqlcmd.exe también puede fallar en archivos grandes, quejándose de la memoria disponible. osql.exe funciona, pero solo lleva años (y tiene los mismos argumentos de línea de comandos).
Luego encontré una herramienta maravillosa para migrar SQL Server a bases de datos SQL Azure. Esto también funciona para SQL Server a SQL Server, por ejemplo, si desea migrar una base de datos SQL 2012 a 2008 R2. Utiliza bcp.exe, que usa una copia masiva. Hay disponible una versión de GUI y línea de comandos (Batch) y es de código abierto. Ver http://sqlazuremw.codeplex.com/ . En mi caso, la operación tomó 16 minutos.
En una pantalla avanzada, puede seleccionar que su objetivo sea SQL Server, no SQL Azure.
fuente
Soy nuevo en SQL, pero logré migrar de 2012 a 2008. Para hacerlo, utilicé la utilidad de importación y exportación de SQL. Elegí el servidor SQL 2012 y la base de datos que quiero migrar y finalmente el servidor 2008 y creé una nueva base de datos como mi base de datos de destino. Funcionó.
fuente
Prueba las herramientas APEXSQL . Tienen una herramienta que guiará la base de datos y también los datos.
fuente
El problema es que no puede insertar las columnas de ID, así que:
fuente
Seguí la solución de Rich https://superuser.com/a/469597/312310 anterior y funcionó muy bien. Gracias, ¡todavía no puedo votar aquí!
Los pasos adicionales que tuve que hacer para que esto funcione son:
Cambie los nombres de los archivos lógicos y asegúrese de que la ruta sea correcta. También tuve que cambiar el nombre del registro generado, de lo contrario, intentó sobrescribir el archivo mdf con el registro y luego arrojó este error https://stackoverflow.com/questions/7534664/sql-server-script-error-database-is- ya en uso
Tuve que comentar la sección generada y agregar los permisos de usuario manualmente después
Lo amplié, y he aquí que ahora puedo restaurar mi nueva base de datos Umbraco 7.1.2 a mi servidor web que solo tiene SQL Server 2008 R2.
fuente
Eche un vistazo a xSQL Schema Compare y xSQL Data Compare . Primero puede sincronizar el esquema con la comparación de esquema y luego copiar los datos.
Descargo de responsabilidad: estoy afiliado a xSQL.
fuente