viernes, 14 de junio de 2013

Sincronizacion de Bases de Datos en Nube

¿Qué es la sincronización de Bases de Datos en Nube?

La sincronización de bases de datos en nube es el mecanismo de mantener la misma versión de datos en múltiples dispositivos a través de un servidor alojado en internet.

La sincronización en la nube consiste en un grupo de servidores alojados en internet encargados de atender las peticiones en cualquier momento. Se puede tener acceso a su información o servicio, mediante una conexión a internet desde cualquier dispositivo móvil o fijo ubicado en cualquier lugar. Sirven a sus usuarios desde varios proveedores de alojamiento repartidos frecuentemente por todo el mundo. Esta medida reduce los costes, garantiza un mejor tiempo de actividad y que los sitios web sean invulnerables a los hackers, a los gobiernos locales y a sus redadas policiales.

Ventajas:

    • Integración con facilidad y rapidez.
    • Prestación de servicios a nivel mundial.
    • Actualizaciones automáticas.
    • Reducción de equipos.
    • Comodidad y Accesibilidad inmediata a los datos.

    Desventajas:

    • La disponibilidad de las aplicaciones está ligada a la disponibilidad de acceso a Internet.
    • Los datos "sensibles" de la empresa no residen en sus instalaciones.
    • La confiabilidad de los servicios depende de la "salud" tecnológica y financiera de los proveedores de servicios en nube.
    • Escalabilidad a largo plazo. A medida que más usuarios empiecen a compartir la infraestructura de la nube, la sobrecarga en los servidores aumentará, si no se  posee un esquema de crecimiento óptimo puede llevar a degradaciones en el servicio. 



    ¿Qué es Windows Azure?

    Windows Azure (anteriormente Azure Services Platform) es una plataforma ofrecida como servicio y alojada en los Data Centers de Microsoft.

    Una ventaja añadida es que los desarrolladores y el personal de IT no necesita instalar, actualizar y gestionar la infraestructura de bases de datos. La alta disponibilidad, aspecto siempre complejo, es gestionado de manera transparente.

    La gran ventaja de utilizar SQL Azure frente a otros sistemas de almacenamiento en la nube es que todos los conocimientos sobre bases de datos relacionales y el lenguaje de consulta SQL siguen siendo válidos. No es necesario adaptar los conocimientos a nuevos paradigmas de almacenamiento, como pasa con otros sistemas de almacenamiento en la nube no basados en bases de datos relacionales ni SQL. “Si sabes utilizar SQL Server, todos tus conocimientos te valen para SQL Azure”.

    Es cierto que hay ciertas características de SQL Server que SQL Azure no soporta, pero si soporta todas las más usadas:

    • ·          Tablas, tablas temporales, vistas, índices, roles, procedimientos almacenados y funciones.
    • ·          Consultas complejas y ‘joins’ entre múltiples tablas.
    • ·          Insert, update y delete.
    • ·          Restricciones
    • ·          Transacciones


    Entre las caracteristicas no soportadas cabe destacar:

    • ·          Transacciones distribuidas
    • ·          El broker de mensajes de SQL Server
    • ·          Consultas a servidores remotos
    • ·          Acceso desde tecnologías antiguas, ya obsoletas, en concreto OleDb, etc.


    Sincronización con Windows Azure

    Con la aparición de SQL Azure, se abre todo un mundo de posibilidades para el uso de bases de datos en la nube; no solo para albergar aplicaciones sin necesidad de infraestructura y en régimen de pago por uso, sino también para mantener versiones de bases de datos SQL Server sincronizadas en la nube, a modo de herramienta de continuidad de negocio, que permita mantener los datos sincronizados y en una ubicación física diferente a la empresarial. Asimismo, aquellas aplicaciones que cuenten con usuarios móviles, o que necesiten proporcionar parte de la información a proveedores o clientes a través de Internet, son buenas candidatas para sincronizar con los servidores de SQL Server on-premise (locales).

    Las bases para la sincronización: SQL Azure Data Sync

    Microsoft Data Sync es el marco de trabajo que nos proporciona la infraestructura necesaria para realizar este tipo de sincronizaciones, permitiéndonos centrarnos solo en la parte más relacionada con el negocio y abstrayendo la parte más "de detalle" del proceso.

    Es un servicio de sincronización de datos en la nube basada en las tecnologías de Microsoft Sync Framework. SQL Azure Data Sync permite crear y programar sincronizaciones periódicas entre SQL Azure y SQL Server (local) u otras bases de datos de SQL Azure. Proporciona sincronización bidireccional de datos y las capacidades de gestión de datos permite que los datos que se pueden compartir fácilmente a través de bases de datos SQL Azure en múltiples centros de datos.

    Requisitos para el uso de SQL Azure Data Sync

    Los requisitos previos para el uso de SQL Azure Data Sync son:

    •      Tener una cuenta de Windows Live ID. Si no se tiene, una cuenta de Windows Live
    •      ID ir a la página de Windows Live y registrarse.
    •     Tener una cuenta de Windows Azure activa. Si no tiene una cuenta de Windows Azure ir a la página de    inicio  de Windows Azure y regístrate o aplicar a la evaluación gratuita de 90 días.

    •      Tener una suscripción activa de base de datos de Windows Azure SQL Database.

     Las bases de datos On-premises deben ser SQL Server 2005 Service Pack 3 o posterior.


    Desarrollo

    El escenario planteado consiste la replicación de una base de datos local de SQL Server, con otra almacenada en la nube, para fines demostrativos solamente replicamos una tabla muy sencilla, cuya estructura deberá ser la misma en la base de datos Azure. Esto puede ser escalado y dependerá de que tablas o campos queramos mantener sincronizados.

     Instalar el Client Agent

    Para lograr la sincronización de Bases de Datos de SQL Server con la de SQL Azure se debe instalar  el Agent Client., el cual es el encargado de gestionar todo lo relacionado a la sincronización de la base de datos local.


    Instale el software requerido

    •      .NET Framework 4.0
    •      Microsoft SQL Server 2008 R2 SP1 System CLR Types  (x86)
    •      Microsoft SQL Server 2008 R2 SP1 Shared Management Objects (x86)

    Una vez instalado el software requerido procedemos a la Instalación de Microsoft SQL Data Sync Agent Preview como se muestra en las siguientes imágenes:


    Introducir un nombre de usuario y una contraseña:


    Elegir el directorio donde se va a instalar. A continuación solo dar click en siguiente hasta finalizar.

    Procedimiento para la Sincronización en Windows Azure con Data Sync

     Entrar a la Base de Datos usando la autenticación de Windows


    En este documento se hará referencia a una Base de Datos llamada “uesocc”, con una tabla llamada “dbo_alumnos” la cual ya contiene algunos datos agregados

     Dirigirse al sitio web de Windows Azure cuya dirección es www.windowsazure.com/es-es/ dentro del sitio de Azure dar clic en la opción de Portal


     Iniciar sesión con nuestra cuenta de correo electrónico y la contraseña.

    Aparecerá el portal de Windows Azure con todos sus servicios.

    En el panel izquierdo damos clic en Bases de Datos SQL para crear una nueva base de datos


    Ahora creamos un Servidor dando clic en la opción SERVIDORES



     Dar clic en la opción Crear un servidor de Bases de Datos SQL



     Ingresamos el nombre del servidor, la contraseña de acceso al mismo y la región que este mas cerca a nuestra zona. La contraseña debe contener letras mayúsculas, minúsculas y números. Después de llenar los campos damos clic en el cheque o Completado.
    Una vez creado el servidor aparece en el panel inicial, ahora vamos a crear la base de datos dando clic en BASE DE DATOS

     Dar clic en Crear una Base de Datos SQL


    Se coloca el nombre de la Base de Datos, se define que es una edición web, se asigna el tamaño de capacidad de almacenamiento, se define el tipo de lenguaje que se utilizara y por último se le indica que pertenecerá al servidor que recién acabamos de crear. Luego dar clic en Completado


    Para administrar la Base de datos damos clic en Administrar


    La primera vez que se accesa aparece un mensaje que pedirá confirmar las reglas del firewall para la administración de la base de datos


    Espera un momento mientras se carga el portal de administración. Iniciar sesión con el nombre de la Base de Datos, el nombre de Usuario y Contraseña del servidor, luego dar clic en Iniciar  Sesión
    Una vez cargado el modulo de administración dar clic en Diseñar



     Hay dos formas de crear una tabla:

    PRIMERA - Mediante una nueva consulta sql.

    1.- Dar clic en la opción Nueva que se encuentra en parte superior.
    2.- En el apartado se introduce el código para crear una tabla la cual tiene que ser exactamente igual a la creada en la Base de Datos del Servidor local.
    3.- Dar clic en Ejecutar y aparecerá un mensaje que nos indica que la tabla se ha creado con éxito.
    4.- Volvemos al panel de Diseñar y damos clic en Actualizar
    5.- Aparecerá la tabla  con todos sus campos creados.



    SEGUNDA - Con el diseñador.

    1.- Dar clic en Nueva Tabla
    2.- Comenzar a llenar los campos con la estructura que tendrá la tabla con nombre de la tabla, nombre de las columnas, tipo de datos y longitud.
    3.- Clic en Guardar y aparecerá la nueva tabla creada



    Lo que sigue es crear el Agente de Sincronización. Dirigirse a la parte inferior del panel y dar clic en la opción Agente de Sincronización, luego elegir Nuevo Agente de Sincronización.


    Agregar un nombre al Nuevo Agente de Sincronización y una Contraseña, luego dar clic en Aplicar


    Lo que sigue es crear una clave de identificación con la cual se podrá tener acceso a la Base de Datos que se encuentra en Azure.


    Dar clic en el botón Generar y luego en la opción Copiar. Posteriormente clic en Aplicar.





     En el equipo local ejecutar Microsoft SQL Data Sync  Agent Preview y dar clic en Submit Agent Key y pegar la contraseña generada con el Agente de Sincronizacion


    Para comprobar la conexión se hace un ping de servicio haciendo clic en Ping Sync Service, si todo esta bien aparecerá un mensaje indicando el resultado positivo de conexión.


    A continuación se hace el registro del servidor y de la Base de Datos que vamos a sincronizar dando clic en Register. Seleccionar la autenticación de Windows, ingresar el nombre del servidor y el nombre de la Base de Datos, luego dar clic en Test Conection para verificar que todo este bien de ser asi aparecerá un mensaje corroborándolo


    Lo siguiente es crear un grupo de Sincronizacion, dicho grupo contendrá las bases de datos que participaran en la sincronización. En el panel principal de Windows Azure dar clic en Agente de Sincronización luego elegir la opción Nuevo Grupo de Sincronización



    Agregar un nombre al nuevo Grupo de Sincronización y seleccionar la región, luego clic en la flecha siguiente


    Seleccionar la ubicación de la Base de Datos Central, introducir el nombre de usuario y contraseña de la misma. Dar clic en la flecha siguiente.


    Seleccionar la Base de Datos que se encuentra en el servidor local, los otros campos quedan vacios. Dar clic en el botón Siguiente.


    Lo que sigue es crear las reglas de sincronización. Seleccionar el grupo creado y luego dar clic en REGLAS DE SINCRONIZACION




    En el panel que aparece dar clic en DEFINIR REGLAS DE SINCRONIZACION, aparecerá un asistente para crear la regla. Seleccionar el nombre del Servidor, los campos y la tabla que se quiere sincronizar para finalizar dar clic en Guardar.


    Una vez creada la regla, ir a la opción CONFIGURAR ahí se hará lo siguiente:

    1.- Activar el grupo de Sincronización.
    2.- Definir cada cuanto se estarán actualizando los datos.
    3.- Guardar la configuración


    Con esto ya tenemos listo todo el escenario, ahora queda por parte del usuario hacer las pruebas respectivas para comprobar la funcionalidad con esta herramienta. Para una ayuda audiovisual puede ver el video donde se encuentran los mismos pasos con mayor detalle, pueden verlo en este video:





    Referencias

    2 comentarios:

    Elkin Garces Carreño dijo...

    gracias por compartir, tengo un problema que no encuentro la opcion de administrar la base de datos desde azure. me podrias ayudar a la fecha de hoy azure se ve diferente a los pantallazos que tienes. gracias

    Samuel Torres Morales dijo...

    Buenas tardes. Solo en Azure se pueden sincronizar Bases de Datos SQL en Nube?

    Es que yo tengo un servidor en la nube con 1&1, y quiero replicar ahi una BD de SQL que tengo en un servidor de mi oficina, pero al llegar el paso donde tengo que crear la suscripcion y conectarme a la BD en el servidor en la nube, no lo permite, a pesar de que si yo me conecto con el Managment a ese servidor de manera remota no tengo problema.

    Gracias y saludos