Published on

December 18, 2020

Sincronización de bases de datos SQL

Mantener las bases de datos de SQL Server y las bases de datos de SQL Database / SQL Managed Instance (SQL MI) sincronizadas de forma asíncrona se puede lograr a través de varios métodos. En esta publicación de blog, exploraremos algunas de estas opciones y discutiremos sus casos de uso.

Un caso de uso común para la sincronización de bases de datos es distribuir lecturas, como tener una segunda copia de la base de datos para fines de informes. Otro caso de uso es para aplicaciones híbridas, donde algunos datos se almacenan localmente y otros en Azure. Además, la sincronización de bases de datos puede ser beneficiosa para aplicaciones distribuidas globalmente, ya que ayuda a reducir la latencia de la red al tener datos en regiones más cercanas a los usuarios. Por último, la sincronización de bases de datos también puede ser útil para mantener una base de datos de prueba o desarrollo sincronizada con una base de datos de producción.

Echemos un vistazo a algunas de las opciones disponibles para sincronizar bases de datos SQL:

Azure Data Factory (ADF) o SQL Server Integration Services (SSIS)

Utilizar una herramienta ETL como Azure Data Factory o SQL Server Integration Services permite construir una solución para sincronizar bases de datos. Sin embargo, este enfoque puede ser complejo, ya que requiere determinar qué registros han cambiado en la base de datos de origen.

Azure SQL Data Sync

Azure SQL Data Sync es un servicio web de Microsoft Windows Azure que proporciona capacidades de sincronización de datos bidireccional para bases de datos SQL. Permite la sincronización entre bases de datos de SQL Server locales y bases de datos de SQL de Azure, así como mantener múltiples bases de datos de SQL de Azure sincronizadas. Tenga en cuenta que Azure SQL Managed Instance no es compatible en este momento.

Grupo de disponibilidad Always On de SQL Server, Replicación activa de Geo de SQL Database o Grupo de conmutación por error automática de SQL Managed Instance

Estas opciones implican una replicación unidireccional que copia automáticamente los datos a una o más réplicas secundarias. Si bien se pueden utilizar para la recuperación ante desastres, están diseñadas principalmente para sincronizar bases de datos.

Replicación de SQL Server

SQL Server admite seis tipos de replicación para copiar datos de una base de datos a otra. Azure SQL Database solo se puede utilizar como suscriptor de envío en una topología de replicación transaccional o de instantánea unidireccional. El publicador y/o distribuidor pueden ser una instancia de SQL Server que se ejecuta localmente, una instancia administrada de SQL de Azure o una instancia de SQL Server que se ejecuta en una máquina virtual de Azure.

Copia de seguridad/restauración de SQL Server, exportación/importación o instantánea de base de datos

Estas opciones implican hacer una copia completa de la base de datos en lugar de solo una copia incremental. Si bien se pueden utilizar para la recuperación ante desastres, tienen la desventaja de períodos más largos en los que la base de datos de destino no está disponible.

Productos de terceros

Existen varios productos de terceros disponibles que ofrecen soluciones de replicación de bases de datos, como Attunity Replicate, striim, ScaleArc para SQL Server, StarQuest Data Replication y RedGate SQL Data Compare. Estos productos pueden proporcionar características adicionales y flexibilidad para sincronizar bases de datos.

Azure Database Migration Service (DMS)

Azure Database Migration Service ofrece una opción en línea (sincronización continua) para copiar datos de SQL Server a Azure SQL Database o SQL Managed Instance con un tiempo de inactividad mínimo.

Azure Arc

Si necesita copiar datos por motivos de latencia y/o soberanía de datos, Azure Arc podría ser una solución adecuada. Azure Arc permite la replicación transparente de datos a regiones especificadas con una sincronización casi instantánea y sin tiempo de inactividad.

SQL Server Service Broker

Crear una aplicación de mensajería y encolamiento utilizando SQL Server Service Broker puede ser una opción donde todas las escrituras se colocan en la cola y se envían a diferentes servidores. Sin embargo, vale la pena señalar que el Service Broker es lento y rara vez utilizado por los clientes.

Servicios de mensajería de Azure

Otra opción es crear una cola de mensajes utilizando servicios asincrónicos de Azure como Azure Event Hub, Azure Service Bus o Azure Event Grid. Estos servicios proporcionan mensajería confiable y se pueden utilizar para sincronizar bases de datos.

Todas las opciones anteriores permiten sincronizar bases de datos sin realizar cambios en la base de datos de origen. Sin embargo, si tiene la flexibilidad de cambiar su solución de base de datos, Cosmos DB puede simplificar en gran medida el proceso de copiar datos. Cosmos DB puede replicar datos de forma transparente a todas las regiones especificadas casi instantáneamente y sin tiempo de inactividad.

Cuando considere qué opción es la mejor para su situación, es importante comprender si es de empuje/tirón, si requiere nueva infraestructura, la latencia de los datos y el costo asociado con cada opción.

Para obtener más información y discusiones detalladas sobre estas opciones, puede visitar el blog de James Serra.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.