¿Qué es SQL Data Sync para Azure?

Se aplica a:Azure SQL Database

SQL Data Sync es un servicio basado en Azure SQL Database que permite sincronizar los datos seleccionados de manera bidireccional entre varias bases de datos, tanto locales como en la nube.

Importante

Actualmente, Azure SQL Data Sync no es compatible con Azure SQL Managed Instance ni con 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.

Sync data between databases

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. Es decir, la dirección de sincronización puede ser de la base de datos central al miembro o del miembro a la base de datos central, o ambas.
  • El intervalo de sincronización describe la frecuencia con la que se produce la sincronización.
  • El directiva de resolución de conflictos es una directiva de nivel de grupo, que puede ser Prevalece la base de datos central o Prevalece el cliente.

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 bases de datos de SQL Server y de Azure SQL Database para habilitar aplicaciones híbridas. Esta funcionalidad 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 con redundancia geográfica de Azure
Escalado de lectura Uso de réplicas de solo lectura para equilibrar las cargas de trabajo de las consultas 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 de datos: Data Sync realiza un seguimiento de cambios mediante los 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 se especifica FIRE_TRIGGERS, no se ejecutará ningún desencadenador de inserción. Agregue la opción FIRE_TRIGGERS para que Data Sync pueda realizar un seguimiento de esas inserciones.
  • Sincronización de datos: La Sincronización de datos está diseñada en un modelo de concentrador y radio. 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 cliente.
    • 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.

Comparación con la replicación transaccional

Sincronización de datos Replicación transaccional
Ventajas - Compatibilidad activo-activo
- Bidireccional entre el entorno local y Azure SQL Database
- Menor latencia
- Coherencia transaccional
- Reutilización de la topología existente después de la migración
\- Compatibilidad con 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

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.

Private link for 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.

Introducción

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

¿Algo salió mal?

Coherencia y rendimiento

Coherencia final

Como Data Sync se basa en desencadenadores, la coherencia transaccional no está garantizada. Microsoft garantiza que todos los cambios se realicen finalmente y que Data Sync no ocasione 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

Si se cambia el valor de una clave principal existente, se producirá el siguiente comportamiento erróneo:

  • Los datos entre el concentrador y el miembro pueden perderse aunque la sincronización no notifique ningún problema.
  • Se puede producir un error en la sincronización porque la tabla de seguimiento tiene una fila no existente del origen debido al cambio de la clave principal.
  • 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 usar un vínculo privado de Data Sync, las bases de datos centrales y las de los miembros deben estar hospedadas en Azure (en la misma región o en regiones diferentes) y en el mismo tipo de nube (por ejemplo, en la nube pública o en la nube gubernamental). Además, para usar un vínculo privado, Microsoft.Network los proveedores de recursos deben estar registrados para las suscripciones que hospedan el servidor del centro de conectividad y el servidor miembro. Por último, debe aprobar manualmente el vínculo privado para Data Sync durante la configuración de la sincronización, en la sección "Conexiones de punto de conexión privado" de Azure Portal o mediante PowerShell. Para obtener más detalles sobre la aprobación del vínculo privado, consulte: Configuración de SQL Data Sync. Una vez aprobado el punto de conexión privado administrado por el servicio, toda la comunicación entre el servicio de sincronización y las bases de datos del miembro o del centro de conectividad se realizan a través del vínculo privado. Los grupos de sincronización existentes se pueden actualizar para habilitar esta característica.

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 distinto esquema (por ejemplo, dbo.customers y sales.customers), solo se puede agregar una de las tablas a la 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. Se puede crear una solución personalizada para automatizar la replicación de los cambios de esquema.
  • Data Sync solo admite las dos propiedades de índice siguientes: Unique, Clustered/Non-Clustered. 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.
  • Una base de datos de trabajos elásticos de Azure no se puede usar como base de datos de metadatos de sincronización de datos de SQL y viceversa.
  • SQL Data Sync no se admite para las bases de datos de libro de contabilidad.

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 hay un único grupo de sincronización. Si hay más de un grupo de sincronización, el número total de puntos de conexión en todos los grupos de sincronización no puede superar los 30. Si una base de datos pertenece a varios grupos de sincronización, se cuenta como varios puntos de conexión, no como uno.

Requisitos de red

Nota:

Si usa el vínculo privado de sincronización, no se aplican estos requisitos de red.

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 cambia la configuración del esquema del grupo de sincronización, deberá permitir que el servicio Data Sync acceda de nuevo al servidor para que se pueda volver a aprovisionar la base de datos central.

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 SQL Data Sync está disponible en todas las regiones.

¿Es necesaria una cuenta de SQL Database?

Sí. Debe tener una cuenta de 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.

¿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)?

Sí. Puede configurar la sincronización entre bases de datos que pertenecen a nubes diferentes. Tiene que usar PowerShell para agregar los miembros de sincronización que pertenecen a las distintas suscripciones.

¿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 mediante la generación de scripts 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 Copiar 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 el cifrado de nivel de columna (CLE), puede sincronizar la columna, siempre que el tamaño de fila sea menor que 24 Mb (tamaño máximo). 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?

La base de datos raíz de federación puede utilizarse en el servicio SQL Data Sync sin limitaciones. No se puede agregar el punto de conexión de la base de datos federada 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?

  • Para asegurarse de que las operaciones de sincronización de datos en la región de conmutación por error están a la par que la región primaria, después de la conmutación por error tiene que volver a crear manualmente el grupo de sincronización en la región de conmutación por error con la misma configuración que la región primaria.

Pasos siguientes

Actualización del esquema de una base de datos sincronizada

¿Es necesario actualizar el esquema de una base de datos en un grupo de sincronización? Los cambios de esquema no se replican automáticamente. Para algunas soluciones, consulte los artículos siguientes:

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, vea los siguientes artículos: