Data Transmission Service (DTS) permite sincronizar datos de forma continua desde una instancia PolarDB-X 2.0 hacia una instancia AnalyticDB for PostgreSQL. Esto posibilita ejecutar análisis y consultas en tiempo real sobre los datos transaccionales sin afectar el rendimiento de la base de datos de origen.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Una instancia AnalyticDB for PostgreSQL con suficiente espacio de almacenamiento disponible para alojar todos los datos de la instancia PolarDB-X 2.0 de origen. Para consultar las instrucciones de configuración, véase Create an instance.
Una base de datos creada en la instancia de destino para recibir los datos sincronizados. Para consultar las instrucciones de configuración, véase la sección "CREATE DATABASE" en SQL syntax.
Los permisos adecuados tanto en la base de datos de origen como en la de destino (véase Permissions required for database accounts).
Limitaciones
Base de datos de origen
|
Limitación |
Detalles |
|
Requisitos de tabla |
Las tablas deben tener una restricción PRIMARY KEY o UNIQUE, y todos sus campos deben ser únicos. La ausencia de estas restricciones puede provocar filas duplicadas en el destino. |
|
Cantidad de tablas (al editar nombres de objetos) |
Si se cambian los nombres de tablas o columnas en el destino, una sola tarea admite hasta 5,000 tablas. Superar este límite genera un error de solicitud. Divida el trabajo en varias tareas o realice la sincronización a nivel de base de datos. |
|
Registro binario |
El registro binario debe estar habilitado en la consola de PolarDB-X 2.0 (véase Parameter settings) y |
|
Retención de registros binarios |
Solo sincronización incremental: conserve los registros binarios durante al menos 24 horas. Sincronización completa + incremental: conserve los registros binarios durante al menos 7 días; una vez finalizada la sincronización completa, puede ajustar el periodo de retención a más de 24 horas. Si DTS no logra leer los registros binarios, la tarea fallará y podrían producirse inconsistencias o pérdida de datos. |
|
Compatibilidad con MySQL |
La instancia PolarDB-X debe ser compatible con MySQL V5.7. |
Otras limitaciones
Solo es posible seleccionar tablas como objetos de sincronización. Las tablas optimizadas para anexión (AO) no son compatibles.
Si las asignaciones de columnas entre el origen y el destino están incompletas, o si los esquemas difieren, se perderán los datos de las columnas no asignadas.
Ejecute las tareas de sincronización fuera del horario pico. La sincronización inicial completa de datos consume recursos de lectura y escritura tanto en la base de datos de origen como en la de destino, lo cual puede incrementar la carga del servidor.
Las operaciones INSERT simultáneas durante la sincronización inicial completa provocan fragmentación en las tablas del destino; por ello, el tablespace de destino será mayor que el de origen al concluir la sincronización completa.
Escriba datos en la base de datos de destino exclusivamente mediante DTS durante la sincronización. Escribir mediante otras herramientas genera inconsistencia en los datos, y las operaciones DDL en línea de DMS pueden causar pérdida de datos en la base de datos de destino.
Casos especiales
DTS actualiza periódicamente la tabla dts_health_check.ha_health_check en la base de datos de origen para avanzar la posición del registro binario.
Facturación
|
Tipo de sincronización |
Costo |
|
Sincronización de esquema y sincronización completa de datos |
Gratuita |
|
Sincronización incremental de datos |
Con costo. Véase Billing overview. |
Operaciones SQL compatibles
DTS sincroniza las siguientes operaciones SQL:
DML: INSERT, UPDATE, DELETE
DDL: ADD COLUMN
CREATE TABLE no es compatible. Para sincronizar una tabla recién creada, agréguela manualmente a los objetos seleccionados. Véase Add an object to a data synchronization task .
Permisos necesarios para las cuentas de base de datos
Otorgue los permisos necesarios a las cuentas de base de datos antes de crear una tarea de sincronización.
|
Base de datos |
Permisos obligatorios |
|
PolarDB-X 2.0 de origen |
SELECT sobre los objetos a sincronizar, REPLICATION SLAVE, REPLICATION CLIENT |
|
AnalyticDB for PostgreSQL de destino |
Lectura y escritura en la base de datos de destino. Utilice la cuenta inicial o una cuenta con el permiso RDS_SUPERUSER. |
Para obtener más información, véase Manage database accounts y Permissions required to synchronize data.
Para la instancia AnalyticDB for PostgreSQL de destino, véase Create a database account y Manage account permissions.
Creación de una tarea de sincronización
Paso 1: Ir a la página Data Synchronization Tasks
Inicie sesión en la consola de DMS.
En la barra de navegación superior, haga clic en DTS.
En el panel de navegación izquierdo, seleccione DTS (DTS) > Data Synchronization.
La navegación real puede variar según el modo y el diseño de su DMS. Véase Simple mode y Customize the layout and style of the DMS console . Alternativamente, vaya directamente a la página Data Synchronization Tasks en la nueva consola de DTS.
Paso 2: Seleccionar una región
En la lista desplegable situada a la derecha de Data Synchronization Tasks, seleccione la región donde desea crear la tarea.Data Synchronization Tasks page of the new DTS console
En la nueva consola de DTS, seleccione la región en la esquina superior izquierda de la página.
Paso 3: Configurar las bases de datos de origen y destino
Haga clic en Create Task. En el asistente Create Task, configure los siguientes parámetros:
Base de datos de origen
|
Parámetro |
Valor |
|
Task Name |
Un nombre descriptivo para la tarea. DTS asigna un nombre automáticamente, pero un nombre significativo facilita la identificación posterior de la tarea. Los nombres de tarea no necesitan ser únicos. |
|
Select an existing DMS database instance |
(Opcional) Seleccione una instancia registrada existente para completar automáticamente los parámetros de la base de datos. Si omite este paso, configure los parámetros manualmente. |
|
Database Type |
Seleccione PolarDB-X 2.0. |
|
Access Method |
Seleccione Alibaba Cloud Instance. |
|
Instance Region |
La región de la instancia PolarDB-X 2.0. |
|
Replicate Data Across Alibaba Cloud Accounts |
Seleccione No para sincronización dentro de la misma cuenta. |
|
Instance ID |
El ID de la instancia PolarDB-X 2.0. |
|
Database Account |
La cuenta de la instancia PolarDB-X 2.0. Véase Permissions required for database accounts. |
|
Database Password |
La contraseña de la cuenta de la base de datos. |
Base de datos de destino
|
Parámetro |
Valor |
|
Select an existing DMS database instance |
(Opcional) Seleccione una instancia registrada existente para completar automáticamente los parámetros de la base de datos. Si omite este paso, configure los parámetros manualmente. |
|
Database Type |
Seleccione AnalyticDB for PostgreSQL. |
|
Access Method |
Seleccione Alibaba Cloud Instance. |
|
Instance Region |
La región de la instancia AnalyticDB for PostgreSQL. |
|
Instance ID |
El ID de la instancia AnalyticDB for PostgreSQL. |
|
Database Name |
El nombre de la base de datos en la instancia de destino que recibirá los datos sincronizados. |
|
Database Account |
La cuenta de la instancia AnalyticDB for PostgreSQL. Véase Permissions required for database accounts. |
|
Database Password |
La contraseña de la cuenta de la base de datos. |
Paso 4: Probar la conectividad
Haga clic en Test Connectivity and Proceed.
DTS agrega automáticamente sus bloques CIDR de servidor a la lista de permitidos de las instancias de base de datos de Alibaba Cloud y a las reglas de security group de las instancias Elastic Compute Service (ECS) que alojan bases de datos autogestionadas. Para bases de datos autogestionadas en centros de datos locales o nubes de terceros, agregue manualmente los bloques CIDR del servidor DTS a la lista de permitidos de la base de datos. Véase Add the CIDR blocks of DTS servers to the security settings of on-premises databases.
Agregar bloques CIDR del servidor DTS a listas de permitidos o security groups introduce riesgos potenciales de seguridad. Antes de continuar, tome medidas de protección como fortalecer las credenciales, limitar los puertos expuestos, autenticar las llamadas a la API, auditar regularmente las reglas de la lista de permitidos y bloquear bloques CIDR no autorizados. Considere conectarse mediante Express Connect, VPN Gateway o Smart Access Gateway (SAG) para mejorar la seguridad.
Paso 5: Seleccionar objetos y tipos de sincronización
Configure los siguientes parámetros:
|
Parámetro |
Descripción |
|
Synchronization Types |
Seleccione los tres: Schema Synchronization, Full Data Synchronization y Incremental Data Synchronization. DTS preselecciona Incremental Data Synchronization de forma predeterminada. La sincronización completa migra primero los datos históricos y establece la base para la sincronización incremental continua. |
|
Processing Mode of Conflicting Tables |
Precheck and Report Errors (recomendado): DTS verifica conflictos de nombres de tabla antes de iniciar. Si existen conflictos, la verificación previa falla. Utilice la asignación de nombres de objetos para cambiar el nombre de las tablas en conflicto en el destino. Ignore Errors and Proceed: omite las verificaciones de conflictos. Durante la sincronización completa, DTS omite las filas en conflicto y conserva los datos existentes en el destino. Durante la sincronización incremental, las filas en conflicto sobrescriben los datos del destino. Si los esquemas difieren, la inicialización podría fallar o faltar columnas. Úselo con precaución. |
|
Capitalization of object names in destination instance |
Controla si los nombres de bases de datos, tablas y columnas en el destino siguen la convención de mayúsculas del origen o del destino. El valor predeterminado es DTS default policy. Véase Specify the capitalization of object names in the destination instance. |
|
Source Objects |
Seleccione una o más tablas en Source Objects y haga clic en el icono de flecha para moverlas a Selected Objects. Solo se admiten tablas; las vistas, desencadenadores y procedimientos almacenados no se sincronizan. |
|
Selected Objects |
Haga clic derecho en un objeto para cambiarle el nombre, establecer condiciones de filtro WHERE o elegir qué operaciones SQL sincronizar. Haga clic en Batch Edit para cambiar el nombre de varios objetos a la vez. Tenga en cuenta que cambiar el nombre de un objeto puede provocar que los objetos dependientes fallen en la sincronización. |
Paso 6: Configurar opciones avanzadas
Haga clic en Next: Advanced Settings y configure lo siguiente:
|
Parámetro |
Descripción |
|
Select the dedicated cluster used to schedule the task |
Deje el valor predeterminado (clúster compartido) a menos que haya adquirido un clúster dedicado. Véase What is a DTS dedicated cluster. |
|
Set Alerts |
Seleccione Yes para recibir notificaciones cuando la tarea falle o la latencia de sincronización supere un umbral. Configure el umbral de alerta y los contactos. Véase Configure monitoring and alerting when you create a DTS task. |
|
Retry Time for Failed Connections |
Duración durante la cual DTS reintenta una conexión fallida después de iniciar la tarea. Establezca un valor superior a 30 minutos (rango válido: 10–1,440 minutos; predeterminado: 720). Si varias tareas comparten el mismo origen o destino, se aplica el tiempo de reintento más corto entre ellas. |
|
Wait time before a retry for other issues |
Duración durante la cual DTS reintenta después de que falle una operación DDL o DML. Establezca un valor superior a 10 minutos (rango válido: 1–1,440 minutos; predeterminado: 10). Este valor debe ser menor que el valor de Retry Time for Failed Connections. |
|
Enable Throttling for Full Data Migration |
Configure Queries per second (QPS) to the source database, RPS of Full Data Migration y BPS of Full Data Migration para reducir la carga en el destino durante la sincronización completa. Disponible solo cuando se selecciona Full Data Synchronization. |
|
Enable Throttling for Incremental Data Synchronization |
Configure RPS of Incremental Data Migration y BPS of Incremental Data Migration para reducir la carga en el destino durante la sincronización incremental. |
|
Environment Tag |
(Opcional) Etiquete la instancia DTS para facilitar su identificación. |
|
Whether to delete SQL operations on heartbeat tables of forward and reverse tasks |
Seleccione Yes para evitar que DTS escriba operaciones de latido en la base de datos de origen. Esto evita afectar la copia de seguridad física y la clonación, pero puede mostrar una desviación de latencia en la consola de DTS. Seleccione No para escribir operaciones de latido en la base de datos de origen. Funciones específicas como la copia de seguridad física y la clonación podrían verse afectadas. |
|
Configure ETL |
Seleccione Yes para configurar la función de extracción, transformación y carga (ETL) e introducir sentencias de procesamiento de datos en el editor de código. Véase Configure ETL in a data migration or synchronization task. |
Paso 7: (Opcional) Configurar campos de base de datos y tablas
Haga clic en Next: Configure Database and Table Fields.
En esta página, especifique el tipo, la columna de clave primaria y la clave de distribución para cada tabla que sincroniza con AnalyticDB for PostgreSQL. Este paso solo está disponible si seleccionó Schema Synchronization en el Paso 5.
Establezca Definition Status en All para ver y editar todas las tablas.
En Primary Key Column, puede especificar varias columnas para formar una clave primaria compuesta. Al menos una columna de clave primaria también debe configurarse como clave de distribución. Véase Manage tables y Define table distribution.
Paso 8: Ejecutar la verificación previa
Haga clic en Next: Save Task Settings and Precheck.
DTS ejecuta una verificación previa antes de iniciar la tarea. La tarea solo puede continuar después de aprobar todas las verificaciones.
Si una verificación falla, haga clic en View Details junto al elemento fallido, resuelva el problema y ejecute la verificación previa nuevamente.
Si se activa una alerta para un elemento que puede ignorarse de forma segura, haga clic en Confirm Alert Details, luego en Ignore, confirme con OK y haga clic en Precheck Again. Ignorar alertas puede causar inconsistencia en los datos.
Para previsualizar los parámetros de API utilizados para configurar esta instancia, pase el cursor sobre Next: Save Task Settings and Precheck y haga clic en Preview OpenAPI parameters .
Paso 9: Adquirir una instancia
Espere hasta que la tasa de éxito de la verificación previa alcance el 100% y luego haga clic en Next: Purchase Instance.
En la página Purchase Instance, configure lo siguiente:
|
Parámetro |
Descripción |
|
Billing Method |
Subscription: pago anticipado por uno a nueve meses, o uno, dos, tres o cinco años. Más rentable para tareas de larga duración. Pay-as-you-go: cobro por hora. Adecuado para tareas a corto plazo; libere la instancia al terminar para detener los cargos. |
|
Resource Group |
El resource group para la instancia. Predeterminado: default resource group. Véase What is Resource Management?. |
|
Instance Class |
La especificación de sincronización determina el throughput y el rendimiento. Seleccione según su volumen de datos y requisitos de latencia. Véase Specifications of data synchronization instances. |
Paso 10: Iniciar la tarea
Lea y acepte los Data Transmission Service (Pay-as-you-go) Service Terms, luego haga clic en Buy and Start.
La tarea de sincronización se inicia. Supervise su progreso en la lista de tareas.