Base de datos de SQL Server de origen

En esta página, se incluye información sobre lo siguiente:

  • Es el comportamiento de Datastream en relación con el manejo de los datos que se extraen de una base de datos de SQL Server de origen.
  • Son los métodos de captura de datos modificados (CDC) que admite Datastream.
  • Son las versiones de las bases de datos de SQL Server que admite Datastream.
  • Limitaciones conocidas para usar la base de datos de SQL Server como fuente.

Comportamiento

Datastream hace un seguimiento de los cambios del lenguaje de manipulación de datos (DML) con uno de los siguientes métodos de CDC:

Cambiar tablas

El método de CDC de tablas de cambio permite a los usuarios conservar los registros durante un período más corto y, por lo tanto, ahorrar espacio de almacenamiento, pero admite una capacidad de procesamiento menor en comparación con el método de registros de transacciones. El método tiene menos limitaciones que los registros de transacciones. Por ejemplo, elimina el riesgo de truncamiento de registros que provoca que las transmisiones fallen de forma permanente y admite la replicación de tablas encriptadas. Para obtener más información, consulta Limitaciones conocidas.

Cuando se usa este método de CDC, los cambios en la fuente se rastrean con tablas de cambios dedicadas. Los registros de transacciones se siguen usando, pero en un grado limitado, y no es necesario que los conserves durante períodos más largos. A medida que los eventos DML se aplican a las tablas de origen, los cambios se replican en las tablas de cambios correspondientes. Las tablas de cambio tienen la misma estructura que las tablas de origen, pero con columnas adicionales para incluir los metadatos de los cambios. Solo las transacciones confirmadas se agregan a las tablas de cambios, junto con el número de secuencia de registro (LSN) de la operación de confirmación.

Cómo Datastream controla los cambios en el DDL del esquema de origen

Cuando usas el método de CDC de tablas de cambios, se crean instancias de captura para cada tabla de cambios. Cada instancia de captura se asocia con una lista de columnas que captura y hace un seguimiento. De forma predeterminada, cuando se produce un cambio en el lenguaje de definición de datos (DDL) en la fuente después de que se crea la instancia de captura, la instancia ignora el cambio. Sin embargo, puedes configurar tu transmisión de SQL Server para replicar las columnas agregadas al esquema de origen después de que se creen la transmisión y la instancia de captura.

Antes de comenzar
  • Asegúrate de que tu usuario de Datastream tenga asignado el permiso db_owner.

Replica las columnas agregadas al esquema de origen

Para que Datastream admita la replicación de columnas agregadas al esquema de origen después de que se creó un flujo, debes agregar la etiqueta enable_ddl_support_for_ct a tu flujo:

  1. Ve a la página Transmisiones en la consola de Google Cloud .

    Ir a la página Flujos

  2. Haz clic en el flujo de SQL Server que deseas editar.

  3. En la página Detalles de la transmisión, haz clic en Pausar.

  4. Haz clic en Editar > Editar la configuración de la transmisión.

  5. Haz clic en Agregar etiqueta.

  6. En el campo Clave, escribe enable_ddl_support_for_ct.

  7. En el campo Valor, escribe true.

  8. Haz clic en Guardar.

  9. Haz clic en Iniciar para reanudar la transmisión.

Datastream verifica la tabla cdc.ddl_history en busca de nuevos DDL cada cinco minutos. Si se agrega una columna nueva a una tabla incluida en la configuración de la transmisión, Datastream verifica si la tabla tiene dos instancias de captura:

  • De lo contrario, Datastream crea una nueva instancia de captura, lee los datos de la instancia de captura original hasta el momento en que ocurrió el DDL y, luego, comienza a leer desde la nueva instancia de captura.

  • Si es así, se agrega una entrada de registro que indica que no se puede controlar el cambio de DDL porque se alcanzó la cantidad máxima de instancias de captura.

Registros de transacciones

Cuando se usa este método de CDC, Datastream lee los cambios en la fuente directamente desde los registros de transacciones. Este método requiere menos recursos y permite una recuperación de datos más rápida, pero tiene más limitaciones.

Para evitar la pérdida de datos, es importante que los registros no se trunquen antes de que Datastream los lea. Por otro lado, si conservas los archivos de registro durante demasiado tiempo, ocuparán espacio de almacenamiento, lo que podría hacer que la instancia de la base de datos entre en modo de solo lectura.

Para asegurarte de que el lector de CDC tenga tiempo suficiente para leer los registros y, al mismo tiempo, permitir el truncamiento de registros para liberar espacio de almacenamiento, debes aplicar pasos de configuración adicionales, como cambiar los intervalos de sondeo y configurar una protección contra truncamientos. Estos pasos proporcionan una capa adicional de protección para garantizar que Datastream pueda leer los datos incluso si hay tiempo de inactividad del lado de Datastream o un problema de conectividad entre la base de datos de origen y Datastream.

Para obtener instrucciones detalladas sobre cómo aplicar estas medidas adicionales, consulta la página Configura una base de datos de SQL Server de origen y selecciona el tipo de base de datos.

Versiones

Datastream admite las siguientes versiones y ediciones de bases de datos de SQL Server:

  • Autoadministrado (en las instalaciones o alojado en la nube) con las siguientes versiones:
    • Enterprise: 2008 y versiones posteriores
    • Estándar: 2016 SP1 y versiones posteriores
    • Desarrollador: 2008 y versiones posteriores
  • Amazon RDS for SQL Server
  • Azure SQL Database (nivel S3 y superiores)

  • Cloud SQL para SQL Server

Datastream no admite las siguientes versiones de bases de datos de SQL Server:

  • Edición Standard de SQL Server de la versión 2008 a la 2014
  • SQL Server Express
  • SQL Server Web

Limitaciones conocidas

Entre las limitaciones conocidas para usar la base de datos de SQL Server como fuente, se incluyen las siguientes:

  • Las transmisiones se limitan a 10,000 tablas.
  • No se puede completar una tabla que tenga más de 500 millones de filas, a menos que se cumplan las siguientes condiciones:
    1. La tabla tiene un índice único.
    2. Ninguna de las columnas de índice acepta valores nulos.
    3. Todas las columnas del índice se incluyen en la transmisión.
  • No se admiten las bases de datos con durabilidad retrasada o recuperación acelerada de la base de datos (ADR) habilitadas.
  • No se admite la transmisión de cambios a las tablas del sistema.
  • No se admite la autenticación de Active Directory (AD) de Windows.
  • No se admiten los siguientes tipos de datos, y no se replican en el destino:
    • SQL_VARIANT
    • HIERARCHYID
    • GEOMETRY
    • GEOGRAPHY
  • Datastream replica los tipos de datos definidos por el usuario. Sin embargo, el tipo de datos base del que derivas tu tipo definido por el usuario es el que se almacena en el destino. Por ejemplo, si defines un tipo de datos USERNAME basado en el tipo de datos VARCHAR(50), los datos se almacenan en el destino como VARCHAR(50).
  • Datastream no admite CDC para columnas de objetos grandes (TEXT, NTEXT, XML, IMAGE) ni columnas de longitud variable máxima (VARCHAR(MAX), VARBINARY(MAX), NVARCHAR(MAX)) en tablas sin un índice único.

    Si las columnas de objetos grandes no se incluyen en la transmisión, se admite el CDC.

  • Datastream no admite la replicación de los siguientes cambios en el esquema de origen cuando se usa el método CDC para cambiar tablas:

    • Se descartan las columnas: Los datos de estas columnas se reemplazan por valores NULL.
    • Modificación de tipos de datos: Datastream intenta insertar los datos en el destino y genera un error si se rechazan los datos.
    • Cambio de nombre de columnas: No se admite en SQL Server cuando las CDC están habilitadas.

    Estos cambios de esquema pueden causar daños en los datos o que no se puedan procesar los eventos.

  • Datastream no admite el enmascaramiento de datos. Los datos se replican sin enmascarar.

  • Datastream no admite la replicación de los cambios aplicados a la base de datos con el paquete de Data Tier Application Package (DACPAC).

  • Datastream no replica los cambios realizados con las instrucciones WRITETEXT o UPDATETEXT.

  • Datastream no admite la replicación de columnas calculadas, a menos que la columna esté marcada como PERSISTED.

  • Datastream no admite los tipos de compresión PAGE, COLUMNSTORE ni COLUMNSTORE ARCHIVE.

Limitaciones adicionales cuando se usa el método de registros de transacción

Si usas el método CDC de registros de transacción, se aplican las siguientes limitaciones adicionales:

  • No se admite la encriptación de datos transparente (TDE).
  • No se admite la encriptación a nivel de columna. Los datos de estas columnas se reemplazan por valores NULL.
  • Cuando se usa el método CDC de los registros de transacción, Datastream no admite la replicación de columnas agregadas al esquema de origen después de que se crea una transmisión. Las columnas nuevas no se replican en el destino.
  • Datastream no admite la instrucción ROLLBACK TO SAVEPOINT. Estos eventos de reversión se ignoran y no se replican en el destino.
  • Datastream no admite CDC para filas de más de 8 KB en los siguientes tipos de tablas:
    • Tablas sin un índice único
    • Tablas que contienen solo un índice único no agrupado con una o más columnas de longitud variable (VARCHAR, VARBINARY, NVARCHAR)
  • Datastream no admite CDC para columnas de objetos grandes (TEXT, NTEXT, XML, IMAGE) en los siguientes tipos de tablas:

    • Tablas sin un índice único
    • Tablas que contienen solo un índice único no agrupado con una o más columnas de longitud variable (VARCHAR, VARBINARY, NVARCHAR)

    Si no se incluyen columnas de objetos grandes en la transmisión, solo se admite el CDC para esas tablas si tienen índices válidos.

¿Qué sigue?