2012-01-11 16 views
12

Actualmente estoy generando scripts SQL todos los días para tomar la copia de seguridad de la base de datos de SQL Azure. Necesito automatizar este proceso usando algunos freeware. ¿Cómo puedo conseguir esto?Necesito automatizar la copia de seguridad de la base de datos SQL Azure en los archivos de SQL Script. como lo puedo hacer?

Nota: - Debo llevar la copia de seguridad en forma de secuencia de comandos SQL a alguna máquina local.

+0

¿Ha resuelto este problema? ¿Cómo se generan tus scripts SQL? – cheeesus

Respuesta

18

Opción 1: ejecutar algún código/script para copia de seguridad de la base de datos

Se puede ejecutar el SQL usando la utilidad sqlcmd.

http://msdn.microsoft.com/en-us/library/ms162773.aspx

Para programar esto, sólo tiene que utilizar el programador de tareas de Windows.

http://msdn.microsoft.com/en-us/library/bb756979.aspx

Opción 2: Uso Azure Data Sync

Mantener una base de datos local en sincronía con su base de datos SQL Azure, como una copia de seguridad constante.

http://msdn.microsoft.com/en-us/library/windowsazure/hh456371.aspx

Opción 3: Uso BacPac

Existe una API disponible en Azure para copia de seguridad de su base de datos a un formato BACPAC.

http://msdn.microsoft.com/en-us/library/windowsazure/hh335292.aspx

herramienta A continuación, Redgate le permite restaurar a un servidor SQL Server local.

http://www.red-gate.com/products/dba/sql-azure-backup/

Edición

Desde entonces he creado una herramienta de línea de comandos que va a crear una copia de su base de datos y realizar copias de seguridad a BacPac utilizando la API de administración de Azure:

https://github.com/richorama/SQLDatabaseBackup

+0

Gracias por su respuesta. ¿Pero puede explicar cómo generar secuencias de comandos SQL para datos usando SQLCMD? a medida que obtenemos los datos de la característica generar script en SQL Azure o SQL Server. –

+0

La utilidad de línea de comandos de redgate ha sido descontinuada. Todavía está disponible pero contiene problemas abiertos. –

+0

De hecho, he publicado una herramienta de línea de comandos que te ayuda a hacer esto. No está completamente terminado, pero sirve como un ejemplo de cómo automatizar esto: https://github.com/richorama/SQLDatabaseBackup –

2

Puede probar RedGate Azure Sql copia de seguridad http://www.red-gate.com/products/dba/sql-azure-backup/

Eso también se puede programar usando el Programador de tareas.

me han escrito algunas ideas sobre cómo hacerlo: http://anttitech.wordpress.com/2011/11/06/azure-sql-backup-and-restore-scenarios-using-bacpac-exportimport/

+0

Gracias por su respuesta, ahora estoy usando esto y está funcionando correctamente. El único problema al que me enfrento ahora es que, dado que en el script, debemos mencionar el nombre de la base de datos local y siempre es constante, por lo que se pierde la copia de seguridad del día anterior. ¿Hay alguna manera de que pueda declarar el nombre de base de datos como [DATABASENAME_CURRENT]? A continuación está mi script que he usado y programé un trabajo. ./RedGate.SQLAzureBackupCommandLine.exe/as: AzureServerNAME/ad: AzureDatabaseName /au: AzureUserName/ap: AzurePassword/cc/s/ls :./ld: LOCALDATABASENAME/dl/v/ba –

0

base de datos SQL Azure no admite Agente de SQL Server o puestos de trabajo. Sin embargo, puede, , ejecutar SQL Server Agent en su servidor SQL local y conectarse a SQL Azure Database.

Fuente: http://msdn.microsoft.com/en-us/library/windowsazure/ee336245.aspx

Agente SQL Server es un servicio de Microsoft Windows que se ejecuta tareas administrativas programadas, que son llamados puestos de trabajo ... Por ejemplo, si desea una copia de seguridad toda la empresa servidores todos los días laborables después de horas, puede automatizar esta tarea. Programar la copia de seguridad de correr tras 22:00 de lunes a viernes

Fuente: http://msdn.microsoft.com/en-us/library/ms189237.aspx

Cuestiones relacionadas