that - system.data.sqlclient.sqlerror the database was backed up on a server running version
¿Es posible restaurar la copia de seguridad de Sql Server 2008 en SQL Server 2005? (8)
¿Es posible restaurar una copia de seguridad de una base de datos de SQL Server 2008 en una instancia de SQL Server 2005?
Necesito trabajar en una aplicación de muestra para la cual la copia de seguridad de la base de datos está en el servidor sql 2008. Pero no podré instalar 2008. Entonces, ¿es posible restaurar esa copia de seguridad en 2005?
No, no directamente. Las copias de seguridad de la base de datos de SQL Server 2008 no son retrocompatibles con SQL Server 2005. Sin embargo, con SQL Server 2008 Management Studio, puede crear secuencias de comandos de datos y esquemas en el modo SQL Server 2005. Este artículo describe el proceso en detalle.
No, no se puede, pero herramientas como SQL Compare / Data Compare de red gate pueden leer los archivos de copia de seguridad directamente y transferir la información a una base de datos en vivo, tratando con cualquier sintaxis o configuración que no sea compatible con SS2005
Puede usar DBSave , es una gran herramienta gratuita para realizar copias de seguridad y restaurar ms sql server en diferentes máquinas. Es muy simple de configurar y usar.
Sí, es posible
Uso de la exportación en SQL Server 2008. Vaya a All Programs
-> Microsoft SQL Server 2008
-> Import and Export Data
Luego se abrirá
SQL Server Import AND Export Wizard
ventana delSQL Server Import AND Export Wizard
. PresionaNext
Elija una Fuente de datos (en su caso de SQL Server 2008). Elija un Destino (en su caso de SQL Server 2005).
Seleccione
Copy data from one or more tables or view
Seleccione las tablas de origen y las tablas de destino
Haga clic en
Next
yFinish
completar.
He tenido este problema por un largo tiempo.
No puede restaurar copias de seguridad de SQL2008 en una instancia de SQL2005.
Y para mí, las soluciones como la importación / exportación de wizzard o la secuencia de comandos de la base de datos desde SQL2008 utilizando los scripts de generación con la opción para SQL2005 no funcionarán. Porque, simplemente, mis bases de datos se cruzan entre sí dentro de sus vistas y procedimientos almacenados o udfs. No recaen en mi responsabilidad por completo y no puedo consolidarlos en 1 base de datos. Son un conjunto de 6 dbs que se refieren entre sí directamente dentro de sus vistas y procedimientos almacenados. Cuando los transfiero de una instancia de SQL2005 a otra, normalmente hago una copia de seguridad / restauración completa.
Si tuviera que guionizarlos, incluso con la opción con dependencias obtendría errores en el momento de la recreación ya que db1 no encontraría vistas dentro de db3 porque sucedió que primero ejecuté el script create db1. Si probé db3 primero obtengo excepciones similares.
La única forma de guionarlos para que no tenga tales excepciones de dependencia es descubrir una secuencia que funcione y guiarlos parcialmente de esa manera: digamos: db1_tables seguido de db2_tables seguido de db2_views seguido de db1_views, sp, udfs, etc. .
Tengo tal secuencia. Y cuando necesito crear un nuevo conjunto de dichos 6 db, ejecuté los scripts parciales más pequeños en secuencia.
Esto explica por qué generar scripts, con dependencias y con datos y establecer scripts de versión de SQL2005, simplemente no funcionarán para mí.
El wizzard de importación / exportación es mejor en mi caso porque copiará las tablas y luego todavía tendrá que crear un script de todas las vistas, sp, udfs, etc.
Lo que realmente necesito es una herramienta de conversión para archivos de copia de seguridad SQL2008, para convertirlos a formato SQL2005. Entonces mi problema desaparecerá. O algún tipo de herramienta que permitiría restaurar desde SQL2008 archivos de copia de seguridad completa, sin hacerme demasiadas preguntas.
Si alguien conoce esas herramientas y las ha usado, avíseme.
No. No es posible restaurar una base de datos desde una copia de seguridad de una versión más nueva.
Si no está seguro, creo que su mejor opción es conectar la base de datos en el Explorador de objetos en SQL 2008, hacer clic con el botón derecho, seleccionar Tareas-> Generar secuencias de comandos. En el cuadro de diálogo Opciones, puede escribir todo.
Y asegúrese de seleccionar "Script para SQL 2005".
Al importar los objetos a su servidor de destino, si los objetos son grandes, puede encontrar que no puede abrir el archivo SQL a través de Management Studio (con un error "La operación no pudo completarse" completamente inútil, nada menos). sqlcmd
bien, solo carga el archivo a través de sqlcmd
.
Algo importante falta en todas las respuestas y es el hecho de que generar scripts en SSMS no ordena los scripts correctamente.
Los scripts deben ordenarse en el orden de dependencia correcto para que las tablas secundarias se creen después de las tablas principales y demás.
Esto no es un problema para las bases de datos pequeñas, donde es fácil reordenar las secuencias de comandos de forma manual, pero puede ser un gran problema cuando se trata de bases de datos que tienen más de 100 objetos.
Mi experiencia es que es más conveniente utilizar herramientas de terceros que pueden leer copias de seguridad y generar scripts en el orden correcto. Estoy usando ApexSQL Diff y Data Diff de ApexSQL, pero no se puede equivocar con ningún proveedor popular.
No tuve suerte con Importar / Exportar (las exportaciones de archivos planos fallaron en la importación reclamando problemas de mapeo de conjuntos de caracteres [aunque el mismo juego de caracteres se usó en todo] y / o problemas de truncamiento [aunque el origen y el destino tenían exactamente la misma estructura]) y sin suerte con el uso de la opción "generar scripts" sugerida por Garry Shutler (generó un script con errores de sintaxis), finalmente pude copiar la gran tabla que quería copiar de 2008 a 2005 utilizando la utilidad SQL Server bcp
. Esa es otra opción para esta situación, aunque para una base de datos completa sería tabla por tabla y probablemente no ayude con las vistas y tal.
Los pasos que utilicé:
En el servidor de origen, use "Script Table As As ... CREATE" para obtener la estructura y ejecútela en el servidor de destino.
En el servidor de destino, cree un archivo de formato
bcp
usando su tabla recién creada:bcp database.owner.table format nul -f table.fmt -n
(Si no está utilizando la autenticación de Windows, puede necesitar las opciones
-U
y-P
para especificar el nombre de usuario y la contraseña).Copie ese archivo de formato en el servidor de origen (si es necesario).
Exportar los datos a un archivo en el servidor de origen:
bcp database.owner.table out table.dat -f table.fmt
(De nuevo, posiblemente con
-U
y-P
.)Copie el archivo de datos en el servidor de destino (si es necesario).
Importe los datos en el servidor de destino:
bcp database.owner.table in table.dat -f table.fmt
(De nuevo, posiblemente con
-U
y-P
.)
Con la esperanza de que sea útil para otra persona.