¿Cómo copio la base de datos de SQL Azure a mi servidor de desarrollo local?

¿Alguien sabe cómo puedo copiar una base de datos SQL Azure a mi máquina de desarrollo? Me gustaría dejar de pagar para tener una base de datos de desarrollo en la nube, pero es la mejor manera de obtener datos de producción. Copio mi base de datos de producción a una nueva base de datos de desarrollo, pero me gustaría tener esa misma base de datos local.

¿Alguna sugerencia?

Hay varias formas de hacer esto:

  1. Utilizando SSIS (SQL Server Integration Services) . Solo importa data en su tabla. Las propiedades de columna, restricciones, claves, índices, procedimientos almacenados, activadores, configuraciones de seguridad, usuarios, inicios de sesión, etc. no se transfieren. Sin embargo, es un proceso muy simple y se puede hacer simplemente yendo a través del asistente en SQL Server Management Studio.
  2. Usando una combinación de scripts de creación de SSIS y DB . Esto obtendrá los datos y todos los metadatos que no se hayan transferido por SSIS. Esto también es muy simple. Primero transfiera los datos usando SSIS (vea las instrucciones a continuación), luego cree el script DB Create de la base de datos SQL Azure y vuelva a reproducirlo en su base de datos local.
  3. Finalmente, puede usar el servicio Importar / Exportar en SQL Azure . Esto transfiere datos (con un objeto de esquema) a Azure Blob Storage como BACPAC. Necesitará una cuenta de almacenamiento de Azure y lo hará en el portal web de Azure. Es tan simple como presionar un botón “Exportar” en el portal web de Azure cuando selecciona la base de datos que desea exportar. La desventaja es que es solo un procedimiento manual, no conozco una forma de automatizar esto a través de herramientas o scripts, al menos la primera parte que requiere un clic en la página web.

El procedimiento manual para el método n. ° 1 (con SSIS) es el siguiente:

  • En Sql Server Management Studio (SSMS) crea una nueva base de datos vacía en tu instancia de SQL local.
  • Elija Importar datos en el menú contextual (haga clic con el botón derecho en la base de datos -> Tareas -> Importar datos …)
  • Escriba los parámetros de conexión para la fuente (SQL Azure). Seleccione “.Net Framework Data Provider for SqlServer” como proveedor.
  • Elija la base de datos local vacía existente como destino.
  • Siga el asistente: podrá seleccionar las tablas de datos que desea copiar. Puede elegir omitir cualquiera de las tablas que no necesita. Por ejemplo, si mantiene registros de aplicaciones en la base de datos, probablemente no los necesite en su copia de seguridad.

Puede automatizarlo creando un paquete SSIS y volviéndolo a ejecutar cada vez que desee volver a importar los datos. Tenga en cuenta que solo puede importar usando SSIS a una base de datos limpia, no puede hacer actualizaciones incrementales en su base de datos local una vez que ya lo haya hecho una vez.

El método n. ° 2 (datos SSID más objetos de esquema) es muy simple. Primero, siga los pasos descritos anteriormente, luego cree el script de creación de DB (haga clic con el botón derecho en la base de datos en SSMS, elija Generar scripts -> Crear base de datos). Luego, vuelva a reproducir esta secuencia de comandos en su base de datos local.

El método n.º 3 se describe en el blog aquí: http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/ . Hay un video clip con el proceso de transferencia de contenido de BD a Azure Blob storage como BACPAC. Después de eso, puede copiar el archivo localmente e importarlo a su instancia de SQL. El proceso de importación de BACPAC a la aplicación de nivel de datos se describe aquí: http://msdn.microsoft.com/en-us/library/hh710052.aspx .

Solo quería agregar una versión simplificada de la respuesta de Dumbledad , ya que es la correcta.

  1. Exporte la Base de datos SQL de Azure a un archivo BACPAC en el almacenamiento de blobs.
  2. Desde el estudio de SQL Management, haga clic con el botón derecho en su base de datos, haga clic en “importar la aplicación de nivel de datos”.
  3. Se le pedirá que ingrese la información para acceder al archivo BACPAC en su almacenamiento de blobs de Azure.
  4. Golpea un par de veces y … ¡listo!

Creo que es mucho más fácil ahora.

  1. Inicie SQL Management Studio
  2. Haga clic derecho en “Bases de datos” y seleccione “Importar aplicación de nivel de datos …”
  3. El asistente lo guiará por el proceso de conectarse a su cuenta de Azure, crear un archivo BACPAC y crear su base de datos.

Además, uso Sql Backup y FTP ( https://sqlbackupandftp.com/ ) para realizar copias de seguridad diarias en un servidor FTP seguro. Simplemente extraigo un archivo BACPAC reciente de allí y lo importo en el mismo cuadro de diálogo, que es más rápido y más fácil de crear una base de datos local.

En SQL Server 2016 Management Studio, se ha simplificado el proceso para obtener una base de datos azul en su máquina local.

Haga clic con el botón derecho en la base de datos que desea importar, haga clic en Tareas> Exportar aplicación de nivel de datos y exporte su base de datos a un archivo .dacpac local.

En su instancia del servidor SQL de destino local, puede hacer clic con el botón derecho en Bases de datos> Importar aplicación de nivel de datos , y una vez que sea local, puede hacer cosas como hacer una copia de seguridad y restaurar la base de datos.

También puede consultar SQL Azure Data Sync en el Portal de administración de Windows Azure. Le permite recuperar y restaurar una base de datos completa, incluido el esquema y los datos entre SQL Azure y SQL Server.

Copie los datos de la base de datos de Azure en la base de datos local: ahora puede usar SQL Server Management Studio para hacer esto como se muestra a continuación:

  • Conéctese a la base de datos SQL Azure.
  • Haga clic derecho en la base de datos en el Explorador de objetos.
  • Elija la opción “Tareas” / “Implementar la base de datos en SQL Azure”.
  • En el paso denominado “Configuración de implementación”, conecte el servidor SQL local y cree una base de datos nueva.

enter image description here

“Siguiente” / “Siguiente” / “Finalizar”

Usando msdeploy.exe

Advertencia: msdeploy.exe no puede crear la base de datos de destino por sí mismo, por lo que primero debe crearla manualmente.

  1. Copie la cadena de conexión en la página de propiedades de la base de datos. Ajústelo para que contenga una contraseña correcta. página de propiedades de la base
  2. Obtenga la cadena de conexión para el DB de destino.
  3. Ejecute msdeploy.exe así:

     "c:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -dest:dbDacFx="destination_DB_connection_string",dropDestinationDatabase=true -source:dbDacFx="azure_DB_connection_string",includeData=true -verbose 

Usando SqlPackage.exe

  1. Exporta la base de datos azure a un paquete bacpac.

     "c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Export /ssn:"azure_db_server" /sdn:"azure_db_name" /su:"user_name" /sp:"password" /tf:"file.bacpac" 
  2. Importe el paquete a un DB local.

     "c:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin\SqlPackage.exe" /a:Import /SourceFile:"file.bacpac" /TargetServerName:".\SQLEXPRESS" /TargetDatabaseName:CopyOfAzureDb 

Es bastante fácil. Esto funcionó para mí … en términos de obtener una base de datos SQL de Azure en su máquina local …:

  1. Abra su SQL Management Studio y conéctese a su Servidor SQL de Azure.
  2. Seleccione la base de datos que desea bajar a su máquina local, y haga clic con el botón derecho … seleccione “Generar secuencias de comandos”. Sigue las instrucciones …

PERO, tenga cuidado porque si TAMBIÉN desea los DATOS, así como los scripts, asegúrese de consultar las Opciones avanzadas antes de comenzar la generación … desplácese hacia abajo a “Tipos de datos para secuencia de comandos” y asegúrese de tener ” Esquema y datos “… o lo que sea apropiado para usted.

Le dará un buen archivo de script SQL que luego se puede ejecutar en su máquina local y creará la base de datos, así como también la poblará con todos los datos.

Ten en cuenta que en mi caso, no tengo FK u otras restricciones … tampoco hubo muchos datos.

No recomiendo esto como un mecanismo de respaldo en general …

Por favor intente esto: http://mooneyblog.mmdbsolutions.com/index.php/2011/01/11/simple-database-backups-with-sql-azure/ .

Otra alternativa sería SQL Azure Data Sync .

Hay una publicación más en el blog que encontré hace unos días pero que no pude encontrar ahora. Actualizaré esta publicación tan pronto como la encuentre.

No pude hacer que la importación / exportación de SSIS funcionara, ya que recibí el error “Error al insertar en la columna de solo lectura” id “‘. Tampoco podría obtener http://sqlazuremw.codeplex.com/ para trabajar, y los enlaces de arriba a SQL Azure Data Sync no funcionaron para mí.

Pero encontré una excelente publicación en el blog sobre los archivos BACPAC: http://dacguy.wordpress.com/2012/01/24/sql-azure-importexport-service-has-hit-production/

En el video en la publicación, el autor de la publicación del blog ejecuta seis pasos:

  1. Haga o vaya a una cuenta de almacenamiento en Azure Management Portal. Necesitará la URL de Blob y la clave de acceso principal de la cuenta de almacenamiento.

  2. La entrada del blog aconseja crear un nuevo contenedor para el archivo bacpac y sugiere usar Azure Storage Explorer para eso. (Nota: necesitará la URL de Blob y la clave de acceso principal de la cuenta de almacenamiento para agregarla a Azure Storage Explorer).

  3. En el Portal de administración de Azure, seleccione la base de datos que desea exportar y haga clic en ‘Exportar’ en la sección Importar y exportar de la cinta de opciones.

  4. El diálogo resultante requiere su nombre de usuario y contraseña para la base de datos, la URL blob y la clave de acceso. No olvide incluir el contenedor en la URL de blob e incluir un nombre de archivo (por ejemplo, https://testazurestrage.blob.core.windows.net/dbbackups/mytable.bacpac ).

  5. Después de hacer clic en Finalizar, la base de datos se exportará al archivo BACPAC. Esto puede tomar un tiempo. Puede ver un archivo de cero bytes aparecer inmediatamente si marca el Azure Storage Explorer. Este es el servicio de importación / exportación que comprueba que tiene acceso de escritura a blob-store.

  6. Una vez hecho esto, puede usar Azure Storage Explorer para descargar el archivo BACPAC y luego en SQL Server Management Studio, haga clic derecho en la carpeta de la base de datos de su servidor local y seleccione Importar nivel de aplicación de datos que iniciará el asistente que lee en el archivo BACPAC. producir la copia de su base de datos de Azure. El asistente también puede conectarse directamente al blob-store para obtener el archivo BACPAC si prefiere no copiarlo localmente primero.

El último paso solo puede estar disponible en la edición SQL Server 2012 de SQL Server Management Studio (esa es la versión que estoy ejecutando). No tengo que verificar los anteriores en esta máquina. En la publicación del blog, el autor utiliza la herramienta de línea de comandos DacImportExportCli.exe para la importación, que creo que está disponible en http://sqldacexamples.codeplex.com/releases

En cuanto a “No pude conseguir que la importación / exportación de SSIS funcionara, ya que recibí el error ‘Error al insertar en la columna de solo lectura’ id ”. Esto puede solucionarse especificando en la pantalla de asignación lo que desea Permitir insertar elementos de Identidad.

Después de eso, todo funcionó bien usando el asistente SQL Import / Export para copiar de Azure a la base de datos local.

Solo tenía SQL Import / Export Wizard que viene con SQL Server 2008 R2 (funcionó bien) y Visual Studio 2012 Express para crear una base de datos local.

La respuesta aceptada está desactualizada. Encontré una mejor respuesta: Usar la aplicación Importar nivel de datos

Para obtener información más detallada, consulte este artículo: Restauración de la base de datos SQL Azure en un servidor local

Puede probar con la herramienta “Asistente de migración de base de datos SQL”. Esta herramienta proporciona la opción de importar y exportar datos desde Azure sql.

Por favor, consulte más detalles aquí.

https://sqlazuremw.codeplex.com/

Descargar Optillect SQL Azure Backup : tiene 15 días de prueba, por lo que será suficiente para mover su base de datos 🙂

Puede usar los nuevos Servicios móviles de Azure para realizar una exportación de copia de seguridad nocturna desde SQL Azure a un archivo .bacpac alojado en Almacenamiento de Azure. Esta solución es 100% en la nube, no requiere una herramienta de terceros y no requiere una instancia alojada de SQL Server local para descargar / copiar / respaldar nada.

Hay alrededor de 8 pasos diferentes, pero todos son fáciles: http://geekswithblogs.net/BenBarreth/archive/2013/04/15/how-to-create-a-nightly-backup-of-your-sql-azure .aspx

El truco para mí fue comenzar a replicar PKs / FKs / constraints en DB vacía, luego deshabilitar temporalmente las restricciones al importar datos (ver https://stackoverflow.com/a/161410 ).

Más precisamente:

  1. Crear un DB de destino vacío manualmente;
  2. Haga clic con el botón derecho en DB origen> Tareas> Generar guiones;
  3. Ejecute el archivo de script en DB de destino vacío (ahora DB tiene PK / FK / restricciones correctas, pero no datos);
  4. Deshabilitar todas las restricciones;
  5. Importar datos (haga clic con el botón derecho en DB de destino> Tareas> Importar datos);
  6. Rehabilitar restricciones

¡Espero que esto ayude!

Ahora puede usar SQL Server Management Studio para hacer esto.

  • Conéctese a la base de datos SQL Azure.
  • Haga clic derecho en la base de datos en el Explorador de objetos.
  • Elija la opción “Tareas” / “Implementar la base de datos en SQL Azure”.
  • En el paso denominado “Configuración de implementación”, seleccione su conexión de base de datos local.
  • “Siguiente” / “Siguiente” / “Finalizar” …

Use el servicio Importar / Exportar en SQL Azure para crear un archivo .bacpac.

Luego eche un vistazo a este método en otro artículo de Desbordamiento de stack.

Restauración local de Azure SQL Database Bacpac

Si alguien tiene un problema para importar un Bacpac de un DB que utiliza Azure SQL Sync , Sandrino Di Mattia desarrolló una gran aplicación simple para resolver esto.

  1. Exportar un Bacpac de su base de datos
  2. Descarga el binario de Di Mattia
  3. Con esta aplicación de consola repara el Bacpac descargado
  4. Lauch SSMS
  5. Haga clic derecho en “Bases de datos” y seleccione “Importar aplicación de nivel de datos”
  6. Seleccione el Bacpac reparado.

Si alguien quiere una opción gratuita y efectiva (y no le molesta hacerlo manualmente) para hacer una copia de seguridad de la base de datos en Local, utilice la funcionalidad de esquema y comparación de datos integrada en la última versión de Microsoft Visual Studio 2015 Community Edition (Free) o Professional / Premium / Ultimate edición. ¡Funciona a las mil maravillas!

Tengo una cuenta de BizPark con Azure y no hay forma de respaldar la base de datos directamente sin pagar. Encontré esta opción en VS funciona.

La respuesta está tomada de https://stackoverflow.com/a/685073/6796187

Hola, estoy usando la herramienta SQLAzureMW para la migración y administración de SQLAzure DB. Muy útil. Se descargó de codeplex, pero actualmente no está disponible; Codeplex se cerrará, la misma herramienta de aplicación ahora está disponible en GttHub. Este enlace a continuación explica cómo usar esta herramienta y también está disponible la Aplicación para descargar.

https://github.com/twright-msft/azure-content/blob/master/articles/sql-database/sql-database-migration-wizard.md

Siempre uso la función Importar / Exportar que parece ser la más fácil entre todas.

Paso 1:

Obtenga la copia de seguridad de la instancia azul de la siguiente manera, Seleccione la base de datos → Haga clic con el botón derecho → Tareas → Exportar la aplicación de nivel de datos.

Paso 2: da un nombre específico para el archivo de copia de seguridad y guárdalo en tu ubicación deseada

Paso 3: Eso es lo que ha hecho una copia de seguridad de la base de datos desde la instancia sql a su local. Vamos a restaurarlo a lo local. Copie la base de datos respaldada en su unidad C. Ahora abra el PowerShell con derechos de administrador y navegue hacia la unidad C

Paso 4: permite descargar el script de powershell para eliminar el master keyRemoveMasterKey.ps1 tiene el script en el mismo disco, en este caso es C.

Paso 5: Ejecute el script de la siguiente manera,. \ RemoveMasterKey.ps1 -bacpacPath “C: \ identity.bacpac”

Eso es todo, ahora puede restaurarlo en MSSQL 2017 en su entorno local.

Paso 6: Conéctese a su servidor local y haga clic en Bases de datos → Import-Data-Tier-Application

Paso 7 : dale un nombre a tu base de datos para restaurar.

¡Ahora verás todo en verde!

Lee mi blog con diagtwigs.