Una de las preguntas más frecuentes es como sincronizar la base de datos que tenemos on the cloud en Azure. El siguiente post muestra como realizar la sincronización de una base de datos SQL Server (local) con una base de datos SQL Azure (on the cloud).

El código fuente de la aplicación de ejemplo se puede descargar de la página de lagash.

Prerrequisitos para la ejecución del ejemplo:

  • Visual Studio 2008.
  • Sync Framework 2.1.
  • SQL Server 2008 (puede ser SQL Server Express Edition).

Para ejecutar el ejemplo debe seguir los siguiente pasos:

  • En la carpeta Setup se encuentra el script peer1_setup.sql para crear la base de datos con las dos tablas en el SQL local.
image image

Este script solamente es necesario ejecutarlo en la instancia de la base de datos local, dado que las tablas necesarias en la base de datos de Azure son creadas en forma automática por la aplicación de ejemplo. Aún así, pueden ser creadas manualmente para evitar que la primera vez que se ejecute tarde más tiempo.

  • Dentro de la carpeta Setup también encontraremos un scripts llamado demo.sql el cual puede ser utilizado para generar datos de prueba.
  • Posteriormente ejecutamos la aplicación SharingAppDemo

clip_image002

 

  • Luego debemos presionar el botón “Add SQL Peer” para agregar una nueva instancia de SQL para la sincronización. Una vez que aparezca el formulario en donde debemos especificar la nueva instancia de SQL ingresamos la cadena de conexión de SQL Azure. La base de datos ya debe estar creada en SQL Azure, no obstante las tablas no son necesarias dado que la aplicación las crea automáticamente al realizar la sincronización en ambas direcciones.

clip_image001

 

  • Luego presionamos el botón Synchronize para comenzar con el proceso de sincronización, la primera vez demorará un poco más que las demás veces no solamente porque debe crear las tablas, sino porque realiza la sincronización general de los datos, mientras que las próximas veces solo sincroniza los elementos que son necesarios. La sincronización se realiza en ambas direcciones, importando datos tanto de SQL Server a SQL Azure como viceversa.

clip_image002[8]

 

Código de la sincronización de datos:

El proceso es exactamente el mismo que la sincronización entre bases de datos de SQL Server mediante sync framework. Hay que tener en cuenta que si bien las bases de datos son compatibles, algunos de los features de SQL Server no están aún disponibles en SQL Azure, con lo cual, si la base de datos local es igual al esquema de la base de datos de SQL Azure no habría ningún problema.

image

 

image