Esta página contiene información sobre lo siguiente:
- El comportamiento de Datastream al gestionar los datos que se extraen de una base de datos de SQL Server de origen.
- Los métodos de captura de datos de cambios (CDC) que admite Datastream.
- Las versiones de las bases de datos de SQL Server que admite Datastream.
- Limitaciones conocidas al usar una base de datos de SQL Server como fuente.
Comportamiento
Datastream monitoriza los cambios del lenguaje de manipulación de datos (DML) mediante uno de los siguientes métodos de CDC:
Cambiar tablas
El método de CDC de tablas de cambios permite a los usuarios conservar los registros durante menos tiempo y, por lo tanto, ahorrar espacio de almacenamiento, pero admite un menor rendimiento en comparación con el método de registros de transacciones. Este método tiene menos limitaciones que los registros de transacciones. Por ejemplo, elimina el riesgo de que se trunquen los registros, lo que provocaría que las secuencias fallaran de forma permanente, y admite la replicación de tablas cifradas. Para obtener más información, consulta Limitaciones conocidas.
Cuando se usa este método de CDC, los cambios en la fuente se monitorizan mediante tablas de cambios específicas. Los registros de transacciones se siguen usando, pero de forma limitada, y no es necesario conservarlos durante periodos 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 cambios tienen la misma estructura que las tablas de origen, pero con columnas adicionales para incluir los metadatos de los cambios. Solo se añaden a las tablas de cambios las transacciones confirmadas, junto con el número de secuencia del registro (LSN) de la operación de confirmación.
Cómo gestiona Datastream los cambios de DDL en el esquema de origen
Cuando se usa el método CDC de tablas de cambios, se crean instancias de captura para cada tabla de cambios. Cada instancia de captura se asocia a una lista de columnas que captura y monitoriza. De forma predeterminada, cuando se produce un cambio en el lenguaje de definición de datos (DDL) en la fuente después de crear la instancia de captura, la instancia ignora el cambio. Sin embargo, puedes configurar tu flujo de SQL Server para que replique las columnas añadidas al esquema de origen después de crear el flujo y la instancia de captura.
Antes de empezar
- Asegúrate de que tu usuario de Datastream tenga asignado el permiso
db_owner
.
Replicar las columnas añadidas al esquema de origen
Para que Datastream admita la replicación de columnas añadidas al esquema de origen después de crear un flujo, debe añadir la etiqueta enable_ddl_support_for_ct
al flujo:
Ve a la página Streams (Streams) de la Google Cloud consola.
Haz clic en el flujo de SQL Server que quieras editar.
En la página Detalles del flujo, haga clic en Pausar.
Haz clic en Editar > Editar configuración de la emisión.
Haz clic en Añadir etiqueta.
En el campo Key (Clave), escribe
enable_ddl_support_for_ct
.En el campo Valor, escribe
true
.Haz clic en Guardar.
Haz clic en Iniciar para reanudar la emisión.
Datastream comprueba la tabla cdc.ddl_history
cada cinco minutos para ver si hay nuevos DDLs. Si se añade una columna a una tabla incluida en la configuración del flujo, Datastream verifica si la tabla tiene dos instancias de captura:
Si no es así, Datastream crea una nueva instancia de captura, lee los datos de la instancia de captura original hasta el momento en que se produjo el DDL y, a continuación, empieza a leer desde la nueva instancia de captura.
Si es así, se añade una entrada de registro que indica que no se puede gestionar el cambio de DDL porque se ha alcanzado el número máximo de instancias de captura.
Registros de transacciones
Cuando se usa este método de CDC, Datastream lee los cambios del origen directamente de los registros de transacciones. Este método requiere menos recursos y permite recuperar los datos más rápido, 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 provocar 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 que se trunquen los 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 de protección adicional para asegurarse de que Datastream pueda leer los datos aunque haya un tiempo de inactividad en el 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 Configurar una base de datos 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:
- Autogestionado (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 para 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 al usar una base de datos de SQL Server como origen, se incluyen las siguientes:
- Las secuencias tienen un límite de 10.000 tablas.
- No se puede rellenar una tabla que tenga más de 500 millones de filas a menos que se cumplan las siguientes condiciones:
- La tabla tiene un índice único.
- Ninguna de las columnas de índice puede tener un valor nulo.
- Todas las columnas del índice se incluyen en el flujo.
- No se admiten bases de datos con durabilidad retrasada o recuperación de bases de datos acelerada (ADR) habilitada.
- No se admite la transmisión de cambios a tablas del sistema.
- No se admite la autenticación de Windows Active Directory (AD).
- Los siguientes tipos de datos no se admiten y no se replican en el destino:
SQL_VARIANT
HIERARCHYID
GEOMETRY
GEOGRAPHY
- Datastream replica los tipos de datos definidos por el usuario, pero es el tipo de datos base del que derivas tu tipo definido por el usuario el que se almacena en el destino. Por ejemplo, si define un tipo de datos
USERNAME
basado en el tipo de datosVARCHAR(50)
, los datos se almacenan en el destino comoVARCHAR(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 el flujo, se admite CDC.
Datastream no admite la replicación de los siguientes cambios de esquema de origen cuando se usa el método CDC de tablas de cambios:
- Eliminación de columnas: los datos de estas columnas se sustituyen por valores
NULL
. - Modificar tipos de datos: Datastream intenta insertar los datos en el destino y genera un error si se rechazan.
- Cambiar el nombre de las columnas: no se admite en SQL Server cuando CDC está habilitado.
Estos cambios en el esquema pueden provocar que los datos se dañen o que no se puedan procesar los eventos.
- Eliminación de columnas: los datos de estas columnas se sustituyen por valores
Datastream no admite el enmascaramiento de datos. Los datos se replican sin máscara.
Datastream no admite la replicación de los cambios aplicados a la base de datos mediante el paquete de aplicación de nivel de datos (DACPAC).
Datastream no replica los cambios realizados con las instrucciones
WRITETEXT
oUPDATETEXT
.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
niCOLUMNSTORE ARCHIVE
.
Limitaciones adicionales al usar el método de los registros de transacciones
Si utiliza el método de CDC de los registros de transacciones, se aplican las siguientes limitaciones adicionales:
- No se admite el cifrado de datos transparente (TDE).
- No se admite el cifrado a nivel de columna. Los datos de estas columnas se sustituyen por valores
NULL
. - Cuando se usa el método de CDC de los registros de transacciones, Datastream no admite la replicación de columnas añadidas al esquema de origen después de crear un flujo. Las nuevas columnas 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 la captura de datos de cambios (CDC) en filas de más de 8 KB en los siguientes tipos de tablas:
- Tablas sin un índice único
- Tablas que solo contienen 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
yIMAGE
) en los siguientes tipos de tablas:- Tablas sin un índice único
- Tablas que solo contienen un índice único no agrupado con una o más columnas de longitud variable (
VARCHAR
,VARBINARY
,NVARCHAR
)
Si las columnas de objetos grandes no se incluyen en el flujo, la CDC solo se admite en esas tablas si tienen índices válidos.
Siguientes pasos
- Consulta cómo configurar una fuente de SQL Server para usarla con Datastream.