Use Data Transmission Service (DTS) para sincronizar datos de forma continua desde ApsaraDB RDS for MySQL hacia AnalyticDB for PostgreSQL. DTS admite una carga inicial completa seguida de una captura continua de cambios incrementales (CDC). Por lo tanto, es ideal para construir pipelines de análisis en tiempo real con datos OLTP activos.
Funcionamiento
La sincronización se ejecuta en dos fases secuenciales:
Sincronización de esquemas y datos completosDefine constraintsDefine table distribution — DTS copia los esquemas de las tablas y todas las filas existentes de MySQL a AnalyticDB for PostgreSQL. Esta fase no tiene costo.
Incremental data synchronization — DTS lee el binlog de MySQL y aplica de forma continua las operaciones INSERT, UPDATE, DELETE y ADD COLUMN en el destino. Esta fase genera cargos.
Requisitos previos
Antes de empezar, compruebe lo siguiente:
Todas las tablas de origen tienen claves primarias. DTS requiere claves primarias para ejecutar la sincronización incremental de manera confiable.
La instancia de destino de AnalyticDB for PostgreSQL ya está creada. Para obtener más información, consulte Crear una instancia de AnalyticDB for PostgreSQL.Create an AnalyticDB for PostgreSQL instance
Límites
|
Restricción |
Detalles |
|
Objetos de sincronización |
Solo se pueden seleccionar tablas. No es posible seleccionar bases de datos ni esquemas directamente. |
|
Tipos de datos no compatibles |
BIT, VARBIT, GEOMETRY, ARRAY, UUID, TSQUERY, TSVECTOR, TXID_SNAPSHOT, POINT |
|
Índices de prefijo |
No se sincronizan. Si las tablas de origen tienen índices de prefijo, la sincronización podría fallar. |
|
Herramientas DDL |
No use gh-ost ni pt-online-schema-change para operaciones DDL mientras se ejecuta una tarea de sincronización. |
|
CREATE TABLE |
No es compatible. Para incluir una tabla nueva, agréguela manualmente a los objetos seleccionados. Para obtener más información, consulte Agregar un objeto a una tarea de sincronización de datos. |
Topologías de sincronización compatibles
Sincronización unidireccional uno a uno
Sincronización unidireccional uno a varios
Sincronización unidireccional varios a uno
Asignación de términos
|
MySQL |
AnalyticDB for PostgreSQL |
|
Base de datos |
Esquema |
|
Tabla |
Tabla |
Configuración de una tarea de sincronización
Paso 1: Comprar una instancia de DTS
Comprar una instancia de DTS. En la página de compra, establezca lo siguiente:
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.DTS console
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 y haga clic en Configure Synchronization Channel en la columna Actions.
-
Configure las instancias de origen y de destino.
Detalles de la instancia de origen
Parámetro Descripción Synchronization task name DTS lo genera automáticamente. Especifique un nombre descriptivo para identificar la tarea. El nombre no necesita ser único. Instance type Seleccione RDS Instance. Instance region Se completa de forma automática desde la página de compra. No se puede modificar. RDS instance ID El identificador de la instancia de origen de ApsaraDB RDS for MySQL. Database account La cuenta de base de datos de la instancia de origen. ImportanteNo es obligatorio para MySQL 5.5 ni MySQL 5.6.
Database password La contraseña de la cuenta de base de datos. Encryption Seleccione Non-encryptedConfigurar el cifrado SSL en una instancia de ApsaraDB RDS for MySQL o bien SSL-encrypted. Para usar SSL-encrypted, primero habilite el cifrado SSL en la instancia de RDS. Para obtener más información, consulte Configurar el cifrado SSL en una instancia de ApsaraDB RDS for MySQL.Nota El parámetro Encryption solo está disponible en las regiones de China continental y en la región China (Hong Kong).NotaEl parámetro Encryption solo está disponible en China continental y en la región China (Hong Kong).
Detalles de la instancia de destino
Parámetro
Descripción
Instance type
Establézcalo en AnalyticDB for PostgreSQL. No se puede modificar.
Instance region
Se completa de forma automática desde la página de compra. No se puede modificar.
Instance ID
El identificador de la instancia de destino de AnalyticDB for PostgreSQL.
Database name
El nombre de la base de datos de destino.
Database account
La initial account de la instancia de AnalyticDB for PostgreSQL, o una cuenta con el permiso RDS_SUPERUSER. Para obtener más información, consulte Crear una cuenta de base de datos y Gestionar usuarios y permisos.
Database password
La contraseña de la cuenta de base de datos.

-
En la esquina inferior derecha, haga clic en Set Whitelist and Next. DTS agrega automáticamente las direcciones IP de sus servidores a la lista blanca de las instancias de base de datos de Alibaba Cloud (como ApsaraDB RDS o ApsaraDB for MongoDB). Para bases de datos autogestionadas en instancias de Elastic Compute Service (ECS), DTS agrega sus direcciones IP a las reglas del security group de ECS; compruebe que la instancia de ECS pueda acceder a la base de datos. Si la base de datos autogestionada se aloja en varias instancias de ECS, debe agregar manualmente los bloques CIDR de los servidores de DTS a las reglas del security group de cada instancia de ECS. Para bases de datos autogestionadas en un centro de datos o alojadas por un proveedor de nube externo, agregue manualmente los bloques CIDR de los servidores de DTS a la lista blanca de direcciones IP de la base de datos. Para obtener más información, consulte Agregar los bloques CIDR de los servidores de DTS.
AvisoAgregar los bloques CIDR de DTS a su lista blanca o a las reglas del security group introduce posibles riesgos de seguridad. Antes de continuar, aplique medidas preventivas como usar credenciales seguras, restringir los puertos expuestos, autenticar las llamadas a la API, revisar periódicamente las reglas de la lista blanca y conectarse mediante Express Connect, VPN Gateway o Smart Access Gateway siempre que sea posible.
-
Seleccione la política y los objetos de sincronización.
Parámetro Descripción Initial synchronization Seleccione tanto Initial Schema Synchronization como Initial Full Data Synchronization. DTS sincroniza los esquemas y los datos del origen antes de iniciar la sincronización incremental. Processing mode of conflicting tables Clear target table: omite el elemento Schema Name Conflict durante la comprobación previa. Borra los datos de la tabla de destino antes de la sincronización completa. Úselo para comenzar desde cero, por ejemplo, después de realizar pruebas. Ignore: omite el elemento Schema Name Conflict durante la comprobación previa. Agrega los datos entrantes a los datos existentes en el destino. Úselo para combinar datos de varias tablas de origen en una sola tabla de destino. Synchronization type Seleccione los tipos de operación que desea sincronizar: Insert, Update, Delete y AlterTable. Select objects to synchronize En la sección Available, seleccione una o más tablas y haga clic en el ícono de flecha para moverlas a la sección Selected. Use la función de asignación de nombres de objetos para renombrar las columnas sincronizadas. Para obtener más información, consulte Renombrar un objeto que se va a sincronizar. Rename databases and tables Use la función de asignación de nombres de objetos para renombrar los objetos sincronizados en la instancia de destino. Para obtener más información, consulte Asignación de nombres de objetos. Replicate temporary tables when DMS performs DDL operations Si usa Data Management (DMS) para operaciones DDL en línea en el origen, elija si desea sincronizar las tablas temporales que genera DMS. Yes: sincroniza los datos de las tablas temporales. Las operaciones DDL grandes pueden provocar retrasos en la sincronización. No: sincroniza únicamente los cambios DDL originales, sin incluir las tablas temporales. Las tablas de destino podrían bloquearse temporalmente. Retry time for failed connections Valor predeterminado: 720 minutos (12 horas). Si DTS se vuelve a conectar dentro de este periodo, la tarea se reanuda automáticamente. De lo contrario, la tarea termina con errores. Ajuste este valor según sus necesidades. NotaSe le cobra por la instancia de DTS durante los periodos de reintento. Libere la instancia de inmediato si el origen o el destino dejan de estar disponibles.

-
Si seleccionó Initial Schema Synchronization, especifique la columna de clave primaria y la columna de distribución para las tablas que se sincronizarán con AnalyticDB for PostgreSQL. Para obtener más información, consulte Definir restricciones y Definir la distribución de tablas.

En la esquina inferior derecha, haga clic en Precheck. DTS ejecuta una comprobación previa antes de iniciar la tarea. Si algún elemento falla, haga clic en el ícono junto a cada elemento con errores para consultar los detalles. Corrija los problemas y vuelva a ejecutar la comprobación previa, o bien ignore los elementos con errores y repita la comprobación.
Una vez superada la comprobación previa, cuando aparezca el mensaje The precheck is passed., cierre el cuadro de diálogo Precheck. La tarea se inicia automáticamente.
Espere a que finalice la sincronización inicial y la tarea pase al estado Synchronizing. Supervise el estado de la tarea en la página Synchronization Tasks.

Consideraciones de rendimiento
Durante la sincronización inicial de datos completos, DTS lee y escribe tanto en la base de datos de origen como en la de destino, lo que aumenta la carga de ambas. Esta carga se incrementa de forma significativa si la base de datos de origen tiene muchas consultas SQL lentas, tablas sin claves primarias o si ocurren interbloqueos en la base de datos de destino. En esos casos, los servicios de base de datos podrían dejar de estar disponibles.
Ejecute la tarea de sincronización fuera del horario de mayor demanda, cuando la utilización de CPU de las bases de datos de origen y de destino sea inferior al 30 %.
Facturación
|
Tipo de sincronización |
Costo |
|
Sincronización de esquemas y sincronización completa de datos |
Sin costo |
|
Sincronización incremental de datos |
Genera cargos. Para obtener más información, consulte Descripción general de la facturación. |