La replicación nativa de ApsaraDB RDS for MySQL le permite replicar datos desde una base de datos MySQL autogestionada directamente hacia una instancia de RDS mediante la replicación estándar de MySQL. No requiere herramientas de migración adicionales ni servicios de transferencia de datos de pago.
Escenarios de uso
Migración a la nube con un tiempo de inactividad mínimo: importe una copia de seguridad completa de su base de datos autogestionada. Después, mantenga sincronizada la instancia de RDS mediante replicación hasta que esté listo para cambiar la aplicación.
Sincronización híbrida de datos: mantenga sincronizados de forma continua su entorno MySQL local y la instancia de RDS en la nube. Este método es adecuado para migraciones por fases o configuraciones de recuperación ante desastres.
Replicación multinube: replique los datos desde una base de datos MySQL alojada en otro proveedor de nube hacia una instancia de ApsaraDB RDS for MySQL.
Requisitos previos
Antes de empezar, asegúrese de lo siguiente:
Versión de la base de datos: MySQL 5.7 (versión secundaria 20240930 o posterior) o MySQL 8.0 (versión secundaria 20250531 o posterior).
Serie del producto: Basic Edition.
Método de facturación: suscripción o pay-as-you-go.
Región: China (Shanghai), China (Beijing), China (Shenzhen), China (Guangzhou) o China (Chengdu).
La replicación nativa solo está disponible actualmente en las regiones mencionadas. Si necesita esta función en otras regiones, envíe un ticket .
Para usar un native replication instance serverless, primero cree una instancia pay-as-you-go, habilite la replicación nativa y luego change the billing method to Serverless.
Facturación
Instancia nueva con replicación nativa habilitada: se aplican las instance fees estándar. La función de replicación nativa no genera cargos adicionales.
Actualización de una instancia existente: sin cargos adicionales.
Importación de datos mediante Object Storage Service (OSS): se aplican las OSS storage fees durante el tiempo que el archivo de copia de seguridad permanezca almacenado en OSS.
Limitaciones
Limitaciones funcionales
La instancia opera en modo read-only mientras la replicación nativa está activa.
No se admiten las actualizaciones de versión principal.
No se admite la replicación entre versiones principales. La base de datos MySQL autogestionada y la instancia de replicación nativa de RDS deben ejecutar la misma versión principal (por ejemplo, ambas en MySQL 8.0).
No se admite la actualización de la serie del producto (por ejemplo, de Basic Edition a High-availability Edition o Cluster Edition).
No se admite el cambio de VPC.
No se admite la recuperación de bases de datos ni de tablas.
Al actualizar una instancia existente a una instancia de replicación nativa, puede producirse una desconexión transitoria de unos 30 segundos. Ejecute esta operación fuera del horario de mayor actividad y asegúrese de que su aplicación cuente con un mecanismo de reconexión.
Limitaciones de permisos
Alcance de la cuenta privilegiada
Se otorgan algunos privilegios SUPER de replicación nativa a la cuenta privilegiada de la instancia de RDS. Solo esta cuenta puede ejecutar comandos de replicación nativa como CHANGE MASTER TO (MySQL 5.7) o CHANGE REPLICATION SOURCE TO (MySQL 8.0).
Lista de permitidos de permisos de replicación
Cuando la replicación nativa aplica eventos del registro binario desde un origen externo, primero comprueba los permisos. Se rechaza cualquier operación que requiera permisos fuera de la siguiente lista, lo cual interrumpe la replicación:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE,
DROP, RELOAD, PROCESS, REFERENCES, INDEX,
ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES,
LOCK TABLES, EXECUTE, REPLICATION SLAVE,
REPLICATION CLIENT, CREATE VIEW, SHOW VIEW,
CREATE ROUTINE, ALTER ROUTINE, CREATE USER,
EVENT, TRIGGER ON *.* TO XXX;
Limitaciones de las bases de datos del sistema
Durante la replicación se ignoran todas las operaciones sobre las bases de datos del sistema. Estas incluyen mysql, sys, information_schema, performance_schema y __recyclebin__.
Las operaciones que modifican indirectamente las bases de datos del sistema, comoCREATE USERyGRANT, no se ignoran. Estas operaciones deben cumplir con la lista de permitidos de permisos de replicación. Las sentencias que excedan los permisos otorgados, comoGRANT SUPER ON *.* TO xxx;, interrumpirán la replicación.
Limitaciones de GTID
ApsaraDB RDS for MySQL requiere que el modo Global Transaction Identifier (GTID) esté habilitado y no admite deshabilitarlo. Para replicar desde una base de datos MySQL externa, el origen también debe tener GTID habilitado.
Antes de configurar la replicación, ejecute lo siguiente en la base de datos de origen para comprobar el estado de GTID:
SHOW VARIABLES LIKE 'gtid_mode';
Si GTID no está habilitado, ejecute:
SET GLOBAL gtid_mode = ON;
Comportamiento durante el mantenimiento
Durante las operaciones de mantenimiento, como una migración entre servidores o una actualización de versión secundaria, se revocan temporalmente los permisos para comandos de replicación nativa y para modificar parámetros. El proceso de replicación no se ve afectado. Los permisos se restauran automáticamente cuando finaliza el mantenimiento.
Permisos de replicación nativa
Las cuentas privilegiadas en las instancias de replicación nativa cuentan con permisos adicionales que no están disponibles en las instancias de RDS estándar.
Comandos de replicación
|
Comando (MySQL 5.7) |
Comando (MySQL 8.0) |
Descripción |
|
|
|
Configura el origen y la posición inicial de la replicación. Consulte la documentación de MySQL 5.7. |
|
|
|
Inicia el proceso de replicación. |
|
|
|
Detiene el proceso de replicación. |
|
|
|
Restablece el estado de la réplica para reiniciar la replicación desde el origen. |
Modificación de parámetros
Las cuentas privilegiadas también pueden modificar los siguientes parámetros de ejecución:
`SET GLOBAL read_only = ON/OFF;`: alterna la instancia entre el modo de solo lectura (ON) y el modo de lectura y escritura (OFF).
SET SESSION sql_log_bin = ON/OFF;: controla si las sentencias SQL de la sesión actual se registran en el registro binario.SET SESSION GTID_NEXT = "<gtid_value>";: establece el valor de GTID para la siguiente transacción.
Paso 1: Habilitar la replicación nativa
Habilitar la replicación nativa en una instancia nueva
Cuando creating a new ApsaraDB RDS for MySQL instance en la página Standard Create, desplácese hasta la parte inferior, expanda More y active el interruptor Native Replication.
Este interruptor solo aparece cuando la configuración de la instancia cumple con los prerequisites.

Habilitar la replicación nativa en una instancia existente
Actualizar una instancia existente provoca una desconexión transitoria de unos 30 segundos. Ejecute esta operación fuera del horario de mayor actividad y asegúrese de que su aplicación cuente con un mecanismo de reconexión.
Vaya a la página RDS Instances, seleccione una región y haga clic en el ID de la instancia de destino.
En el panel de navegación izquierdo, haga clic en Native Replication y luego haga clic en Enable.
Revise la información del cuadro de diálogo y haga clic en OK.
Si la cuenta de servicio oficial de ApsaraDB RDS aún no tiene permiso para acceder a su OSS ni para crear y adjuntar interfaces de red elásticas (ENI), seleccione las casillas correspondientes en el cuadro de diálogo para otorgar estos permisos.
Paso 2: Configurar la conectividad de red
Antes de importar los datos, asegúrese de que la base de datos MySQL autogestionada pueda comunicarse por red con la instancia de RDS.
|
Escenario |
Configuración |
Cargos |
|
MySQL autogestionado en ECS dentro de la misma VPC |
La conectividad de red está disponible de forma predeterminada. Configure el security group de ECS para permitir el tráfico entrante en el puerto 3306 desde la IP de la instancia de RDS. Para obtener la IP de la instancia de RDS, conéctese a la instancia y ejecute |
Ninguna |
|
Comunicación entre distintas VPC o regiones en Alibaba Cloud |
Use un VPC peering connection o un Cloud Enterprise Network (CEN). |
Se aplican las VPC peering connection fees. Las instancias de CEN son gratuitas, pero pueden generarse cargos por transferencia de datos y ancho de banda. |
|
De un centro de datos local a la nube |
Utilice Use a VPN Gateway or a leased line para conectar su centro de datos a la VPC. |
Los cargos varían según el método. Consulte la documentación oficial para más detalles. |
|
De otro proveedor de nube a ApsaraDB RDS |
Use una VPN o una línea dedicada para establecer una conexión de red entre nubes. |
Los cargos varían según el método. Consulte la documentación oficial para más detalles. |
|
Red pública (no recomendado) |
Las instancias de replicación nativa de ApsaraDB RDS admiten public network access. No se recomienda este método debido a los riesgos de seguridad. |
Los cargos varían según el método. |
Para consultar la referencia completa, consulte Connections and networking.
Paso 3: Importar los datos completos y configurar la replicación
Importe una copia de seguridad completa de su base de datos autogestionada en RDS y configure la replicación incremental para mantener sincronizadas ambas bases de datos.
Instalar Percona XtraBackup y respaldar la base de datos de origen
Instale Percona XtraBackup en el host de su base de datos autogestionada.
Instalación en CentOS
Para MySQL 5.7:
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.29/binary/redhat/8/x86_64/percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
yum localinstall percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
Para MySQL 8.0:
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-31/binary/redhat/8/x86_64/percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
yum localinstall percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
Instalación en Ubuntu
Para MySQL 5.7:
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.29/binary/redhat/8/x86_64/percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
yum localinstall percona-xtrabackup-24-2.4.29-1.el8.x86_64.rpm
Para MySQL 8.0:
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.35-31/binary/redhat/8/x86_64/percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
yum localinstall percona-xtrabackup-80-8.0.35-31.1.el8.x86_64.rpm
XtraBackup en Ubuntu no incluye qpress. Instálelo por separado:
sudo apt-get install -y qpress
Crear la copia de seguridad
Los siguientes comandos corresponden a bases de datos que usan principalmente el motor InnoDB. Si su base de datos contiene tablas MyISAM, utilice el comando innobackupex en su lugar.
Se admiten tres métodos de compresión. Elija uno:
Método 1: Compresión qpress predeterminada
xtrabackup --backup \
--host=127.0.0.1 \
--port=3306 \
--user=<user_of_self-managed_MySQL> \
--password=<password> \
--stream=xbstream \
--compress > ./<backup_file_name>.xb
Método 2: Compresión QuickLZ
Requiere la versión 8.0.34-29 de XtraBackup o una anterior. Consulte la documentación de Percona XtraBackup para más detalles.
xtrabackup --backup \
--host=127.0.0.1 \
--port=3306 \
--user=<user_of_self-managed_MySQL> \
--password=<password> \
--stream=xbstream \
--compress > ./<backup_file_name>_qp.xb
Método 3: Compresión Zstandard (zstd)
xtrabackup --backup \
--host=127.0.0.1 \
--port=3306 \
--user=<user_of_self-managed_MySQL> \
--password=<password> \
--stream=xbstream \
| zstd -q - > ./<backup_file_name>.xb.zstd
Importar la copia de seguridad y configurar la replicación
Hay dos métodos de importación disponibles. Si puede cargar el archivo de copia de seguridad en OSS, use el método 1. Si su entorno tiene restricciones y resulta preferible la transmisión directa, use el método 2.
Método 1: Importar un archivo de copia de seguridad desde OSS
Cargar la copia de seguridad en un bucket de OSS
El bucket de OSS debe estar en la misma región que la instancia de RDS.
Instale ossutil:
yum install -y unzip
sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash
ossutil config
Cargue el archivo de copia de seguridad:
ossutil -e <OSS_Endpoint> -i <your_AccessKeyId> -k <your_AccessKeySecret> cp <backup_file_name> oss://<bucket_name>/
Importar la copia de seguridad en RDS
Vaya a la página RDS Instances, seleccione una región y haga clic en el ID de la instancia.
En el panel de navegación izquierdo, haga clic en Native Replication.
Haga clic en Import Full Data, configure los parámetros y haga clic en OK.
| Categoría | Parámetro | Descripción |
|---|---|---|
| Método de carga de la copia de seguridad (obligatorio) | MySQL version | Se muestra automáticamente como 5.7 o 8.0. No requiere configuración. |
| Import method | Seleccione Import from OSS. | |
| OSS bucket | Seleccione el bucket de OSS que contiene su archivo de copia de seguridad. | |
| OSS file name | Seleccione el archivo de copia de seguridad. Si el archivo está en un subdirectorio, introduzca la ruta completa. Formatos compatibles: .xb (xbstream), _qp.xb (QuickLZ), .xb.zst (zstd). |
|
| Configuración automática de la replicación (opcional) | Auto replication building | Actívelo para configurar automáticamente la replicación desde la base de datos de origen después de la importación. Si lo deja desactivado, configure la replicación manually tras la importación. |
| Source IP address | Dirección IP de la base de datos autogestionada de origen. | |
| Source port | Puerto de la base de datos autogestionada de origen. | |
| Source account | Cuenta de la base de datos de origen. Debe contar con los permisos REPLICATION CLIENT y REPLICATION SLAVE. |
|
| Account password | Contraseña de la cuenta de origen. |
Método 2: Transmitir la copia de seguridad directamente a RDS
Instalar la herramienta backup-helper e iniciar la transmisión de la copia de seguridad
# Install the backup-helper tool
wget -O backup-helper https://mysql-backup-helper.oss-cn-beijing.aliyuncs.com/v1.0.0-alpha/backup-helper && chmod +x backup-helper
# Start the backup stream (requires MySQL and the matching XtraBackup version to be installed)
./backup-helper --backup --mode=stream --host=<MySQL_IP> --port=<MySQL_port> --user=<MySQL_account> --password=<MySQL_password>
Importar la transmisión en RDS
Inicie sesión en la consola de ApsaraDB RDS, seleccione una región y haga clic en el ID de la instancia.
En el panel de navegación izquierdo, haga clic en Native Replication.
Haga clic en Import Full Data, configure los parámetros y haga clic en OK.
| Categoría | Parámetro | Descripción |
|---|---|---|
| Método de carga de la copia de seguridad (obligatorio) | MySQL version | Se muestra automáticamente como 5.7 o 8.0. No requiere configuración. |
| Import method | Seleccione Direct Stream Backup. | |
| Source backup IP address | Dirección IP utilizada para la transmisión de la copia de seguridad. | |
| Source backup port | Puerto utilizado para la transmisión de la copia de seguridad. Valor predeterminado: 9999. | |
| Configuración automática de la replicación (opcional) | Auto replication building | Actívelo para configurar automáticamente la replicación desde la base de datos de origen después de la importación. Si lo deja desactivado, configure la replicación manually tras la importación. |
| Source IP address | Dirección IP de la base de datos autogestionada de origen. | |
| Source port | Puerto de la base de datos autogestionada de origen. | |
| Source account | Cuenta de la base de datos de origen. Debe contar con los permisos REPLICATION CLIENT y REPLICATION SLAVE. |
|
| Account password | Contraseña de la cuenta de origen. |
Configurar la replicación manualmente (si es necesario)
Si no habilitó Auto replication building durante la importación, o si la configuración automática presentó errores y no se puede recuperar, configure el vínculo de replicación manualmente.
Create a privileged account en la instancia de RDS.
-
En la base de datos autogestionada de origen, cree una cuenta de replicación y otorgue los permisos necesarios:
-- Create a replication account. For production, restrict the allowed IP address instead of using '%'. -- Replace 'Test123!' with a strong password. CREATE USER 'replica'@'%' IDENTIFIED BY 'Test123!'; -- Grant replication permissions GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replica'@'%'; -- Apply the changes FLUSH PRIVILEGES; -
Log on to the RDS instance using the privileged account y ejecute los siguientes comandos: MySQL 5.7
-- Configure the replication source CHANGE MASTER TO MASTER_HOST='<source_IP>', MASTER_PORT='<source_port>', MASTER_USER='<replication_account>', MASTER_PASSWORD='<replication_account_password>', MASTER_AUTO_POSITION=1; -- Start replication START SLAVE; -- Check replication status SHOW SLAVE STATUS;MySQL 8.0
-- Configure the replication source CHANGE REPLICATION SOURCE TO SOURCE_HOST='<source_IP>', SOURCE_PORT='<source_port>', SOURCE_USER='<replication_account>', SOURCE_PASSWORD='<replication_account_password>', SOURCE_AUTO_POSITION=1; -- Start replication START REPLICA; -- Check replication status SHOW REPLICA STATUS;
Comprobar el estado de la replicación
En la página Native Replication de la instancia de RDS, compruebe el estado de la replicación. Cuando muestre Running, el vínculo de replicación estará activo y los datos se sincronizarán.
Deshabilitar la replicación nativa
Cuando esté listo para cambiar la aplicación, o si ya no necesita la replicación, deshabilite la replicación nativa para devolver la instancia al modo de lectura y escritura.
Vaya a la página RDS Instances, seleccione una región y haga clic en el ID de la instancia.
En el panel de navegación izquierdo, haga clic en Native Replication y luego haga clic en Disable.
Haga clic en OK.
Después de hacer clic en OK, se termina el vínculo de replicación desde la base de datos de origen. La instancia de RDS vuelve a ser una instancia estándar de ApsaraDB RDS for MySQL y cambia del modo de solo lectura al modo de lectura y escritura, lo que permite las operaciones de escritura.
Referencia de API
|
Operación |
API |
Notas |
|
Crear una instancia con replicación nativa |
Establezca |
|
|
Configurar un vínculo de replicación nativa para una instancia existente |
— |