Todos los productos
Search
Centro de documentos

Data Transmission Service:Sincronización de una base de datos Oracle autogestionada con Kafka

Última actualización: Sep 17, 2026

Este tema describe cómo usar Data Transmission Service (DTS) para sincronizar datos desde una base de datos Oracle autogestionada hacia una instancia de ApsaraMQ for Kafka.

Requisitos previos

  • Cuenta con una base de datos Oracle autogestionada de origen y una instancia de destino de Message Queue for Apache Kafka.

    Nota

    Para obtener más información sobre las versiones compatibles de la base de datos de origen y la instancia de destino, consulte Overview of data synchronization scenarios.

  • La base de datos Oracle autogestionada se ejecuta en modo ARCHIVELOG. Sus registros archivados tienen un periodo de retención adecuado y están accesibles. Para obtener más información, consulte ARCHIVELOG.

  • El registro suplementario está habilitado, lo que incluye supplemental_log_data_pk y supplemental_log_data_ui. Para obtener más información, consulte Supplemental Logging.

  • La instancia de destino de Message Queue for Apache Kafka debe tener más espacio de almacenamiento que los datos de la base de datos Oracle autogestionada de origen.

  • La instancia de destino de Message Queue for Apache Kafka debe contar con un topic para recibir los datos sincronizados. Para obtener más información, consulte Step 1: Create a topic.

  • Antes de sincronizar una base de datos Oracle de origen, conozca las funciones y los límites de Data Transmission Service (DTS). Además, utilice Advanced Database & Application Migration (ADAM) para evaluar su base de datos. Esto garantiza una migración fluida a la nube. Para obtener más información, consulte Limitations and preparation for Oracle databases y Database assessment overview.

Límites

Nota

DTS no sincroniza claves externas de la base de datos de origen a la de destino. Por lo tanto, las operaciones en cascada y de eliminación en la base de datos de origen no se sincronizan con la de destino.

Categoría

Descripción

Límites de la base de datos de origen

  • Requisitos de objetos:

    • Las tablas deben tener restricciones PRIMARY KEY o UNIQUE con todos los campos únicos. De lo contrario, la base de datos de destino podría contener datos duplicados.

    • En Oracle 12c y versiones posteriores, los nombres de tabla no pueden superar los 30 bytes.

    • Si selecciona tablas como objetos y las edita en el destino (por ejemplo, al cambiar el nombre de tablas o columnas), una sola tarea admite hasta 1,000 tablas. Superar este límite provoca un error de solicitud. Para sincronizar más tablas, divídalas en varias tareas o sincronice toda la base de datos.

  • Si la base de datos Oracle RAC de origen se conecta mediante Express Connect, especifique una VIP cuando configure la tarea.

  • Para bases de datos Oracle RAC autogestionadas, use una VIP en lugar de una dirección IP SCAN. El failover de nodos no es compatible después de especificar la VIP.

  • Las funciones de registro redo y de archivo deben estar habilitadas.

    Nota

    Para la sincronización solo incremental, conserve los registros redo y de archivo durante más de 24 horas. Para la sincronización completa e incremental, consérvelos como mínimo siete días. Una vez finalizada la sincronización completa, establezca la retención en más de 24 horas. Una retención insuficiente puede provocar errores en la tarea, inconsistencia o pérdida de datos, y es posible que el SLA de DTS no aplique.

  • Un cambio entre nodo principal y secundario en la base de datos de origen durante la sincronización provoca un error en la tarea.

  • Si los datos contienen una cadena vacía VARCHAR2 (que Oracle trata como null) y la columna de destino tiene una restricción NOT NULL, la tarea falla.

  • Si una tabla tiene habilitada la directiva Fine-Grained Audit (FGA), DTS no puede detectar la pseudocolumna ORA_ROWSCN, lo que provoca un error en la tarea.

    Nota

    Deshabilite la directiva FGA para la tabla o exclúyala de la sincronización.

  • No actualice campos LONGTEXT durante la sincronización. De lo contrario, la tarea fallará.

  • No ejecute operaciones DDL que modifiquen los esquemas de la base de datos o de las tablas durante la sincronización de esquemas o la sincronización completa. De lo contrario, la tarea de sincronización fallará.

    Nota

    Durante la sincronización completa, DTS consulta la base de datos de origen. Esto genera bloqueos de metadatos que podrían impedir las operaciones DDL en dicha base de datos.

Otros límites

  • DTS no sincroniza tablas cuyo nombre cambió, a menos que el nuevo nombre esté incluido en los objetos por sincronizar. Para agregar tablas renombradas, ejecute la operación Modify Synchronized Objects. Para obtener más información, consulte Add a synchronization object.

  • No es posible sincronizar tablas externas.

  • Los índices, particiones, vistas, procedimientos, funciones, triggers, claves externas, comentarios de tabla y comentarios de columna no se pueden sincronizar.

  • No use Oracle Data Pump para escribir datos en la base de datos de origen durante la sincronización incremental. De lo contrario, podría producirse una pérdida de datos.

  • Sincronice los datos en horarios de baja demanda. Durante la sincronización completa inicial, DTS consume recursos de lectura y escritura en ambas bases de datos, lo que puede aumentar la carga del servidor.

  • Las operaciones INSERT simultáneas durante la sincronización completa provocan fragmentación en la tabla. Después de esta fase, el tablespace de destino es más grande que el de origen.

  • DTS calcula la latencia de sincronización a partir de la marca de tiempo de los últimos datos sincronizados y la marca de tiempo actual del origen. Si no se ejecutan operaciones DML en el origen durante mucho tiempo, la latencia podría ser inexacta. Ejecute una operación DML en el origen para actualizar la latencia.

    Nota

    Si sincroniza una base de datos completa, cree una tabla de heartbeat que se actualice cada segundo.

  • Durante la sincronización, use únicamente DTS para escribir en la base de datos de destino. Escribir con otras herramientas (por ejemplo, DDL en línea de DMS) puede provocar pérdida o inconsistencia de datos.

  • Si se escala el clúster de Kafka de destino durante la sincronización, reinicie la instancia.

  • Si una tarea falla, el equipo de soporte de DTS intentará restaurarla en un plazo de ocho horas. Durante la restauración, es posible que reinicien la tarea o ajusten sus parámetros.

    Nota

    Solo se modifican los parámetros de la tarea de DTS, no los de la base de datos. Los parámetros que se podrían ajustar incluyen los que se enumeran en Modify instance parameters.

Facturación

Tipo de sincronización

Precio

Sincronización de esquemas y sincronización completa de datos

Sin costo.

Sincronización incremental de datos

Con costo. Para obtener más información, consulte Billing overview.

Límite de tamaño de un solo registro

El tamaño de un solo registro escrito en Kafka tiene un límite de 10 MB. Si una fila de la base de datos de origen supera los 10 MB, DTS no podrá escribirla en Kafka y la tarea se interrumpirá. En este caso, se recomienda no sincronizar la tabla afectada. Si necesita sincronizarla obligatoriamente, seleccione solo algunas columnas. Cuando configure la tarea de DTS, filtre los registros con campos grandes. Si la tarea ya se está ejecutando, modifique los objetos de sincronización para quitar la tabla. Luego, vuelva a agregarla y filtre las columnas con campos grandes para excluirlas de la sincronización.

Topologías de sincronización

  • Sincronización unidireccional uno a uno

  • Sincronización unidireccional uno a varios

  • Sincronización unidireccional varios a uno

  • Sincronización unidireccional en cascada

Para obtener más información sobre estas topologías de sincronización y notas importantes, consulte data synchronization topologies.

Operaciones SQL compatibles

Tipo de operación

Instrucción SQL

DML

INSERT, UPDATE y DELETE

DDL

  • CREATE TABLE, ALTER TABLE, DROP TABLE, RENAME TABLE y TRUNCATE TABLE

  • CREATE VIEW, ALTER VIEW y DROP VIEW

  • CREATE PROCEDURE, ALTER PROCEDURE y DROP PROCEDURE

  • CREATE FUNCTION, DROP FUNCTION, CREATE TRIGGER y DROP TRIGGER

  • CREATE INDEX y DROP INDEX

Permisos de la cuenta de la base de datos

Base de datos

Permisos obligatorios

Configuración de la cuenta

Base de datos Oracle autogestionada

Requiere permisos detallados.

Prepare a database account, CREATE USER y GRANT.

Importante

También debe habilitar los registros de archivo y el registro suplementario para capturar los cambios incrementales de datos. Para obtener más información, consulte Database configuration.

Procedimiento

  1. Vaya a la página de la lista de tareas de sincronización de la región de destino. Para ello, utilice uno de los dos métodos siguientes:

    Desde la consola de DTS

    1. Inicie sesión en la consola de Data Transmission Service (DTS).

    2. En el panel de navegación izquierdo, haga clic en Data Synchronization.

    3. En la esquina superior izquierda de la página, seleccione la región donde se encuentra la instancia de sincronización.

    Desde la consola de DMS

    Nota

    Las operaciones reales pueden variar según el modo y el diseño de la consola de DMS. Para obtener más información, consulte Simple mode y Customize the layout and style of the DMS interface.

    1. Inicie sesión en Data Management (DMS).

    2. En la barra de menú superior, elija Data + AI > Data Transmission (DTS) > Data Synchronization.

    3. A la derecha de Data Synchronization Tasks, seleccione la región donde se encuentra la instancia de sincronización.

  2. Haga clic en Create Task para ir a la página de configuración de la tarea.

  3. Configure las bases de datos de origen y de destino.

    Categoría

    Parámetro

    Descripción

    N/A

    Task Name

    DTS automatically generates a task name. We recommend that you specify a descriptive name for easy identification. The name does not have to be unique.

    Source Database

    Database Type

    Seleccione Oracle.

    Connection Type

    Seleccione un método de acceso según el lugar donde esté desplegada su base de datos de origen. Este ejemplo utiliza Self-managed Database on ECS.

    Nota

    Si la instancia de origen es una base de datos autogestionada, debe completar los preparativos obligatorios. Para obtener más información, consulte Preparation overview.

    Instance Region

    Seleccione la región donde se encuentra la base de datos Oracle autogestionada.

    ECS Instance ID

    Seleccione el ID de la instancia de ECS que aloja la base de datos Oracle autogestionada.

    Número de puerto

    Introduzca el puerto de servicio de la base de datos Oracle autogestionada. El valor predeterminado es 1521.

    Oracle Type

    • Non-RAC Instance: si elige esta opción, también debe introducir el SID.

    • RAC or PDB Instance: si elige esta opción, también debe introducir el Service Name.

      Importante

      Aunque la opción tiene la etiqueta "RAC or PDB Instance", las instancias RAC no son compatibles.

    Este ejemplo utiliza Non-RAC Instance.

    Database Account

    Introduzca la cuenta de la base de datos Oracle autogestionada. Para obtener información sobre los permisos obligatorios, consulte Permissions required for database accounts.

    Database Password

    Enter the password that corresponds to the database account.

    Destination Database

    Database Type

    Seleccione Kafka.

    Connection Type

    Seleccione Express Connect, VPN Gateway, or Smart Access Gateway.

    Nota

    En este escenario, la instancia de Message Queue for Apache Kafka funciona como una base de datos Kafka autogestionada para la instancia de sincronización.

    Instance Region

    Seleccione la región donde se encuentra la instancia de destino de Message Queue for Apache Kafka.

    Connected VPC

    Seleccione el ID de VPC de la instancia de destino de Message Queue for Apache Kafka. Puede encontrar el ID de VPC en la página Basic Information de la instancia de Kafka.

    Nombre de host o dirección IP

    Introduzca una dirección IP del Default Endpoint de la instancia de Message Queue for Apache Kafka.

    Nota

    Puede encontrar la dirección IP del Default Endpoint en la página Basic Information de la instancia de Message Queue for Apache Kafka.

    Port Number

    Introduzca el puerto de servicio de la instancia de Message Queue for Apache Kafka. El valor predeterminado es 9092.

    Database Account

    Introduzca la cuenta de la base de datos de la instancia de Message Queue for Apache Kafka.

    Nota

    Si la instancia de Message Queue for Apache Kafka es una VPC-connected instance, no es necesario configurar Database Account ni Database Password.

    Database Password

    Enter the password that corresponds to the database account.

    Kafka Version

    Seleccione la versión que coincida con su instancia de Kafka.

    Connection Method

    Seleccione Non-encrypted o SCRAM-SHA-256 según sus requisitos de negocio y de seguridad.

    Topic

    Seleccione el tema que recibirá los datos.

    Use Kafka Schema Registry

    Kafka Schema Registry es una capa de servicio de metadatos. Proporciona una API RESTful para almacenar y recuperar esquemas Avro.

    • No: no utilizar Kafka Schema Registry.

    • Yes: utilizar Kafka Schema Registry. Debe especificar la URL o la dirección IP registrada en Kafka Schema Registry para sus esquemas Avro.

  4. Una vez completada la configuración, haga clic en Test Connectivity and Proceed en la parte inferior de la página. En el cuadro de diálogo CIDR Blocks of DTS Servers, haga clic en Test Connectivity.

    Nota

    Asegúrese de que los bloques CIDR de direcciones IP de los servidores de DTS estén agregados a la configuración de seguridad de las bases de datos de origen y de destino. Esto permite el acceso desde dichos servidores y se puede hacer de forma automática o manual. Para obtener más información, consulte Add the IP address CIDR blocks of DTS servers to a whitelist.

  5. Configure los objetos de la tarea.

    1. En la página Configure Objects, configure los objetos que desea sincronizar.

      Parámetro

      Descripción

      Synchronization Types

      Incremental Data Synchronization is selected. By default, you must also select Schema Synchronization and Full Data Synchronization. After the precheck is complete, DTS performs a full data synchronization of the selected objects from the source instance to the destination cluster. This serves as the baseline data for subsequent incremental data synchronization.

      Processing Mode for Existing Tables in Destination

      • Precheck and Report Errors: Checks whether a table with the same name exists in the destination database. If a table with the same name does not exist, the precheck passes. If a table with the same name exists, the precheck fails and the data synchronization task does not start.

        Nota

        If you cannot delete or rename the table with the same name in the destination database, you can map it to a different table name. For more information, see Map table and column names.

      • Ignore Errors and Proceed: Skips the check for duplicate table names in the destination database.

        Aviso

        Selecting Ignore Errors and Proceed may cause data inconsistency and put your business at risk. For example:

        • If the table schemas are the same and a record in the destination database has the same primary key or unique key value as a record in the source database:

          • During full synchronization, DTS retains the record in the destination cluster. The corresponding record from the source database is not synchronized.

          • During incremental synchronization, the record from the source database overwrites the record in the destination database.

        • If the table schemas are different, initial data synchronization may fail. This can result in only partial column data being synchronized or a complete synchronization failure. Proceed with caution.

      Data Format in Kafka

      Seleccione el formato de datos con el que DTS escribirá la información en la instancia de Kafka.

      Kafka Data Compression Format

      Select the compression format for Kafka message compression based on your business requirements.

      • LZ4 (default): The compression ratio is low, but the compression speed is high.

      • GZIP: The compression ratio is high, but the compression speed is low.

        Nota

        CPU consumption is high.

      • Snappy: The compression ratio and compression speed are medium.

      Policy for Shipping Data to Kafka Partitions

      Seleccione una policy que cumpla con sus requisitos de negocio.

      Message acknowledgement mechanism

      Seleccione un acknowledgment mechanism que cumpla con sus requisitos de negocio.

      Topic That Stores DDL Information

      Seleccione un tema para almacenar la información DDL. Si no elige ninguno, la información DDL se guardará de forma predeterminada en el tema receptor de datos.

      Capitalization of Object Names in Destination Instance

      You can configure the case sensitivity policy for database, table, and column object names that are synchronized to the destination instance. By default, the DTS default policy is selected. You can also choose to use the default policies of the source and destination databases. For more information, see Case sensitivity policy for destination object names.

      Source Objects

      In the Source Objects box, click an object to synchronize, and then click 向右 to move it to the Selected Objects box.

      Nota

      You can select databases, tables, and columns as synchronization objects. If you select tables or columns, other objects such as views, triggers, and stored procedures are not synchronized to the destination database.

      Selected Objects

      En este ejemplo no se requiere ninguna configuración adicional. Puede usar la función de asignación para definir el nombre del tema, la cantidad de particiones y la clave de partición de las tablas de origen en la instancia de Kafka de destino. Para obtener más información, consulte Mapping information.

      Nota
      • Si utiliza la asignación de nombres de objetos, la sincronización podría fallar en otros objetos que dependan del objeto asignado.

      • Para elegir las operaciones SQL de la sincronización incremental, haga clic con el botón derecho en un objeto de la sección Selected Objects y seleccione las operaciones SQL que desea sincronizar en el cuadro de diálogo que aparece.

    2. Haga clic en Next: Advanced Settings para configurar los parámetros avanzados.

      Parámetro

      Descripción

      Dedicated Cluster for Task Scheduling

      By default, DTS schedules tasks on a shared cluster, and you do not need to select a cluster. For more stable performance, you can purchase a dedicated cluster to run DTS sync tasks. For more information, see What is a DTS dedicated cluster?.

      Retry Time for Failed Connections

      After a sync task starts, if the connection to the source or destination database fails, DTS reports an error and immediately begins to retry the connection. The default retry duration is 720 minutes. You can also specify a custom retry duration from 10 to 1,440 minutes. We recommend that you set the duration to 30 minutes or more. If DTS successfully reconnects to the database within the specified duration, the sync task automatically resumes. Otherwise, the task fails.

      Nota
      • If you have multiple DTS instances (for example, Instance A and Instance B) that share the same source or destination, and you set the network retry time to 30 minutes for Instance A and 60 minutes for Instance B, the shorter duration of 30 minutes is used for both.

      • Because DTS charges for task runtime during the connection retry period, we recommend that you customize the retry duration based on your business needs or release the DTS instance as soon as possible after the source and destination database instances are released.

      Retry Time for Other Issues

      After the sync task starts, if other non-connectivity issues occur with the source or destination database (such as DDL or DML execution exceptions), DTS reports an error and immediately starts continuous retry operations. The default retry duration is 10 minutes. You can also customize the retry duration within the range of 1 to 1,440 minutes. We recommend that you set it to 10 minutes or more. If the relevant operations are successful within the set retry duration, the sync task automatically resumes. Otherwise, the task fails.

      Importante

      The value for Retry Time for Other Issues must be less than that for Retry Time for Failed Connections.

      Enable Throttling for Full Data Synchronization

      During the full synchronization stage, DTS consumes read and write resources from the source and destination databases, which can increase the database load. To reduce the load on the source and destination databases, you can set a rate limit for the full synchronization task by configuring the Queries per second (QPS) to the source database, RPS of Full Data Migration, and Data migration speed for full migration (MB/s) parameters.

      Nota
      • This configuration item is available only when Synchronization Types is set to Full Data Synchronization.

      • You can also adjust the full synchronization rate after the sync instance is running.

      Enable Throttling for Incremental Data Synchronization

      You can also set a rate limit for the incremental synchronization task. To relieve pressure on the destination database, set the RPS of Incremental Data Synchronization and Data synchronization speed for incremental synchronization (MB/s).

      Environment Tag

      Según sus necesidades, puede seleccionar una etiqueta de entorno para identificar la instancia. En este ejemplo no se requiere ninguna configuración.

      Actual Write Code

      Puede seleccionar la codificación de caracteres de los datos que se escriben en la base de datos de destino según sus necesidades.

      Configure ETL

      Choose whether to enable the extract, transform, and load (ETL) feature. For more information, see What is ETL? Valid values:

      Monitoring and Alerting

      Specify whether to configure alerts. If the synchronization fails or the latency exceeds the specified threshold, a notification is sent to an alert contact.

  6. Guarde la tarea y ejecute una comprobación previa.

    • Para consultar los parámetros de la API necesarios para configurar esta instancia, pase el cursor sobre el botón Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters en la burbuja emergente.

    • Cuando termine de revisar los parámetros de la API, haga clic en Next: Save Task Settings and Precheck en la parte inferior de la página.

    Nota
    • Antes de iniciar el trabajo de sincronización, DTS ejecuta una comprobación previa. El trabajo solo comienza cuando todos los elementos de dicha comprobación se superan correctamente.

    • Si la comprobación previa falla, haga clic en View Details junto al elemento con errores. Corrija el problema siguiendo las indicaciones y vuelva a ejecutar la comprobación previa.

    • Si la comprobación previa devuelve una advertencia:

      • Si un elemento falla y no se puede ignorar, haga clic en View Details junto a dicho elemento. Siga las instrucciones para corregir el problema y vuelva a ejecutar la comprobación previa.

      • Para los elementos que sí se pueden omitir, haga clic sucesivamente en Confirm Alert Details, Ignore, OK y Precheck Again para saltarse la advertencia y repetir la comprobación previa. Tenga en cuenta que omitir una advertencia puede provocar problemas como inconsistencias en los datos y poner en riesgo su negocio.

  7. Adquiera la instancia.

    1. Cuando el valor de Success Rate sea del 100 %, haga clic en Next: Purchase Instance.

    2. En la página Purchase, seleccione el método de facturación y la especificación de enlace de la instancia de sincronización de datos. A continuación se describen estos parámetros en detalle.

      Categoría

      Parámetro

      Descripción

      New Instance Class

      Billing Method

      • Subscription: You pay when you create the instance. This is suitable for long-term needs and is more cost-effective than pay-as-you-go. The longer the subscription duration, the higher the discount.

      • Pay-as-you-go: You are charged on an hourly basis. This is suitable for short-term needs. You can release the instance immediately after use to save costs.

      Resource Group Configuration

      The resource group to which the instance belongs. The default is default resource group. For more information, see What is Resource Management?.

      Link Specification

      DTS provides sync specifications with different performance levels. The sync link specification affects the synchronization rate. You can choose a specification based on your business scenario. For more information, see Data synchronization link specifications.

      Subscription Duration

      In subscription mode, select the duration and quantity for the subscription instance. You can choose a monthly subscription from 1 to 9 months, or a yearly subscription of 1, 2, 3, or 5 years.

      Nota

      This option is only available when the billing method is Subscription.

    3. Una vez completada la configuración, lea y seleccione Data Transmission Service (Pay-as-you-go) Service Terms.

    4. Haga clic en Buy and Start. En el cuadro de diálogo OK, haga clic en OK.

      Puede consultar el progreso de la tarea en la página Data Synchronization.

Asignaciones

  1. En el área Selected Objects, coloque el cursor sobre el nombre del topic de destino.

  2. Haga clic en el botón Edit que aparece junto al nombre del topic de destino.

  3. En el cuadro de diálogo Edit Table, configure los parámetros de asignación.

    Nota
    • El cuadro de diálogo Edit Schema corresponde a la configuración de la base de datos y tiene menos parámetros configurables que el cuadro de diálogo Edit Table, el cual se utiliza para la configuración de tablas.

    • Si no sincroniza una base de datos completa, no podrá modificar los parámetros Name of target Topic ni Number of Partitions en el cuadro de diálogo Edit Schema.

    Parámetro

    Descripción

    Name of target Topic

    El topic de destino donde DTS escribe los datos de la tabla de origen. De forma predeterminada, es el Topic que seleccionó en la sección Destination Database durante el paso Configurations for Source and Destination Databases.

    Importante
    • Si la base de datos de destino es una instancia de Alibaba Cloud Message Queue for Apache Kafka, el topic especificado debe existir en dicha instancia. De lo contrario, la tarea de sincronización de datos fallará. Si la base de datos de destino es una base de datos Kafka autogestionada y la instancia de sincronización incluye una tarea de sincronización de esquemas, DTS intentará crear el topic especificado en la base de datos de destino.

    • Si modifica el parámetro Name of target Topic, DTS escribirá los datos en el nuevo topic.

    Filter Conditions

    Para obtener más información, consulte Set Filter Conditions.

    Number of Partitions

    El número de particiones del topic de destino.

    Partition Key

    Este parámetro está disponible cuando establece Policy for Shipping Data to Kafka Partitions en Ship Data to Separate Partitions Based on Hash Values of Primary Keys. Seleccione una o más columnas como clave de partición. DTS calcula un valor de hash a partir de esta clave y distribuye las filas entre las particiones del topic de destino.

    Nota

    Solo puede seleccionar Partition Key en el cuadro de diálogo Edit Table.

  4. Haga clic en OK.

Preguntas frecuentes