Marko Zivkovic

Cómo sincronizar bases de datos SQL de Azure y bases de datos locales con sincronización de datos SQL

July 4, 2019 by

La sincronización de datos SQL nos-permite poder sincronizar datos en varias bases de datos SQL de Azure y en bases de datos de SQL Server locales.

En este artículo, se mostrará cómo poder sincronizar la base de datos SQL de Azure con la base de datos SQL Server local.

Puede encontrar más información sobre la sincronización de datos SQL en la siguiente página ¿Qué es la sincronización de datos SQL?

Configurar la sincronización

En el navegador, diríjase al portal de Azure y encuentre la pestaña de bases de datos SQL:

En la página de bases de datos SQL, seleccione la base de datos central para sincronización de datos; en esta ocasión, se utilizará la base de datos AdventureWorks. Una vez que se selecciona la base de datos en el lado derecho debajo de la lista de CONFIGURACIÓN, encuentre el comando Sincronizar con otras bases de datos:

Ahora haga clic en el comando Sincronizar con otras bases de datos y se abrirá la página Sincronización de datos en la que se iniciará la configuración de la sincronización de datos:

Como se puede ver en esta página, actualmente no hay ningún grupo de sincronización ni ningún agente de sincronización. El agente de sincronización debe poder instalarse en el servidor de base de datos local. Para más información sobre el agente de sincronización se tratará más adelante en este artículo.

Para logar iniciar la configuración, haga clic en el botón Nuevo grupo de sincronización y se abrirá la página Nuevo grupo de sincronización:

En el cuadro Nombre del grupo de sincronización, tiene que ingresar el nombre del nuevo grupo de sincronización (por ejemplo, SyncAzureDatabaseToOnPremisesDatabase).

En el grupo Sincronizar base de datos de metadatos, elija el botón de opción Nueva base de datos o Usar la base de datos existente.

Para este ejemplo, el botón de opción Nueva base de datos se usara para poder crear una nueva base de datos en la que se colocarán los metadatos y los registros de sincronización.

Haga clic en Seleccionar: Crear nueva base de datos, se abrirá la pestaña Base de datos SQL:

En el cuadro Nombre, tiene que ingresar un nuevo nombre (Base de datos de sincronización) para la base de datos de metadatos de sincronización, configure las otras opciones en esta página y presione el botón Aceptar.

En la sección Sincronización automática, elija si la sincronización de datos debe ser automática, presionando el botón de Encendido o manualmente, presionando el botón de Apagado.

Si se presiona el botón Encendido, aparecerá la sección Sync Frequency. En esta parte se puede configurar con qué frecuencia se producirá la sincronización de datos:

Para el propósito del ejemplo, se establecerán 5 minutos.

En la Resolución de conflictos, se podrá elegir una de las dos opciones en caso de que ocurra algún conflicto:

La primera opción es la victoria de Hub. Si se escoge esta opción y se producen los confits, los datos en la base de datos central sobrescriben los datos en conflicto en la base de datos miembro.

La segunda opción es ganar miembros. En una situación de conflicto, los datos en la base de datos miembro sobrescribirán los datos en la base de datos central.

Como un ejemplo, en el cuadro desplegable Resolución de conflictos, se elegirá la opción Ganar Hub.

Después de presionar el botón OK, el nuevo grupo de sincronización se comenzará a crear.

Después de crear el grupo de sincronización, la sección Agregar miembros de sincronización se habilitará para la configuración. Bajo la base de datos del concentrador, hay que ingresar el nombre de usuario y la contraseña existentes para el servidor de base de datos SQL en el que se crea la base de datos del concentrador:

En la sección Base de datos de miembros, se puede agregar una base de datos de Azure como miembro al seleccionar Agregar una base de datos de Azure o se puede agregar una base de datos de SQL Server local al seleccionar Agregar una base de datos local. Como nosotros queremos sincronizar los datos con una base de datos de SQL Server local, en la sección Base de datos de miembros, tiene que seleccionar Agregar una base de datos local y aparecerá la pestaña Configurar locales:

Para poder iniciar la sincronización de la configuración entre la base de datos del concentrador y la base de datos SQL local, seleccione Elegir la puerta de enlace del agente de sincronización; Aparecerá la pestaña Seleccionar agente de sincronización:

Si el agente de sincronización local ya está instalado y configurado en la máquina, en la pestaña Seleccionar agente de sincronización, tiene que seleccionar el botón de opción Agentes existentes y, en el cuadro combinado, elija el agente.

En el caso de que el agente de sincronización no esté configurado, elija el botón de opción Crear un nuevo agente. A continuación aparecerán tres pasos adicionales en la pestaña Seleccionar agente de sincronización:

En el primer paso, el Client Sync Agent debe instalarse en la máquina donde se encuentra el SQL Server local. Sync Agent se utiliza para comunicarse entre el concentrador y la base de datos de SQL Server local.

Configure el Agente de sincronización de datos de SQL Azure

Haga clic en el enlace de descarga para poder descargar el Agente de sincronización de datos de SQL Azure:

Después de descargar el agente de sincronización, haga doble clic en SQLDataSyncAgent-2.0-x86-ENU:

El proceso de instalación (configuración) comenzará:

Tiene que presionar el botón Siguiente para continuar. En la ventana Acuerdo de licencia e Información de privacidad, lea el acuerdo y, si está de acuerdo, tiene que seleccionar el botón de opción Acepto y presione el botón Siguiente:

En esta página, ingrese las credenciales de Windows y presione el botón Siguiente:

En el cuadro de Carpeta, ingrese la ubicación donde se va a instalar el Agente de sincronización de datos de Microsoft SQL y presione el botón Siguiente para poder continuar:

Esta página nos indica que el paquete de instalación está listo para ser instalado y hay que presionar el botón Siguiente para seguir con la instalación del agente de sincronización:

En la última página indica que el proceso de instalación se ha completado con éxito:

Presione el botón Cerrar para poder cerrar la ventana de instalación y, en el menú Inicio, busque e inicie el Agente de sincronización de datos de Microsoft SQL:

Aparecerá la ventana de sincronización de datos de Microsoft SQL:

Entonces, vuelva al portal de Azure y, en el cuadro Nombre del agente, tiene que ingresar el nombre del agente de sincronización y presione el botón Crear y generar clave:

Después de un tiempo, la clave de agente se generará en el cuadro Generar una clave de agente:

Copie esa clave y vaya a la ventana de sincronización de datos de Microsoft SQL y presione el botón Enviar clave de agente. Aparecerá la ventana Configuración de la base de datos de metadatos de sincronización:

En el campo Clave del agente, tiene que pegar la clave del agente anteriormente copiado y en los campos Inicio de sesión y Contraseña, ingrese las credenciales existentes para el servidor de base de datos SQL de Azure donde se encuentra la base de datos del concentrador:

Para poder probar si todo está bien, presione el botón Probar conexión. Si todo está bien, tendría que aparecer el siguiente mensaje:

Tiene que tener en cuenta que, al realizar la sincronización con la base de datos miembro de SQL Server local con la base de datos central, en la configuración del firewall, la regla de TCP saliente con el puerto 1433 debe agregarse para permitir la comunicación entre ellos:

De lo contrario, puede que aparezca el siguiente cuadro de mensaje de error:

Puede encontrar más información sobre la configuración de reglas de entrada y salida en la siguiente página Cómo conectarse a un servidor SQL remoto.

Además, este error puede aparecer cuando el firewall de Azure no está configurado. Para poder resolver esto, vaya al portal de Azure y, bajo los servidores SQL, encuentre la opción de Firewalls y redes virtuales y, desde allí, agregue la dirección IP que se muestra en el cuadro de mensaje de error:

Una vez que todas estas reglas estén establecidas en la ventana de sincronización de datos de Microsoft SQL, presione el botón OK para continuar.

Ahora, en la ventana de sincronización de datos de Microsoft SQL, Tiene que hacer clic en el botón Registrar y aparecerá la ventana de configuración del servidor SQL:

En esta ventana, la forma en que se establecerá la conexión con el SQL Server se puede elegir mediante el uso de la autenticación de SQL o Windows. Como por ejemplo, se tendrá que elegir la autenticación de Windows. En los campos Servidor, escriba el nombre de SQL Server en el que se encuentra una base de datos que se elige para sincronizar con la base de datos central de Azure y, en el campo Base de datos, ingrese el nombre de la base de datos.

Por ejemplo, se elige la base de datos vacía AdventureWorksOnPremises:

Cuando los campos debajo de la ventana de Configuración de SQL Server estén archivados, haga clic en el botón Probar conexión para poder verificar que la conexión sea exitosa. Después de verificar la conexión, haga clic en el botón Guardar:

La base de datos AdventureWorksOnPremises aparecerá en la lista de bases de datos de la ventana de sincronización de datos de Microsoft SQL:

Ahora, la ventana de sincronización de datos de Microsoft SQL se puede cerrar.

De nuevo, vuelva al portal de Azure y en la pestaña Seleccionar agente de sincronización, tiene que presionar el botón Aceptar:

Entonces, en la pestaña Configurar en las instalaciones, seleccione Seleccionar la base de datos y aparecerá la pestaña Seleccionar base de datos. En el cuadro Nombre de miembro de sincronización, tiene que ingresar el nombre del nuevo miembro de sincronización. En las bases de datos locales conectadas a este cuadro combinado de agente, tiene que seleccionar la base de datos de SQL Server (AdventureWorksOnPremises) y, en el cuadro combinado Sincronizar direcciones, elija cómo se realizará la sincronización de datos.

Ahora se puede seleccionar una de las siguientes opciones:

  • Sincronización bidireccional: los cambios de datos en la base de datos de SQL Server local o en la base de datos central se escriben en la otra base de datos.
  • En el concentrador: los cambios de datos en la base de datos de SQL Server local se escriben en la base de datos de concentrador, pero los cambios en la base de datos de concentrador no se escriben en el servidor de SQL local
  • Desde el concentrador: los cambios de datos en la base de datos del concentrador se escriben en el servidor SQL local, pero los cambios del servidor SQL local no se escriben en la base de datos del concentrador.

Ahora, en este ejemplo, la sincronización de datos se realizará desde la base de datos del concentrador a la base de datos local, lo que significa que la opción Desde el concentrador se elegirá en el cuadro combinado Sincronizar direcciones:

Tiene que presionar el botón OK en las pestañas SelectDatabase y Configure On-Premises y espere unos segundos a que se cree el nuevo miembro:

En la pestaña Seleccionar miembros de sincronización, hay que presionar el botón OK para poder cerrar esta pestaña. Después de unos segundos, se resaltará el grupo Configurar sincronización:

Debajo de la pestaña Tablas en el cuadro combinado Seleccionar una base de datos, tiene que elegir la base de datos y presione el botón de actualización: Actualizar. Después de un tiempo, en la lista Seleccionar tablas para sincronizar, van a aparecer las tablas. Entonces tiene que seleccionar las tablas que quiere sincronizar. En la lista Seleccionar campos para sincronizar, se mostrarán todas las columnas de las tablas seleccionadas en la lista Seleccionar tablas para sincronizar. De forma predeterminada, se seleccionan todas las columnas disponibles en la lista Seleccionar campos para sincronizar. Las columnas que no desean sincronizarse se pueden desactivar, pero asegúrese de que las columnas con Keystay principal marcadas:

Después de que todo esté ya configurado correctamente, presione el botón Guardar.

Entonces, todo lo que se puede hacer es esperar 5 minutos, lo cual se configura en la sección Frecuencia de sincronización para activar la sincronización o al hacer clic en el botón Sincronizar para activar la sincronización de inmediato:

En la lista de Registros, se puede verificar si la sincronización va bien o esta con errores. Para verificar si los datos aparecen en la base de datos de SQL Server local, conéctese a SQL Server, donde se encuentra la base de datos de miembros sincronizados y, en el Explorador de objetos, verifique si las tablas deseadas aparecen en la lista debajo de la carpeta Tablas:

En el caso de que ocurran otros problemas con la sincronización de datos SQL, visite la siguiente página: Solucionar problemas con la sincronización de datos SQL

Marko Zivkovic
SQL Azure

Acerca de Marko Zivkovic

Marko es un ingeniero mecánico a quien le gusta jugar basketball, football (table-soccer) y escuchar música rock. Está interesado en código SQL, desarrollo PHP y técnicas en HTML y CSS. Actualmente trabajando para ApexSQL LLC como un Ingeniero de Ventas de Software, él está ayudando a los clientes con problemas técnicos y hace aseguramiento de calidad para los complementos ApexSQL Complete, ApexSQL Refactor y ApexSQL Search. Ver todas las entradas de Marko Zivkovic

168 Views