¿Qué es SQL Data Sync para Azure?

Se aplica a:Azure SQL Database

Importante

SQL Data Sync se retira el 30 de septiembre de 2027. Considera migrar a soluciones alternativas de replicación y sincronización de datos. Como parte del proceso de jubilación, no puedes crear nuevos grupos de sincronización en suscripciones de Azure que antes no usaran SQL Data Sync. Los grupos de sincronización existentes pueden seguir funcionando hasta la fecha de retirada, pero deberías migrarlos a una solución alternativa antes de esa fecha.

SQL Data Sync es un servicio construido sobre Azure SQL Database que puedes utilizar para sincronizar datos seleccionados de forma bidireccional a través de múltiples bases de datos, tanto locales como en la nube.

Azure SQL Data Sync no soporta Azure SQL Managed Instance ni Azure Synapse Analytics.

Información general

La sincronización de datos se basa en el concepto de un grupo de sincronización. Un grupo de sincronización es un grupo de bases de datos que desea sincronizar.

Data Sync usa una topología de concentrador y radio para sincronizar los datos. Defina una de las bases de datos del grupo de sincronización como base de datos central. El resto de las bases de datos son bases de datos miembro. La sincronización solo se produce entre la base de datos central y los clientes individuales.

  • La base de datos central debe ser una base de datos de Azure SQL.
  • Las bases de datos miembro pueden ser bases de datos de Azure SQL Database o de instancias de SQL Server.
  • La Base de datos de metadatos de sincronización contiene los metadatos y el registro de Data Sync. La Base de datos de metadatos de sincronización debe ser una Azure SQL Database ubicada en la misma región que la base de datos central. La Base de datos de metadatos de sincronización es creada y propiedad del cliente. Solo puede tener una Base de datos de metadatos de sincronización por región y suscripción. La base de datos de metadatos de sincronización no se puede eliminar ni cambiar de nombre mientras existan grupos de sincronización o agentes de sincronización. Microsoft recomienda crear una base de datos nueva y vacía para usarla como Base de datos de metadatos de sincronización. Data Sync crea tablas en esta base de datos y ejecuta una carga de trabajo frecuente.

Nota:

Si usa una base de datos local como base de datos miembro, tendrá que instalar y configurar un agente de sincronización local.

Diagrama que explica el proceso de sincronización de datos entre bases de datos.

Un grupo de sincronización tiene las siguientes propiedades:

  • En el esquema de sincronización se describen qué datos se están sincronizando.
  • La Dirección de Sincronización puede ser bidireccional, o puede fluir solo en una dirección: Hub a Miembro, Miembro a Hub, o ambas.
  • El intervalo de sincronización describe la frecuencia con la que se produce la sincronización.
  • El Política de Resolución de Conflictos es una política de nivel de grupo, que puede ser Prevalece el Hub o Prevalece el Miembro.

Cuándo se usa

Data Sync es útil en casos en que es necesario mantener los datos actualizados entre varias bases de datos de Azure SQL Database o de SQL Server. Estos son los casos de uso principales de Data Sync:

  • Sincronización de datos híbridos: con Data Sync, puede mantener los datos sincronizados entre las bases de datos de SQL Server y de Azure SQL Database para permitir aplicaciones híbridas. Esta capacidad puede interesar a los clientes que se plantean realizar la migración a la nube y les gustaría colocar algunas de sus aplicaciones en Azure.
  • Aplicaciones distribuidas: en muchos casos, es conveniente separar diferentes cargas de trabajo entre diferentes bases de datos. Por ejemplo, si tiene una base de datos de producción grande, pero también debe ejecutar una carga de trabajo de informes o análisis en estos datos, resulta útil tener una segunda base de datos para esta carga de trabajo adicional. Este enfoque minimiza el impacto de rendimiento en la carga de trabajo de producción. Puede usar Data Sync para mantener estas dos bases de datos sincronizadas.
  • Aplicaciones globalmente distribuidas: muchas empresas abarcan varias regiones e incluso varios países. Para minimizar la latencia de red, es preferible disponer de los datos en una región más cercana. Con Data Sync, puede mantener sincronizadas con facilidad las bases de datos de regiones de todo el mundo.

Data Sync no es la solución preferida en los siguientes escenarios:

Escenario Algunas soluciones recomendadas
Recuperación ante desastres Copias de seguridad automatizadas en Azure SQL Database
Escalado de lectura Uso de réplicas de solo lectura para descargar cargas de trabajo de consulta de solo lectura
ETL (OLTP a OLAP) Azure Data Factory o SQL Server Integration Services
Migración de SQL Server a Azure SQL Database Sin embargo, se puede utilizar SQL Data Sync una vez completada la migración para asegurarse de que el origen y el destino se mantienen sincronizados. Azure Database Migration Service

Funcionamiento

  • Seguimiento de cambios en los datos: Data Sync registra los cambios mediante desencadenadores de inserción, actualización y eliminación. Los cambios se registran en una tabla en la base de datos de usuario. BULK INSERT no activa los desencadenadores de forma predeterminada. Si no especificas FIRE_TRIGGERS, no se ejecuta ningún disparador de inserción. Añade la FIRE_TRIGGERS opción para que Data Sync pueda rastrear esos insertos.
  • Sincronización de datos: Data Sync está diseñado en un modelo radial. La base de datos central se sincronizada con cada cliente individualmente. Los cambios de la base de datos central se descargan en el cliente y, después, los cambios del cliente se cargan en la base de datos central.
  • Resolución de conflictos: Data Sync proporciona dos opciones para la resolución de conflictos, Prevalece la base de datos central o Prevalece el miembro.
    • Si selecciona Prevalece la base de datos central, los cambios de la base de datos central siempre sobrescriben los cambios del cliente.
    • Si selecciona Prevalece el cliente, los cambios del cliente sobrescriben los cambios de la base de datos central. Si hay más de un cliente, el valor final depende del cliente que primero se sincronice.

Compárese con la replicación transaccional

Sincronización de datos Replicación transaccional
Ventajas - Compatibilidad activo-activo
- Bidireccional entre on-premises y Azure SQL Database
- Menor latencia
- Coherencia transaccional
- Reutilización de la topología existente después de la migración
— Soporte para Instancia Administrada de Azure SQL
Desventajas - Sin coherencia transaccional
- Mayor impacto en el rendimiento
- No se puede publicar desde base de datos de Azure SQL
- Alto costo de mantenimiento

Precaución

SQL Data Sync requiere la autenticación de SQL para las conexiones a las bases de datos de concentrador y miembro. La autenticación de Microsoft Entra ID no es compatible con SQL Data Sync.

Como la autenticación SQL se basa en contraseñas estáticas, no se beneficia de protecciones modernas como la autenticación multifactor (MFA), el Acceso Condicional o las identidades gestionadas. Esta dependencia puede aumentar la exposición de toda la instancia SQL al robo de credenciales, ataques de fuerza bruta y sobrecarga operativa para la rotación de contraseñas y la aplicación de políticas.

Siempre que sea posible, prefiera soluciones que admitan la autenticación de Microsoft Entra o las identidades administradas. Como SQL Data Sync está programado para su retirada, migra a una alternativa que se ajuste a los estándares de seguridad de tu organización.

Nota:

El vínculo privado de SQL Data Sync es diferente del Azure Private Link.

La nueva característica de vínculo privado le permite elegir un punto de conexión privado administrado por un servicio para establecer una conexión segura entre el servicio de sincronización y las bases de datos centrales o de los miembros durante el proceso de sincronización de datos. Un punto de conexión privado administrado por un servicio es una dirección IP privada dentro de una red virtual y una subred específicas. En Data Sync, Microsoft crea el punto de conexión privado administrado por el servicio y lo usa exclusivamente el servicio Data Sync para una operación de sincronización determinada.

Antes de configurar el vínculo privado, lea los requisitos generales de la característica.

Diagrama del vínculo privado para Data Sync.

Nota:

Debe aprobar manualmente el punto de conexión privado administrado por el servicio en la página Conexiones de punto de conexión privado de Azure Portal durante la implementación del grupo de sincronización o mediante PowerShell.

Comenzar

Configuración de Data Sync en Azure Portal

Configuración de la sincronización de datos con PowerShell

Configuración de la sincronización de datos con la API REST

Revisión de los procedimientos recomendados para Data Sync

¿Ha ido algo mal?

Coherencia y rendimiento

Coherencia final

Como Data Sync se basa en disparadores, no garantiza la consistencia transaccional. Microsoft garantiza que Data Sync acabará haciendo todos los cambios y no causará pérdida de datos.

Impacto en el rendimiento

Data Sync usa desencadenadores de inserción, actualización y eliminación para realizar un seguimiento de los cambios. Crea tablas laterales en la base de datos de usuario para hacer un seguimiento de los cambios. Estas actividades de seguimiento de cambios afectan a la carga de trabajo de la base de datos. Evalúe el nivel de servicio y realice la actualización si fuera necesario.

El aprovisionamiento y desaprovisionamiento durante la creación, actualización y eliminación de grupos de sincronización pueden afectar también al rendimiento de la base de datos.

Limitaciones y requisitos

Requisitos generales

  • Cada tabla debe tener una clave principal. No cambie el valor de la clave principal de ninguna fila. Si tiene que cambiar un valor de clave principal, elimine la fila y vuelva a crearla con el nuevo valor de clave principal.

Importante

Cambiar el valor de una clave primaria existente da lugar al siguiente comportamiento defectuoso:

  • Los datos entre el hub y el miembro pueden perderse aunque la sincronización no reporte ningún problema.
  • La sincronización puede fallar porque la tabla de seguimiento contiene una fila inexistente en el origen debido a un cambio en la clave primaria.
  • El aislamiento de instantánea debe estar habilitado tanto para el centro como para los miembros de sincronización. Para más información, consulte Aislamiento de instantáneas en SQL Server.

  • Para utilizar el enlace privado Data Sync, tanto la base de datos miembro como la hub deben estar alojadas en Azure (en la misma región o en diferentes regiones), en el mismo tipo de nube (por ejemplo, tanto en la nube pública como en la nube gubernamental). Además, registra a los Microsoft.Network proveedores de recursos para las suscripciones que alojan el hub y los servidores miembros. Debes aprobar manualmente el enlace privado para Data Sync durante la configuración de sincronización, dentro de la sección de conexiones privadas de endpoint en el portal de Azure o a través de PowerShell. Para más información sobre cómo aprobar el enlace privado, consulta el Tutorial: Configurar SQL Data Sync entre bases de datos en Azure SQL Database y SQL Server. Una vez que apruebas el endpoint privado gestionado por el servicio, toda la comunicación entre el servicio de sincronización y las bases de datos miembros/hubs se realiza a través del enlace privado. Puedes actualizar los grupos de sincronización existentes para activar esta función.

Limitaciones generales

  • Una tabla no puede tener una columna de identidad que no sea la clave principal.
  • Una clave principal no puede tener los siguientes tipos de datos: sql_variant, binary, varbinary, image, xml.
  • Tenga cuidado al usar los siguientes tipos de datos como clave principal, porque la precisión admitida solo llega al segundo: time, datetime, datetime2, datetimeoffset.
  • Los nombres de objetos (bases de datos, tablas y columnas) no pueden contener los caracteres imprimibles punto (.), corchete de apertura ([) o corchete de cierre (]).
  • Un nombre de tabla no puede contener caracteres imprimibles: ! " # $ % ' ( ) * + - o espacio.
  • No se admite la autenticación de Microsoft Entra (anteriormente Azure Active Directory).
  • Si hay tablas con el mismo nombre pero esquemas diferentes (por ejemplo, dbo.customers y sales.customers), solo puedes añadir una de las tablas al grupo de sincronización.
  • No se admiten columnas con tipos de datos definidos por el usuario.
  • No se admite el traslado de servidores entre diferentes suscripciones.
  • Si dos claves principales solo son diferentes en el uso de mayúsculas (por ejemplo, Foo y foo), Data Sync no admitirá este escenario.
  • El truncamiento de tablas no es una operación admitida por Data Sync (no se realiza el seguimiento de los cambios).
  • No se admite el uso de una base de datos de Hiperescala de Azure SQL como base de datos central o de metadatos de sincronización. Sin embargo, una base de datos de Hiperescala puede ser una base de datos miembro en una topología de Data Sync.
  • No se admiten las tablas optimizadas para memoria.
  • Los cambios de esquema no se replican automáticamente.
  • Data Sync solo soporta las siguientes dos propiedades de índice: Único, Agrupado/No Agrupado. No se admiten otras propiedades de un índice como IGNORE_DUP_KEY o el predicado de filtro WHERE, y el índice de destino se aprovisiona sin estas propiedades incluso si el índice de origen las tiene establecidas.
  • No se puede usar una base de datos de trabajos elásticos de Azure como base de datos de metadatos de SQL Data Sync y viceversa.
  • SQL Data Sync no se admite para las bases de datos de libro de contabilidad.
  • Data Sync no es una herramienta de recuperación ante desastres ni de alta disponibilidad, y no sincroniza su propia información de grupo de sincronización. No existe recuperación automática ante desastres para Data Sync.
  • Data Sync no soporta perímetro de seguridad de red por diseño. Data Sync se ejecuta como un servicio proxy en lugar de un recurso de Azure, por lo que no tiene un nombre de dominio o dirección IP completamente cualificado contra el cual escribir reglas perimetrales. Un perímetro bloquea los caminos de red que Data Sync requiere tanto en modo transición como en modo forzado, y ninguna regla de acceso lo hace funcionar. Si tu servidor lógico está asociado a un perímetro, migra a una solución de movimiento de datos que soporte perímetros de seguridad de red.

Tipos de datos no admitidos

  • Secuencia de archivos
  • UDT SQL/CLR
  • XMLSchemaCollection (XML admitido)
  • Cursor, RowVersion, Timestamp, Hierarchyid

Tipos de columna no admitidos

Data Sync no puede sincronizar las columnas de solo lectura o generadas por el sistema. Por ejemplo:

  • Columnas calculadas
  • Columnas generadas por el sistema para tablas temporales

Limitaciones de las dimensiones de la base de datos y del servicio

Dimensiones Límite Solución alternativa
Número máximo de grupos de sincronización a los que una base de datos puede pertenecer 5
Número máximo de puntos de conexión en un único grupo de sincronización 30
Número máximo de puntos de conexión locales en un único grupo de sincronización 5 Crear varios grupos de sincronización
Nombres de base de datos, tabla, esquema y columna 50 caracteres por nombre
Tablas de un grupo de sincronización 500 Crear varios grupos de sincronización
Columnas de una tabla de un grupo de sincronización 1000
Tamaño de la fila de datos en una tabla 24 MB

Nota:

Puede haber hasta 30 puntos de conexión en un solo grupo de sincronización si solo hay un grupo de sincronización. Si hay más de un grupo de sincronización, el número total de endpoints en todos los grupos de sincronización no puede superar los 30. Si una base de datos pertenece a varios grupos de sincronización, cuenta como múltiples endpoints, no como uno.

Requisitos de red

Nota:

Si usas el enlace privado Sync, estos requisitos de red no se aplican.

Cuando se establece el grupo de sincronización, el servicio Data Sync debe conectarse a la base de datos central. En el momento en que establece el grupo de sincronización, el servidor Azure SQL debe tener la siguiente configuración en sus Firewalls and virtual networksvalores:

  • Denegar acceso desde red pública debe establecerse en Desactivado.
  • Permitir que los servicios y recursos de Azure accedan a este servidor debe establecerse en , o bien debe crear reglas de IP para las direcciones IP que usa el servicio Data Sync.

Una vez creado y aprovisionado el grupo de sincronización, puede deshabilitar estos valores. El agente de sincronización se conecta directamente a la base de datos central y entonces se podrán usar las reglas de IP del firewall del servidor o puntos de conexión privados para permitir que el agente acceda al servidor central.

Nota:

Si cambias la configuración de esquema del grupo de sincronización, tienes que permitir que el servicio Data Sync acceda de nuevo al servidor para que la base de datos central pueda ser reprovisionada.

Residencia de datos en la región

Si sincroniza datos dentro de la misma región, SQL Data Sync no almacena ni procesa los datos del cliente fuera de la región en la que se implementa la instancia del servicio. Si sincroniza datos entre regiones diferentes, SQL Data Sync replica los datos de los clientes en las regiones emparejadas.

Preguntas frecuentes sobre SQL Data Sync

¿Cuánto cuesta el servicio SQL Data Sync?

No hay gastos derivados del uso del servicio SQL Data Sync. Sin embargo, sí se cobrarán cargos de transferencia de datos por la entrada y salida de datos de su instancia de SQL Database. Para obtener más información, vea Cargos de transferencia de datos.

¿En qué regiones se admite Data Sync?

SQL Data Sync está disponible en todas las regiones.

¿Se requiere una cuenta de Azure SQL Database?

Sí. Debe tener una cuenta de Azure SQL Database para hospedar la base de datos central.

¿Puedo usar Data Sync para realizar la sincronización entre bases de datos de SQL Server únicamente?

No directamente. Sin embargo, es posible realizar una sincronización indirecta entre bases de datos de SQL Server mediante la creación de una base de datos central en Azure y la posterior incorporación de bases de datos locales al grupo de sincronización.

¿Puedo configurar Data Sync para sincronizar las bases de datos de Azure SQL Database que pertenecen a distintas suscripciones?

Sí. Puede configurar la sincronización entre bases de datos que pertenecen a grupos de recursos que son propiedad de suscripciones diferentes, incluso si las suscripciones pertenecen a inquilinos distintos.

  • Si las suscripciones pertenecen al mismo inquilino y tiene permiso en todas las suscripciones, puede configurar el grupo de sincronización en Azure Portal.
  • De lo contrario, tendrá que usar PowerShell para agregar los miembros de sincronización.
  • Private Link no está soportado en escenarios de inquilino cruzado.

¿Puedo configurar Data Sync para sincronizar bases de datos en SQL Database que pertenecen a nubes diferentes (como la nube pública de Azure y Azure operado por 21Vianet)?

Data Sync no soporta sincronización entre nubes.

¿Puedo usar Data Sync para propagar datos de mi base de datos de producción a una base de datos vacía y, después, sincronizarlos?

Sí. Cree el esquema manualmente en la base de datos nueva escribiendo scripts a partir del original. Después de crear el esquema, agregue las tablas a un grupo de sincronización para copiar los datos y mantenerlos sincronizados.

¿Se debe usar SQL Data Sync para realizar una copia de seguridad de las bases de datos y restaurarlas?

No se recomienda usar SQL Data Sync para crear una copia de seguridad de los datos. No se puede crear una copia de seguridad y restaurarla en un momento específico, ya que las sincronizaciones de SQL Data Sync no tienen versiones. Además, SQL Data Sync no crea copias de seguridad de otros objetos SQL, como procedimientos almacenados, ni es el equivalente rápido de una operación de restauración.

Para obtener una técnica de copia de seguridad recomendada, consulte Creación de una copia transaccionalmente coherente de una base de datos en Azure SQL Database.

¿Puede Data Sync sincronizar tablas y columnas cifradas?

  • Si una base de datos utiliza Always Encrypted, puede sincronizar solo las tablas y columnas que no estén cifrados. No se pueden sincronizar las columnas cifradas, porque la Data Sync no puede descifrar los datos.
  • Si una columna utiliza Column-Level cifrado (CLE), puedes sincronizar la columna, siempre que el tamaño de la fila sea menor que el tamaño máximo de 24 MB. Data Sync trata a la columna que se ha cifrado mediante clave (CLE) como datos binarios normales. Para descifrar los datos de otros miembros de la sincronización, necesita el mismo certificado.

¿Se admite la intercalación en SQL Data Sync?

Sí. SQL Data Sync admite la configuración de ajustes de intercalación en los escenarios siguientes:

  • Si las tablas del esquema de sincronización seleccionadas no están ya en sus bases de datos centrales o bases de datos miembro, al implementar el grupo de sincronización, el servicio crea automáticamente las tablas y columnas correspondientes con la configuración de intercalación seleccionada en las bases de datos de destino vacías.
  • Si las tablas que se van a sincronizar ya existen tanto en las bases de datos centrales como en las bases de datos miembro, SQL Data Sync requiere que las columnas de clave principal tengan la misma intercalación entre las bases de datos centrales y las bases de datos miembro para implementar correctamente el grupo de sincronización. No hay restricciones de intercalación para columnas distintas a las columnas de clave principal.

¿Se admite la federación en SQL Data Sync?

Puedes usar una base de datos raíz de federación con SQL Data Sync sin limitaciones. No puedes añadir el endpoint federado de la base de datos a la versión actual de SQL Data Sync.

¿Puedo usar Data Sync para sincronizar datos exportados desde Dynamics 365 con la característica traiga su propia base de datos (BYOD)?

La característica de Dynamics 365 traiga su propia base de datos permite a los administradores exportar entidades de datos de la aplicación a su propia base de datos de Microsoft Azure SQL. La sincronización de datos se puede usar para sincronizar estos datos en otras bases de datos si los datos se exportan mediante inserción incremental (la inserción completa no es compatible) y la habilitación de desencadenadores en la base de datos de destino se establece en .

¿Cómo crear Data Sync grupo de conmutación por error para admitir la recuperación ante desastres?

SQL Data Sync no ofrece funcionalidades automáticas de conmutación por error ni recuperación ante desastres. Si la base de datos cambia a otra región, el grupo de sincronización deja de funcionar. Recrea manualmente el grupo de sincronización en la región de conmutación por error con los mismos ajustes que la región principal.

Supervisión y solución de problemas

¿Funciona SQL Data Sync según lo previsto? Para supervisar la actividad y solucionar problemas, consulte los artículos siguientes:

Más información acerca de Azure SQL Database

Para más información sobre Azure SQL Database, consulte los siguientes artículos: