¿Cómo copio mi base de datos SQL Azure a una instancia local de SQL Server?


12

Tengo una base de datos OLTP alojada en una instancia de SQL Azure. Quiero extraer una copia de la base de datos de la nube para poder ejecutar algunos extractos pesados ​​y consultas de estilo OLAP sin afectar la base de datos de origen.

¿Cómo extraigo una copia de la base de datos a una instancia local de SQL Server?

Respuestas:


9

Use el Asistente de migración de SQL Azure :

El Asistente de migración SQL Azure (SQLAzureMW) le ofrece las opciones para analizar, generar scripts y migrar datos (a través de BCP) desde:

  1. SQL Server a SQL Azure
  2. SQL Azure a SQL Server
  3. SQL Azure a SQL Azure

No parece funcionar con LocalDB, tengo un error que dice que 'El cifrado no es compatible' en el paso cuando selecciona la base de datos de destino. La herramienta no puede conectarse a mi instancia de
localdb

@ red2nb: no sé nada sobre LocalDB, pero tal vez como el error sugiere que no es un problema con LocalDB, sino un problema con la base de datos de destino encriptada.
Nick Chammas

4

Componga un bcpscript que exporte el contenido de todas sus tablas a archivos locales.

Comience escribiendo una consulta que generará un bcpcomando para exportar cada tabla en su base de datos de destino a una ruta en su máquina de destino:

SELECT 
      'bcp '
    + SCHEMA_NAME(schema_id) + '.' + name
    + ' out '
    + ' D:\local_backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt'
    + ' -c '
    + ' -S servername.database.windows.net '
    + ' -d database_name '
    + ' -U username '
    + ' -P password'
FROM sys.tables;

Ejecute esta consulta utilizando bcpsu base de datos SQL Azure desde la máquina a la que desea copiar y guarde los resultados en un cmdarchivo. Ejecute ese cmdarchivo para exportar cada tabla a un archivo de texto.

C:\> REM ask bcp to save the results of the above query to a file
C:\> bcp "SELECT      'bcp '    + SCHEMA_NAME(schema_id) + '.' + name   + ' out '   + ' D:\backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt'    + ' -c '    + ' -S servername.database.windows.net '    + ' -d database_name '  + ' -U username '   + ' -P password' FROM sys.tables;" queryout output_path\bcp_script.cmd -c -S servername.database.windows.net -d database_name -U username -P password

C:\> REM execute the bcp commands saved to file
C:\> output_path\bcp_script.cmd

Este es un enfoque rápido y sucio, y no es adecuado para grandes bases de datos o esquemas complejos.



2

Noté que hay una nueva herramienta en esta lista, es la Copia de seguridad de la base de datos SQL Azure de Idera . Es gratis y generalmente son buenas herramientas, por lo que vale la pena intentarlo.

Otra forma de exportar bases de datos (pero esta vez solo esquema, sin datos) a Azure es mediante el uso de paquetes DAC (archivos .dacpac extraídos de Management Studio o Visual Studio 2010). Esto funciona solo desde SQL 2008 R2 SP1 +.

Puede leer detalles sobre las aplicaciones de nivel de datos aquí:


0

puede usar el asistente de importación de datos SSMS. Aquí hay una buena publicación de blog al respecto, con fotos. El punto clave es seleccionar el proveedor de datos .NET para la base de datos de origen. Tuve muchos problemas tratando de hacerlo funcionar con otros proveedores (y por defecto, nativos).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.