Una de las tareas que tenía pendiente desde hace un par de meses, era comprobar si Red Gate, tenía en marcha la adaptación de dos de sus herramientas –para mí imprescindibles en las labores de DBA- a SQL Azure.
Hasta la fecha no tenía constancia del lanzamiento de las mismas, pero parece ser que desde hace algo más de un mes han liberado la versión 9 Beta de dos de mis herramientas favoritas: SQLCompare y SQLDataCompare, y sobre todo con la intención de tener soporte completo para SQL Azure.
Para el que no conozca la suite de herramientas, comentarles que la primera, SQLCompare, es una herramienta para el mantenimiento y sincronización de esquemas de bases de datos muy reconocidas por los DBAs. La segunda, SQLDataCompare, hace lo mismo pero a nivel de datos, con lo que podemos sincronizar bi-direccionalmente dos bases de datos distintas a través de T-SQL autogenerado. Si alguien conoce el SQL Azure Migration Wizard que se encuentra en CodePlex, se trata de dos herramientas que realizan la misma tarea pero de una forma mucho más completa –su número de versión 9 lo avala.
Si queréis probar el funcionamiento de las mismas, debéis acceder a través del siguiente enlace http://www.red-gate.com/azure y rellenar la encuesta inicial. Al enviar la encuesta os presenta en pantalla los enlaces para la descarga:
SQLCompare
Una vez realizada la descarga e instalada la herramienta, creamos el proyecto con la configuración de las dos bases de datos que queremos comparar. En principio para el ejemplo de las capturas de pantalla he seleccionado una base de datos en blanco en Azure para realizar la migración inicial. Al guardar el proyecto, podemos sincronizar los esquemas desde Azure a local, y viceversa. Si os fijáis, la base de datos puede estar en línea, ser un backup, un snapshot o estar dentro de control de código fuente. Muy potente.
También podemos seleccionar entre unos 50 parámetros distintos para alterar el comportamiento de los scripts de sincronización que genera, para que sean compatibles con SQL Azure.
Una vez que se realiza la comparación, se nos presenta el interfaz principal a través del cual podemos ver qué objetos del esquema son iguales o distintos en las bases de datos, llegando al nivel de detalle de generar automáticamente el T-SQL. Lo bueno de trabajar en modo intermedio con scripts, es que siempre podemos revisarlos antes de pasar a producción, además de poder dejar ese trabajo a los encargados de hacerlo.
SQLDataCompare
La segunda herramienta es muy similar a la anterior, sólo que ésta en vez de compara y sincronizar esquemas, trabaja sobre los datos, comparando cada valor de cada registro de cada tabla (podemos seleccionar qué tablas queremos comparar, no os asustéis). También se pueden seleccionar otras tantas opciones de sincronización como se hizo en el proyecto de esquemas. Toda esta configuración se guarda en un archivo de proyecto para futuros mantenimientos.
Respecto al traspaso de datos, entre otras cosas ofrece algo que el SQL Azure Migration Wizard no da, que es la generación del T-SQL de alteración de los datos –el primero utiliza BCP para realizar el upload de los datos-, muy útil cuando quieres automatizar una instalación inicializando la base de datos.
Por lo que he probado, está funcionando correctamente. Eso sí, la base de datos que tenía en local de DotNetNuke hace tiempo que le hice algunas correcciones para que no me diera tantos problemas al migrar a Azure.
Espero que resulte útil. Un saludo y happy…DBAing?