Todos los productos
Search
Centro de documentos

ApsaraDB for OceanBase (Deprecated):Configurar una tarea de sincronización bidireccional

Última actualización: Sep 04, 2026

This topic describes two-way synchronization between a MySQL database and an OceanBase database in MySQL-compatible mode.
Importante

Si una tarea de migración de datos permanece inactiva durante un periodo prolongado (con estado Failed, Paused o Completed), es posible que no se pueda reanudar debido a factores como el periodo de retención de los registros incrementales. Para liberar recursos, Data Transmission Service libera las tareas de migración de datos que han estado inactivas por más de tres días. Se recomienda configurar alertas para sus tareas y atender cualquier excepción de manera oportuna.

Contexto

¿Qué es la sincronización bidireccional?

Durante la sincronización incremental de datos, puede configurar tareas de migración en ambos sentidos para el mismo origen de datos con el fin de sincronizar la información entre el origen y el destino. Se utiliza un mecanismo de prevención de replicación cíclica para evitar que los datos ya sincronizados en una dirección se vuelvan a sincronizar repetidamente mediante una tarea en sentido inverso.

Nota

La sincronización bidireccional no admite escrituras simultáneas en el origen y el destino. Si una aplicación escribe al mismo tiempo los mismos datos, identificados por la misma clave principal o única, tanto en el origen como en el destino, debe definir una estrategia de resolución de conflictos (sobrescribir o ignorar) para la tarea de sincronización bidireccional. Se recomienda evitar que una aplicación escriba simultáneamente los mismos datos en el origen y el destino.

Migration types that support two-way synchronization

The data transmission service supports two-way data synchronization between a MySQL database and an OceanBase database in MySQL-compatible mode, between an Oracle database and an OceanBase database in Oracle-compatible mode, and between OceanBase databases. For more information about the limitations and considerations, see the topics about the corresponding types of data migration.

Sentencias para otorgar privilegios en un origen de datos MySQL

Para realizar una sincronización bidireccional entre una base de datos MySQL y una base de datos OceanBase, debe otorgar los privilegios CREATE DATABASE y CREATE TABLE a la cuenta de base de datos en el origen de datos MySQL de la tarea actual. También debe crear una base de datos de transacciones y una tabla de transacciones para evitar la replicación cíclica entre las dos partes involucradas en la sincronización bidireccional. De lo contrario, la tarea de sincronización bidireccional podría presentar anomalías.

  • Otorgar el privilegio global de creación de bases de datos

    GRANT CREATE ON *.* TO '<user_name>' ;
  • Otorgar el privilegio para crear tablas en la base de datos oms

    GRANT CREATE ON oms.* TO '<user_name>' 

Sentencias para crear un esquema y otorgar privilegios en un origen de datos Oracle

Para realizar una sincronización bidireccional entre una base de datos Oracle y una base de datos OceanBase, debe crear un esquema llamado OMS en el origen de datos Oracle de la tarea actual y otorgar el privilegio CREATE TABLE sobre el esquema OMS a la cuenta de base de datos en este origen. De lo contrario, la tarea de sincronización bidireccional podría presentar anomalías.

  • Crear un usuario OMS

    CREATE USER OMS IDENTIFIED BY <YOUR_PASSWORD> DEFAULT TABLESPACE <tablespace>; // Replace YOUR_PASSWORD with the actual user password.
    ALTER USER OMS QUOTA unlimited ON <tablespace specified in the previous step>; 
    ALTER USER <data source user> QUOTA unlimited ON <tablespace specified in the previous step>; 
  • Otorgar privilegios

    GRANT CREATE ANY TABLE TO <YOUR_USERNAME>; 
    GRANT INSERT ANY TABLE TO <YOUR_USERNAME>;
    GRANT UPDATE ANY TABLE TO <YOUR_USERNAME>;
    GRANT DELETE ANY TABLE TO <YOUR_USERNAME>;
    GRANT SELECT ANY TABLE TO <YOUR_USERNAME>;

Consideraciones

Una tarea de sincronización bidireccional consta de una tarea directa y una tarea inversa.

Tipo

Descripción

Tarea directa

  • La tarea directa admite migración de esquemas, migración completa, sincronización incremental de operaciones DML, sincronización incremental de operaciones DDL y verificación completa.

  • La tarea directa no es compatible con escenarios de agregación de bases de datos o tablas. Por ejemplo, no se admite la agregación de tablas desde los orígenes a y b hacia el destino c.

  • No ejecute operaciones DDL que modifiquen esquemas de bases de datos o tablas durante la migración de esquemas o la migración completa. De lo contrario, la tarea podría fallar.

  • No especifique una tabla de transacciones para las reglas de exclusión de objetos cuando seleccione objetos de migración mediante la opción Match Rules.

Tarea inversa

  • Solo puede configurar una tarea inversa cuando la tarea directa se encuentra en la fase de sincronización incremental y en estado Running.

  • La tarea inversa solo admite sincronización incremental de operaciones DML.

  • No puede modificar los objetos de sincronización al configurar una tarea inversa. De forma predeterminada, se utilizan los objetos de sincronización especificados en la tarea directa.

Otras consideraciones

  • Si la tarea de sincronización bidireccional incluye una tabla sin clave principal ni clave única no nula, podrían aparecer datos duplicados en la base de datos o tabla correspondiente del destino durante la sincronización.

  • La tarea de sincronización bidireccional crea una base de datos o esquema llamado OMS en la base de datos MySQL u Oracle, y genera una tabla de transacciones en dicha base de datos o esquema OMS para evitar la sincronización cíclica de datos. No ejecute operaciones DML ni DDL sobre la tabla de transacciones mientras la tarea esté en ejecución.

Escenarios de conflicto de datos

To ensure data consistency in two-way synchronization, make sure that data operations on the same primary key or non-null unique key are performed only at the source or target. If data is simultaneously updated at the source and target, data conflicts may occur, including the following scenarios.
  • Conflicto de clave única en operaciones INSERT

    Si una aplicación ejecuta operaciones INSERT sobre la misma clave única en el origen y el destino aproximadamente al mismo tiempo, la operación INSERT en el destino fallará debido a la restricción UNIQUE durante la sincronización. Puede configurar la tarea para que ignore los datos en conflicto o sobrescriba los datos en el destino.

  • Conflicto de clave única en operaciones UPDATE

    • Si los datos que se van a actualizar mediante una operación UPDATE ya existen en el destino, los datos del destino se sobrescriben con los datos del origen.

    • Si los datos que se van a actualizar mediante una operación UPDATE no existen en el destino, la operación UPDATE falla.

    • Si una operación UPDATE provoca un conflicto de clave principal o clave única en el destino, la operación UPDATE falla.

  • Conflicto de clave única en operaciones DELETE

    • Si los datos que se van a eliminar mediante una operación DELETE no existen, la operación DELETE falla.

Procedimiento

Configurar una tarea directa

  1. Configure a data migration task as prompted to proceed to the Select Migration Type step, y establezca Synchronous Topology to Bidirectional Synchronization.

    Para obtener más información, consulte los temas correspondientes a los tipos de data migration.

    image

  2. En la página Select Migration Type, especifique los tipos de migración para la tarea de migración de datos.

    La sincronización bidireccional admite los siguientes tipos de migración: Schema Migration, Full Migration, Incremental synchronization y Full Verification.

    image

    Tipo de migración

    Descripción

    Migración de esquemas

    Una vez iniciada la tarea de migración de esquemas, el servicio de transmisión de datos migra las definiciones de objetos de base de datos, como tablas, índices, restricciones, comentarios y vistas, desde la base de datos de origen hacia la base de datos de destino, y filtra automáticamente las tablas temporales.

    Migración completa

    Una vez iniciada la tarea de migración completa, el servicio de transmisión de datos migra los datos existentes de las tablas en la base de datos de origen hacia las tablas correspondientes en la base de datos de destino.

    Sincronización incremental

    Una vez iniciada la tarea de sincronización incremental, el servicio de transmisión de datos sincroniza los datos modificados (datos agregados, modificados o eliminados) desde la base de datos de origen hacia las tablas correspondientes en la base de datos de destino.

    Las opciones para Incremental Synchronization son DML Synchronization y DDL Synchronization. Puede seleccionar las opciones según sea necesario. Para obtener más información, consulte Configure DDL/DML synchronization.

    Nota
    • En la sincronización bidireccional, la opción DML Synchronization debe estar seleccionada.

    • En la sincronización bidireccional, la sincronización DDL solo es compatible con la tarea directa.

    Verificación completa

    Una vez completadas las tareas de migración completa y sincronización incremental, el servicio de transmisión de datos inicia automáticamente una tarea de verificación completa para validar las tablas en las bases de datos de origen y destino.

  3. Haga clic en Next. En la página Select Migration Objects, seleccione los objetos para la tarea de migración de datos.

    Puede seleccionar objetos de migración mediante dos métodos: Specify Objects y Matching Rules. Este tema describe cómo seleccionar objetos de migración mediante el método Specify Objects. Para obtener más información sobre cómo configurar reglas de coincidencia, consulte Configure and modify matching rules.

    Importante
    • Los nombres de las tablas que se van a migrar y las columnas de dichas tablas no pueden contener caracteres chinos.

    • Si el nombre de una base de datos o tabla contiene los caracteres "$$", la creación de la tarea de migración de datos podría fallar.

    • Si selecciona DDL Synchronization en el paso Select Migration Type, se recomienda utilizar reglas de coincidencia para seleccionar los objetos de migración. Esto garantiza que todos los objetos nuevos que coincidan con las reglas se sincronicen. Si selecciona los objetos de migración individualmente, los objetos nuevos o renombrados no se sincronizarán.

    image.png

    1. En la sección Select Migration Objects, seleccione Specify Objects.

    2. In the Select Migration Scope area, in the Source Objects list, select the objects to migrate. You can select tables and views from one or more databases to migrate.

    3. Click > to add them to the Destination Objects list.

    Data Transmission Service permite importar objetos desde archivos de texto. También permite renombrar objetos de destino, establecer filtros de filas, consultar información de columnas y quitar un objeto individual o todos los objetos.

    Nota

    Cuando selecciona objetos de migración mediante el método Matching Rules, la sintaxis de la regla de coincidencia anula la capacidad de cambio de nombre, y la sección Actions se limita a establecer condiciones de filtro. Para obtener más información, consulte Configure and modify matching rules.

    Operación

    Descripción

    Importar objeto

    1. En la lista situada a la derecha del área de selección, haga clic en Import Object en la esquina superior derecha.

    2. En el cuadro de diálogo que aparece, haga clic en OK.

      Importante

      La operación de importación sobrescribe las selecciones anteriores. Proceda con precaución.

    3. En el cuadro de diálogo Import Migration Objects, importe los objetos que se van a migrar.

      Puede importar un archivo CSV para cambiar el nombre de tablas de bases de datos, establecer condiciones de filtrado de filas y realizar otras operaciones. Para obtener más información, consulte Download and import migration object configurations.

    4. Haga clic en Check Validity.

      Después de importar los objetos de migración, compruebe primero su validez. Actualmente no se admite la asignación de campos de columna.

    5. Una vez superada la comprobación, haga clic en OK.

    Cambiar nombre

    Data Transmission Service permite cambiar el nombre de los objetos de migración. Para obtener más información, consulte Rename database and table objects.

    Configuración

    Data Transmission Service admite el filtrado de filas mediante condiciones WHERE. Para obtener más información, consulte Filter data with SQL conditions.

    También puede consultar la información de columnas de los objetos de migración en el área View Columns.

    Quitar/Quitar todo

    Data Transmission Service permite quitar uno o varios objetos que se hayan seleccionado temporalmente para el destino durante la asignación de datos.

    • Quitar un único objeto de migración

      En la lista situada a la derecha del área de selección, pase el cursor sobre el objeto de destino y haga clic en el botón Remove que se muestra para quitar el objeto de migración.

    • Quitar todos los objetos de migración

      En la lista situada a la derecha del área de selección, haga clic en Remove All en la esquina superior derecha. En el cuadro de diálogo que aparece, haga clic en OK para quitar todos los objetos de migración.

  4. Haga clic en Next. En la página Migration Options, configure los parámetros.

    • Migración completa

      La siguiente tabla describe los parámetros para la migración completa, los cuales se muestran únicamente si ha seleccionado Bidirectional Synchronization y Full Migration en la página Select Migration Type.

      image

      Parámetro

      Descripción

      Read Concurrency

      La concurrencia para leer datos del origen durante la migración completa. El valor máximo es 512. Una concurrencia de lectura alta puede generar una carga excesiva en el origen y afectar al negocio.

      Write Concurrency

      La concurrencia para escribir datos en el destino durante la migración completa. El valor máximo es 512. Una concurrencia de escritura alta puede generar una carga excesiva en el destino y afectar al negocio.

      Full Migration Rate Limit

      Puede elegir si desea limitar la tasa de migración completa según sea necesario. Si decide limitarla, debe especificar los registros por segundo (RPS) y los bytes por segundo (BPS). El valor RPS indica el número máximo de filas de datos migradas al destino por segundo durante la migración completa, y el valor BPS indica la cantidad máxima de datos en bytes migrados al destino por segundo durante la migración completa.

      Nota

      Los valores RPS y BPS especificados aquí son únicamente para limitación de velocidad. El rendimiento real de la migración completa depende de factores como la configuración del origen y del destino, así como de las especificaciones de la instancia.

      Handle Non-empty Tables in Target Database

      Los valores válidos son Ignore y Stop Migration.

      • Si selecciona Ignore, cuando los datos que se van a insertar entran en conflicto con datos existentes en una tabla de destino, el servicio de transmisión de datos registra los datos en conflicto y conserva los datos existentes.

        Importante

        Si selecciona Ignore, los datos se extraen en modo IN durante la verificación completa. En este caso, la verificación no es aplicable si el destino contiene datos que no existen en el origen, y el rendimiento de la verificación disminuye.

      • Si selecciona Stop Migration y una tabla de destino contiene registros, se notifica un error que indica que la migración no es compatible durante la migración completa. En este caso, debe procesar los datos en la tabla de destino antes de continuar con la migración.

        Importante

        Si hace clic en Resume en el cuadro de diálogo que notifica el error, el servicio de transmisión de datos ignora este error y continúa migrando datos. Proceda con precaución.

      Post-Indexing

      Especifica si se deben crear índices después de completar la migración completa. La indexación posterior puede reducir el tiempo necesario para la migración completa. Para obtener más información sobre las consideraciones de la indexación posterior, consulte la descripción a continuación.

      Importante
      • Este parámetro se muestra únicamente si ha seleccionado tanto Schema Migration como Full Migration en la página Select Migration Type.

      • Solo se pueden crear índices de clave no única después de completar la migración.

      • Si la base de datos OceanBase de destino devuelve el siguiente error durante la creación del índice, el servicio de transmisión de datos ignora el error y determina que el índice se creó correctamente, sin volver a crearlo.

        • Mensaje de error en una base de datos OceanBase en modo compatible con MySQL: Duplicate key name.

        • Mensaje de error en una base de datos OceanBase en modo compatible con Oracle: name is already used by an existing object.

      Si selecciona Allow, configure los siguientes parámetros:

      • DDL Concurrency for Single Index: el número máximo de operaciones DDL simultáneas permitidas para un solo índice. Un valor mayor implica un mayor consumo de recursos y una migración de datos más rápida.

      • Maximum DDL Concurrency for Indexes: el número máximo de operaciones DDL de indexación posterior que el sistema puede invocar a la vez.

      Si se permite la indexación posterior, se recomienda utilizar un cliente CLI para modificar los siguientes parámetros para inquilinos de negocio en función de las condiciones de hardware de OceanBase Database y del tráfico actual de su negocio:

      // Specify the limit on the file memory buffer size.
      alter system set _temporary_file_io_area_size = '10' tenant = 'xxx'; 
      // Disable throttling in OceanBase Database V4.x.
      alter system set sys_bkgd_net_percentage = 100;  
    • Sincronización incremental

      La siguiente tabla describe los parámetros para la sincronización incremental, los cuales se muestran únicamente si ha seleccionado Bidirectional Synchronization y Incremental Synchronization en la página Select Migration Type.

      image

      Parámetro

      Descripción

      Write Concurrency

      La concurrencia para escribir datos en el destino durante la sincronización incremental. El valor máximo es 512. Una concurrencia de escritura alta puede generar una carga excesiva en el destino y afectar al negocio.

      Incremental Synchronization Rate Limit

      Puede elegir si desea limitar la tasa de sincronización incremental según sea necesario. Si decide limitarla, debe especificar los registros por segundo (RPS) y los bytes por segundo (BPS). El valor RPS indica el número máximo de filas de datos sincronizadas al destino por segundo durante la sincronización incremental, y el valor BPS indica la cantidad máxima de datos en bytes sincronizados al destino por segundo durante la sincronización incremental.

      Nota

      Los valores RPS y BPS especificados aquí son únicamente para limitación de velocidad. El rendimiento real de la sincronización incremental depende de factores como la configuración del origen y del destino, así como de las especificaciones de la instancia.

      Data Conflict Handling Strategy

      Los valores válidos son Ignore errors and keep the original data on the target y Ignore conflicts, use source data to overwrite target data. Para obtener más información, consulte la sección "Escenarios de conflicto de datos" de este tema.

  5. Haga clic en Precheck para realizar la comprobación previa de la tarea de migración de datos.

    En el paso Precheck, Data Transmission Service verifica si los elementos cumplen con los requisitos, tales como los permisos de lectura y escritura del usuario de la base de datos y la conectividad de red de la base de datos. Solo puede iniciar la tarea de migración de datos después de que todos los elementos de comprobación se superen. Si la comprobación previa falla:

    • Puede identificar y solucionar el problema, y luego ejecutar la comprobación previa nuevamente hasta que se complete correctamente.

    • También puede hacer clic en Skip en la columna Actions para un elemento de comprobación previa fallido. Aparece un cuadro de diálogo que describe el impacto de omitir esta operación. Para continuar, haga clic en OK.

  6. Una vez superada la comprobación previa, haga clic en Start Task para iniciar la tarea directa.

Configurar una tarea inversa

  1. Vaya a Migration Tasks page. Wait until the forward task is in the incremental synchronization phase and in the estado Running. Then, click Configuration for the reverse task.

    image

  2. En el cuadro de diálogo Configure Reverse Tasks, configure los parámetros.

    image

    Parámetro

    Descripción

    Task Instance

    Seleccione una instancia de tarea disponible en la lista desplegable para configurar la tarea inversa. Si no hay ninguna instancia de tarea disponible, adquiera una. Para obtener más información, consulte Purchase a data migration task.

    Write Concurrency

    La concurrencia para escribir datos en el destino durante la migración completa. El valor máximo es 512. Una concurrencia de escritura alta puede generar una carga excesiva en el destino y afectar al negocio.

    Incremental Synchronization Rate Limit

    Puede elegir si desea limitar la tasa de sincronización incremental según sea necesario.

    Data Conflict Handling Strategy

    Los valores válidos son Ignore errors and keep the original data on the target y Ignore conflicts, use source data to overwrite target data.

  3. Haga clic en Precheck. El sistema realiza la comprobación previa de la tarea inversa.

  4. Una vez superada la comprobación previa, haga clic en Start Task para iniciar la tarea inversa.