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.
NotaPara 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
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 |
|
Otros límites |
|
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 |
|
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. |
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
-
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
Inicie sesión en la consola de Data Transmission Service (DTS).
En el panel de navegación izquierdo, haga clic en Data Synchronization.
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
NotaLas 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.
Inicie sesión en Data Management (DMS).
En la barra de menú superior, elija .
A la derecha de Data Synchronization Tasks, seleccione la región donde se encuentra la instancia de sincronización.
Haga clic en Create Task para ir a la página de configuración de la tarea.
-
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.
NotaSi 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.
ImportanteAunque 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.
NotaEn 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.
NotaPuede 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.
NotaSi 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.
-
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.
NotaAsegú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.
-
Configure los objetos de la tarea.
-
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.
NotaIf 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.
AvisoSelecting 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.
If you select DTS Avro, you must parse the data based on the DTS Avro schema definition. For more information, see DTS Avro schema definition and DTS Avro deserialization example.
Si selecciona Shareplex Json, consulte Shareplex Json para ver descripciones y ejemplos de los parámetros.
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.
NotaCPU 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.NotaYou 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.
NotaSi 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.
-
-
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.
ImportanteThe 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:
-
Yes: Enables the ETL feature. Enter data processing statements in the code editor. For more information, see Configure ETL in a data migration or data synchronization task.
-
No: Disables the ETL feature.
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.
-
No: No alerts are configured.
-
Yes: Configure alerts by setting an alert threshold and specifying an alert notification. For more information, see Configure monitoring and alerting during task configuration.
-
-
-
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.
NotaAntes 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.
-
Adquiera la instancia.
Cuando el valor de Success Rate sea del 100 %, haga clic en Next: Purchase Instance.
-
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.
NotaThis option is only available when the billing method is Subscription.
-
Una vez completada la configuración, lea y seleccione Data Transmission Service (Pay-as-you-go) Service Terms.
-
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
En el área Selected Objects, coloque el cursor sobre el nombre del topic de destino.
Haga clic en el botón Edit que aparece junto al nombre del topic de destino.
-
En el cuadro de diálogo Edit Table, configure los parámetros de asignación.
NotaEl 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.
ImportanteSi 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.
NotaSolo puede seleccionar Partition Key en el cuadro de diálogo Edit Table.
Haga clic en OK.
Preguntas frecuentes
-
¿Es posible modificar Kafka Data Compression Format?
Sí. Utilice la función Modify synchronization objects para modificarlo.
-
¿Es posible modificar Message acknowledgement mechanism?
Sí. Utilice la función Modify synchronization objects para modificarlo.