Este tema describe cómo usar Data Transmission Service (DTS) para sincronizar de forma continua los datos desde una base de datos MySQL autoadministrada —conectada a Alibaba Cloud mediante Express Connect, VPN Gateway o Smart Access Gateway— hacia una instancia de AnalyticDB for PostgreSQL.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una base de datos MySQL autoadministrada que ejecute la versión 5.1, 5.5, 5.6, 5.7 u 8.0.
Claves primarias en todas las tablas de origen.
El registro binario habilitado en la base de datos MySQL de origen.
Una cuenta de base de datos en el origen de MySQL con los siguientes permisos: SELECT sobre los objetos que se van a sincronizar, REPLICATION CLIENT, REPLICATION SLAVE y SHOW VIEW. Para consultar las instrucciones de configuración, consulte Crear una cuenta para una base de datos MySQL autoadministrada y configurar el registro binario.
-
La red local conectada a una VPC de Alibaba Cloud mediante Express Connect, VPN Gateway o Smart Access Gateway, con acceso permitido para DTS. Para consultar las instrucciones de configuración, consulte Conectar un centro de datos a DTS mediante VPN Gateway.
Para obtener una descripción general sobre cómo conectar una red local a una VPC, consulte Conectar una base de datos local a Alibaba Cloud .
Una instancia de AnalyticDB for PostgreSQL de destino. Para consultar las instrucciones de configuración, consulte Crear una instancia de AnalyticDB for PostgreSQL.
Limitaciones
Objetos compatibles: solo tablas. No es posible seleccionar bases de datos ni otros tipos de objetos como objetos de sincronización.
Tipos de datos no compatibles: BIT, VARBIT, GEOMETRY, ARRAY, UUID, TSQUERY, TSVECTOR, TXID_SNAPSHOT y POINT. Las columnas con estos tipos se omiten durante la sincronización.
Índices de prefijo: los índices de prefijo no se sincronizan. Si la base de datos de origen contiene índices de prefijo, la sincronización de datos podría fallar.
Operaciones DDL: solo se sincroniza ADD COLUMN. CREATE TABLE no es compatible; para sincronizar datos de una tabla nueva, agréguela manualmente a los objetos seleccionados. Para consultar las instrucciones, consulte Agregar un objeto a una tarea de sincronización de datos.
Herramientas de cambio de esquema en línea: no use gh-ost ni pt-online-schema-change para ejecutar operaciones DDL en los objetos de origen mientras la sincronización está en curso, ya que esto puede provocar errores en la tarea.
Operaciones SQL que se pueden sincronizar
DML: INSERT, UPDATE, DELETE
DDL: ADD COLUMN
Topologías de sincronización compatibles
Sincronización unidireccional de uno a uno
Sincronización unidireccional de uno a varios
Sincronización unidireccional de varios a uno
Asignación de términos
|
MySQL |
AnalyticDB for PostgreSQL |
|
Base de datos |
Esquema |
|
Tabla |
Tabla |
Consideraciones de rendimiento
Durante la sincronización inicial completa de datos, DTS lee de la base de datos de origen y escribe en la de destino. Esto incrementa la carga en ambos servidores de base de datos. Para reducir el riesgo:
Ejecute la tarea de sincronización fuera del horario de mayor actividad, cuando la utilización de CPU en ambas bases de datos sea inferior al 30 %.
Evite ejecutar una gran cantidad de consultas SQL lentas en la base de datos de origen durante la sincronización.
Compruebe que las tablas de origen tengan claves primarias antes de iniciar el proceso. Las tablas sin clave primaria aumentan significativamente el consumo de recursos.
Configuración de la sincronización de datos
Paso 1: Adquirir una instancia de sincronización de DTS
Adquiera una instancia de sincronización de datos tal como se describe en Adquirir una instancia de DTS.
En la página de compra, establezca las siguientes opciones:
Source Instance: MySQL
Target Instance: AnalyticDB for PostgreSQL
Synchronization Topology: One-Way Synchronization
Paso 2: Configurar el canal de sincronización
Inicie sesión en la consola de DTS.
En el panel de navegación izquierdo, haga clic en Data Synchronization.
En la parte superior de la página Synchronization Tasks, seleccione la región donde reside la instancia de destino.
Busque la instancia de sincronización que adquirió y haga clic en Configure Synchronization Channel en la columna Actions.
-
Configure las instancias de origen y de destino.
Instancia de origen
Parámetro
Descripción
Synchronization Task Name
DTS genera un nombre automáticamente. Especifique un nombre descriptivo para identificarlo con facilidad. El nombre no necesita ser único.
Instance Type
Seleccione User-Created Database Connected over Express Connect, VPN Gateway, or Smart Access Gateway.
Instance Region
Se rellena previamente desde la página de compra. No se puede modificar.
Peer VPC
Seleccione el ID de la VPC conectada a la base de datos MySQL autoadministrada.
Database Type
Se rellena previamente como MySQL. No se puede modificar.
IP Address
Introduzca la dirección IP del servidor de la base de datos MySQL autoadministrada.
Port Number
Introduzca el puerto de servicio de la base de datos de origen. Valor predeterminado: 3306.
Database Account
Introduzca la cuenta de MySQL que creó para DTS. La cuenta debe tener los permisos SELECT, REPLICATION CLIENT, REPLICATION SLAVE y SHOW VIEW.
Database Password
Introduzca la contraseña de la cuenta de la base de datos.
Instancia de destino
Parámetro
Descripción
Instance Type
Se rellena previamente como AnalyticDB for PostgreSQL. No se puede modificar.
Instance Region
Se rellena previamente desde la página de compra. No se puede modificar.
Instance ID
Seleccione la instancia de AnalyticDB for PostgreSQL de destino.
Database Name
Introduzca el nombre de la base de datos de destino.
Database Account
Introduzca la initial account de la instancia de AnalyticDB for PostgreSQL, o bien una cuenta con el rol
RDS_SUPERUSER. Para más detalles, consulte Crear una cuenta de base de datos y Gestionar usuarios y permisos.Database Password
Introduzca la contraseña de la cuenta de la base de datos.

-
Haga clic en Set Whitelist and Next.
DTS agrega automáticamente sus bloques CIDR de servidor a la lista blanca de la instancia de AnalyticDB for PostgreSQL de destino, lo que le permite conectarse a la instancia.
-
Seleccione la política y los objetos de sincronización. Objetos a sincronizar En la sección Available, seleccione las tablas que desea sincronizar y haga clic en
para moverlas a la sección Selected.Solo se pueden seleccionar tablas como objetos de sincronización. Para cambiar el nombre de los objetos en la instancia de destino, utilice la función de asignación de nombres de objetos. Para más detalles, consulte Cambiar el nombre de un objeto que se va a sincronizar .
DTS cobra por la instancia de sincronización durante los periodos de reintento. Libere la instancia de DTS de inmediato si libera las instancias de origen y de destino.
Política de sincronización
Configuración
Opciones
Initial Synchronization
En la mayoría de los casos, seleccione tanto Initial Schema Synchronization como Initial Full Data Synchronization. DTS sincroniza los esquemas y los datos existentes del origen al destino antes de iniciar la sincronización incremental.
Processing Mode of Conflicting Tables
Clear Target Table: omite el elemento de comprobación previa Schema Name Conflict y borra los datos de la tabla de destino antes de la sincronización completa inicial. Úselo cuando ejecute una sincronización de producción después de hacer pruebas. Ignore: omite el elemento de comprobación previa Schema Name Conflict y anexa los datos a los existentes durante la sincronización completa inicial. Úselo cuando combine datos de varias tablas en una sola.
Synchronization Type
Seleccione las operaciones DML y DDL que desea sincronizar: Insert, Update, Delete, AlterTable.
Configuraciones adicionales
Configuración
Descripción
Rename Databases and Tables
Utilice la asignación de nombres de objetos para cambiarles el nombre en el destino. Consulte Asignación de nombres de objetos.
Replicate Temporary Tables When DMS Performs DDL Operations
Si utiliza Data Management (DMS) para ejecutar operaciones DDL en línea en el origen, elija si desea replicar las tablas temporales que genera DMS. Sí: replica los datos de las tablas temporales (puede causar retrasos en la sincronización si la operación DDL genera grandes volúmenes de datos). No: replica únicamente los cambios DDL originales y no replica las tablas temporales (puede provocar bloqueos de tablas en el destino).
Retry Time for Failed Connections
Ventana de tiempo durante la cual DTS reintenta una conexión con errores antes de marcar la tarea como fallida. Valor predeterminado: 720 minutos (12 horas). Establezca este valor según sus requisitos de negocio. Si DTS se vuelve a conectar dentro de esta ventana, la tarea se reanuda automáticamente.

-
Si seleccionó Initial Schema Synchronization, especifique la columna de clave primaria y la columna de distribución para cada tabla en la página siguiente. Para conocer el contexto de estas configuraciones, consulte Definir restricciones y Definir la distribución de tablas.

-
Haga clic en Precheck.
DTS ejecuta una comprobación previa antes de iniciar la tarea. Esta no puede comenzar hasta que la comprobación se supere correctamente. Si algún elemento falla, haga clic en el icono
junto al elemento con errores para ver los detalles, corregir el problema y volver a ejecutar la comprobación previa. Si el elemento con errores no es crítico para su caso de uso, puede ignorarlo y ejecutar la comprobación previa de nuevo. Cuando aparezca el mensaje The precheck is passed., cierre el cuadro de diálogo Precheck. La tarea de sincronización se inicia automáticamente.
-
Espere a que finalice la sincronización inicial. El estado de la tarea cambia a Synchronizing cuando comienza la sincronización incremental. Supervise el estado de la tarea en la página Synchronization Tasks.
