A replicação nativa do ApsaraDB RDS for MySQL permite replicar dados de um banco de dados MySQL autogerenciado diretamente para uma instância rds usando a replicação padrão do MySQL, sem ferramentas adicionais de migração ou services pagos de transferência de dados.
Casos de uso
Migração para a cloud com tempo de inatividade mínimo: importe um backup completo do banco de dados autogerenciado e mantenha a instância rds sincronizada via replicação até estar pronto para migrar a aplicação.
Sincronização híbrida de dados: mantenha o MySQL local e a instância rds na cloud continuamente sincronizados, por exemplo, durante uma migração em fases ou em um cenário de recuperação de desastres.
Replicação multicloud: replique dados de um banco de dados MySQL em outro provedor de cloud para uma instância ApsaraDB RDS for MySQL.
Pré-requisitos
Antes de começar, verifique se:
Versão do banco de dados: MySQL 5.7 (versão secundária 20240930 ou posterior) ou MySQL 8.0 (versão secundária 20250531 ou posterior).
Série do product: Basic Edition.
Método de faturamento: assinatura ou pagamento conforme o uso.
Região: China (Shanghai), China (Beijing), China (Shenzhen), China (Guangzhou) ou China (Chengdu).
A replicação nativa está disponível atualmente apenas nas regiões listadas acima. Se precisar desse recurso em outras regiões, envie um ticket .
Para usar uma instância de replicação nativa Serverless, crie primeiro uma instância com pagamento conforme o uso, ative a replicação nativa e depois altere o método de faturamento para Serverless.
Faturamento
Nova instância com replicação nativa ativada: aplicam-se as taxas da instância padrão. Não há cobrança extra pelo recurso de replicação nativa.
Atualização de uma instância existente: sem taxas adicionais.
Importação de dados via Object Storage Service (OSS): aplicam-se as taxas de armazenamento do OSS durante o período em que o arquivo de backup permanecer armazenado no OSS.
Limitações
Limitações funcionais
A instância opera no modo read-only enquanto a replicação nativa estiver ativa.
Não há suporte para atualizações de versão principal.
A replicação entre versões principais diferentes não é suportada. O banco de dados MySQL autogerenciado e a instância de replicação nativa do rds devem executar a mesma versão principal (por exemplo, ambos MySQL 8.0).
Não é possível atualizar a série do product (por exemplo, da Basic Edition para a High-availability Edition ou Cluster Edition).
A troca de VPC não é suportada.
Não há suporte para recuperação de bancos de dados e tabelas.
Ao atualizar uma instância existente para uma instância de replicação nativa, pode ocorrer uma desconexão transitória de cerca de 30 segundos. Execute essa operação fora dos horários de pico e certifique-se de que sua aplicação possua um mecanismo de reconexão.
Limitações de permissão
Escopo da conta privilegiada
Alguns privilégios SUPER para replicação nativa são concedidos à conta privilegiada da instância rds. Somente a conta privilegiada pode executar comandos de replicação nativa, como CHANGE MASTER TO (MySQL 5.7) ou CHANGE REPLICATION SOURCE TO (MySQL 8.0).
Lista de permissões de replicação
Quando a replicação nativa aplica eventos de log binário de uma fonte externa, ela verifica as permissões primeiro. Qualquer operação que exija permissões além da lista a seguir será rejeitada e interromperá a replicação:
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;
Limitações de bancos de dados do sistema
Todas as operações em bancos de dados do sistema são ignoradas durante a replicação. Os bancos de dados do sistema incluem mysql, sys, information_schema, performance_schema e __recyclebin__.
Operações que modificam indiretamente os bancos de dados do sistema — comoCREATE USEReGRANT— não são ignoradas. Essas operações devem obedecer à lista de permissões de replicação. Instruções que excedam as permissões concedidas, comoGRANT SUPER ON *.* TO xxx;, interromperão a replicação.
Limitações de GTID
O ApsaraDB RDS for MySQL exige que o modo Global Transaction Identifier (GTID) esteja ativado e não oferece suporte para desativá-lo. Para replicar a partir de um banco de dados MySQL externo, a fonte também deve ter o GTID ativado.
Antes de configurar a replicação, execute o seguinte comando no banco de dados de origem para verificar o status do GTID:
SHOW VARIABLES LIKE 'gtid_mode';
Se o GTID não estiver ativado, execute:
SET GLOBAL gtid_mode = ON;
Comportamento durante manutenção
Durante operações de manutenção, como migração entre servidores ou atualização de versão secundária, as permissões para comandos de replicação nativa e modificação de parâmetros são revogadas temporariamente. O processo de replicação em si não é afetado. As permissões são restauradas automaticamente após a conclusão da manutenção.
Permissões de replicação nativa
Contas privilegiadas em instâncias de replicação nativa possuem permissões adicionais não disponíveis em instâncias rds padrão.
Comandos de replicação
|
Comando (MySQL 5.7) |
Comando (MySQL 8.0) |
Descrição |
|
|
|
Configura a fonte e a posição inicial para replicação. Consulte a documentação do MySQL 5.7. |
|
|
|
Inicia o processo de replicação. |
|
|
|
Interrompe o processo de replicação. |
|
|
|
Redefine o estado da réplica para reiniciar a replicação a partir da fonte. |
Modificação de parâmetros
Contas privilegiadas também podem modificar os seguintes parâmetros de tempo de execução:
`SET GLOBAL read_only = ON/OFF;` — alterna a instância entre o modo somente leitura (ON) e leitura/gravação (OFF).
SET SESSION sql_log_bin = ON/OFF;— controla se as instruções SQL da sessão atual são registradas no log binário.SET SESSION GTID_NEXT = "<gtid_value>";— define o valor do GTID para a próxima transação.
Etapa 1: Ativar a replicação nativa
Ativar replicação nativa em uma nova instância
Ao criar uma nova instância do ApsaraDB RDS for MySQL na página Standard Create, role até a parte inferior, expanda More e ative a chave Native Replication.
Essa opção aparece apenas quando a configuração da instância atende aos pré-requisitos.

Ativar replicação nativa em uma instância existente
A atualização de uma instância existente causa uma desconexão transitória de cerca de 30 segundos. Execute essa operação fora dos horários de pico e certifique-se de que sua aplicação possua um mecanismo de reconexão.
Acesse a página rds Instances, selecione uma região e clique em no ID da instância de destino.
No painel de navegação à esquerda, clique em Native Replication e, em seguida, clique em Enable.
Revise as informações na caixa de diálogo e clique em OK.
Se a conta de service oficial do ApsaraDB RDS ainda não tiver permissão para acessar seu OSS e para criar e anexar interfaces de rede elásticas (ENIs), marque as caixas de seleção correspondentes na caixa de diálogo para conceder essas permissões.
Etapa 2: Configurar a conectividade de rede
Antes de importar dados, garanta que o banco de dados MySQL autogerenciado possa se comunicar com a instância rds pela rede.
|
Cenário |
Configuração |
Taxas |
|
MySQL autogerenciado no ECS na mesma VPC |
A conectividade de rede está disponível por padrão. Configure o grupo de segurança do ECS para permitir tráfego de entrada na porta 3306 proveniente do IP da instância rds. Para obter o IP da instância rds, conecte-se à instância e execute |
Nenhuma |
|
Entre VPCs ou entre regiões na Alibaba Cloud |
Use uma conexão de peering de VPC ou a Cloud Enterprise Network (CEN). |
Aplicam-se as taxas de conexão de peering de VPC. Instâncias CEN são gratuitas, mas podem haver taxas de transferência de dados e largura de banda. |
|
Data center local para a cloud |
Utilize um VPN Gateway ou uma linha dedicada para conectar seu data center à VPC. |
As taxas variam conforme o método. Consulte a documentação oficial para detalhes. |
|
Outro provedor de cloud para o ApsaraDB RDS |
Use uma VPN ou uma linha dedicada para estabelecer uma conexão de rede entre clouds. |
As taxas variam conforme o método. Consulte a documentação oficial para detalhes. |
|
Rede pública (não recomendado) |
Instâncias de replicação nativa do ApsaraDB RDS suportam acesso à rede pública. Este método não é recomendado devido a riscos de segurança. |
As taxas variam conforme o método. |
Para referência completa, consulte Conexões e rede.
Etapa 3: Importar dados completos e configurar a replicação
Importe um backup completo do banco de dados autogerenciado para o rds e configure a replicação incremental para manter os dois bancos de dados sincronizados.
Instalar o Percona XtraBackup e fazer backup do banco de dados de origem
Instale o Percona XtraBackup no host do banco de dados autogerenciado.
Instalação no 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
Instalação no 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
O XtraBackup no Ubuntu não inclui o qpress. Instale-o separadamente:
sudo apt-get install -y qpress
Criar o backup
Os comandos a seguir destinam-se a bancos de dados que utilizam principalmente o mecanismo InnoDB. Se o banco de dados contiver tabelas MyISAM, use o comando innobackupex em vez disso.
Três métodos de compactação são suportados. Escolha um:
Método 1: Compactação qpress padrão
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: Compactação QuickLZ
Requer a versão 8.0.34-29 ou anterior do XtraBackup. Consulte a documentação do Percona XtraBackup para mais detalhes.
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: Compactação 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 o backup e configurar a replicação
Dois métodos de importação estão disponíveis. Se puder carregar o arquivo de backup no OSS, use o Método 1. Caso o ambiente tenha restrições e o streaming direto seja preferível, utilize o Método 2.
Método 1: Importar um arquivo de backup do OSS
Carregar o backup em um bucket do OSS
O bucket do OSS deve estar na mesma região da instância rds.
Instale o ossutil:
yum install -y unzip
sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash
ossutil config
Carregue o arquivo de backup:
ossutil -e <OSS_Endpoint> -i <your_AccessKeyId> -k <your_AccessKeySecret> cp <backup_file_name> oss://<bucket_name>/
Importar o backup para o rds
Acesse a página rds Instances, selecione uma região e clique em no ID da instância.
No painel de navegação à esquerda, clique em Native Replication.
Clique em Import Full Data, configure os parâmetros e clique em OK.
| Categoria | Parâmetro | Descrição |
|---|---|---|
| Método de upload do backup (obrigatório) | MySQL version | Exibido automaticamente como 5.7 ou 8.0. Nenhuma configuração necessária. |
| Import method | Selecione Import from OSS. | |
| OSS bucket | Selecione o bucket do OSS que contém o arquivo de backup. | |
| OSS file name | Selecione o arquivo de backup. Se o arquivo estiver em um subdiretório, insira o caminho completo. Formatos suportados: .xb (xbstream), _qp.xb (QuickLZ), .xb.zst (zstd). |
|
| Configuração automática de replicação (opcional) | Auto replication building | Ative para configurar automaticamente a replicação a partir do banco de dados de origem após a importação. Se deixar esta opção desativada, configure a replicação manualmente após a importação. |
| Source IP address | Endereço IP do banco de dados autogerenciado de origem. | |
| Source port | Porta do banco de dados autogerenciado de origem. | |
| Source account | Conta no banco de dados de origem. Deve ter as permissões REPLICATION CLIENT e REPLICATION SLAVE. |
|
| Account password | Senha da conta de origem. |
Método 2: Transmitir o backup diretamente para o rds
Instalar a ferramenta backup-helper e iniciar o fluxo de backup
# 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 o fluxo para o rds
Faça login no console do ApsaraDB RDS, selecione uma região e clique em no ID da instância.
No painel de navegação à esquerda, clique em Native Replication.
Clique em Import Full Data, configure os parâmetros e clique em OK.
| Categoria | Parâmetro | Descrição |
|---|---|---|
| Método de upload do backup (obrigatório) | MySQL version | Exibido automaticamente como 5.7 ou 8.0. Nenhuma configuração necessária. |
| Import method | Selecione Direct Stream Backup. | |
| Source backup IP address | Endereço IP usado para o fluxo de backup. | |
| Source backup port | Porta usada para o fluxo de backup. Padrão: 9999. | |
| Configuração automática de replicação (opcional) | Auto replication building | Ative para configurar automaticamente a replicação a partir do banco de dados de origem após a importação. Se deixar esta opção desativada, configure a replicação manualmente após a importação. |
| Source IP address | Endereço IP do banco de dados autogerenciado de origem. | |
| Source port | Porta do banco de dados autogerenciado de origem. | |
| Source account | Conta no banco de dados de origem. Deve ter as permissões REPLICATION CLIENT e REPLICATION SLAVE. |
|
| Account password | Senha da conta de origem. |
Configurar a replicação manualmente (se necessário)
Se você não ativou a opção Auto replication building durante a importação, ou se a configuração automática falhou e não pôde ser recuperada, configure o link de replicação manualmente.
Crie uma conta privilegiada na instância rds.
-
No banco de dados autogerenciado de origem, crie uma conta de replicação e conceda as permissões necessárias:
-- 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; -
Faça login na instância rds usando a conta privilegiada e execute os seguintes 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;
Verificar o status da replicação
Na página Native Replication da instância rds, verifique o status da replicação. Quando for exibido como Running, o link de replicação estará ativo e os dados estarão sendo sincronizados.
Desativar a replicação nativa
Quando estiver pronto para migrar a aplicação — ou caso não precise mais da replicação — desative a replicação nativa para retornar a instância ao modo de leitura/gravação.
Acesse a página rds Instances, selecione uma região e clique em no ID da instância.
No painel de navegação à esquerda, clique em Native Replication e, em seguida, clique em Disable.
Clique em OK.
Após clicar em OK, o link de replicação do banco de dados de origem é encerrado. A instância rds volta a ser uma instância padrão do ApsaraDB RDS for MySQL e muda do modo somente leitura para leitura/gravação, permitindo operações de escrita.
Referência de API
|
Operação |
API |
Observações |
|
Criar uma instância com replicação nativa |
Defina |
|
|
Configurar um link de replicação nativa para uma instância existente |
— |