Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Migrar dados de um banco de dados MySQL autogerenciado para uma instância ApsaraDB RDS for MySQL

Última atualização: Jul 15, 2026

Use o Data Transmission Service (DTS) para migrar seu banco de dados MySQL autogerenciado — seja on-premises, em uma instância Elastic Compute Service (ECS) ou em outra cloud — para o ApsaraDB RDS for MySQL com tempo de inatividade mínimo ou nulo.

Este guia aborda:

  • Escolha da solução de migração

  • Preparação do banco de dados de origem e da instância RDS de destino

  • Configuração e execução da tarefa de migração

  • Verificação dos dados e transição da aplicação

Escolher uma solução de migração

O DTS oferece três tipos de migração combináveis para compor uma solução:

Tipo de migração

Descrição

Schema migration

Copia a estrutura de bancos de dados, tabelas, views, triggers, stored procedures e funções. O DTS converte DEFINER para INVOKER em views e stored procedures.

Full data migration

Copia todos os dados existentes do banco de dados de origem para a instância RDS de destino.

Incremental data migration

Após o início da migração completa de dados, copia continuamente as novas alterações do banco de dados de origem, permitindo a migração com tempo de inatividade próximo de zero.

Combine esses tipos conforme sua tolerância a tempo de inatividade:

Solução

Tempo de inatividade

Consistência dos dados

Limitações

Custo

Indicado para

Schema + full + incremental (recomendado)

Zero

Consistente após a conclusão da migração, mesmo que escritas continuem durante o processo

A migração incremental permanece ativa até ser interrompida manualmente

Pago (incremental)

Ambientes de produção, requisito de tempo de inatividade zero

Schema + full

Duração da migração completa

Consistente apenas se a origem for somente leitura durante a migração; inconsistente se houver escritas

A origem deve ficar quiescente para garantir dados consistentes

Gratuito

Ambientes de teste, tempo de inatividade aceitável

Faturamento

A migração de schema, a migração completa de dados e o tráfego de rede pública são gratuitos. Os itens abaixo são cobrados:

  • Incremental data migration: Cobrada enquanto estiver em execução. Não há cobrança quando pausada ou com falha.

  • Data verification: Cobrada com base no volume de dados verificado. Consulte taxas de verificação de dados.

Pré-requisitos

Antes de começar, certifique-se de ter:

  • Um banco de dados MySQL de origem executando a versão 5,1, 5,5, 5,6, 5,7 ou 8,0

  • Uma instância RDS for MySQL de destino com mais espaço de armazenamento disponível do que o banco de dados de origem

Limitações

Revise as limitações a seguir antes de configurar a tarefa de migração.

Requisitos do banco de dados de origem:

  • Todas as tabelas a serem migradas devem possuir uma chave primária ou uma restrição única com valores exclusivos. Caso contrário, a instância RDS de destino poderá conter dados duplicados.

  • Evite operações DDL (alterações de schema) durante a migração de schema e a migração completa de dados. A tarefa de migração falhará se operações DDL forem detectadas.

  • Se executar apenas a migração de schema + completa (sem incremental), evite escritas no banco de dados de origem durante a migração para manter a consistência dos dados.

  • O servidor do banco de dados de origem deve ter largura de banda de saída suficiente. Largura de banda insuficiente reduz a velocidade da migração.

  • Para migração incremental de dados, o log binário deve estar ativado e configurado corretamente (consulte Configurar log binário).

  • Se o banco de dados de origem for um cluster com dois primários, evite failovers entre primário e secundário enquanto a tarefa de migração estiver em execução. A tarefa falhará se ocorrer um failover.

  • Se o banco de dados de origem executar o MySQL 8.0.23 ou posterior e contiver colunas invisíveis (incluindo chaves primárias invisíveis geradas automaticamente para tabelas sem chave primária), torne-as visíveis antes da migração:

    ALTER TABLE <table_name> ALTER COLUMN <column_name> SET VISIBLE;

    Consulte Invisible Columns e Generated Invisible Primary Keys para obter detalhes.

Conteúdo que não pode ser migrado:

  • Parsers definidos com sintaxe de comentário

  • Dados provenientes de operações físicas de backup e recuperação ou de operações em cascata de chave estrangeira (não registrados nos logs binários)

  • Índices e partições

Outras limitações:

  • As versões do MySQL de origem e de destino devem ser compatíveis.

  • Se os dados a serem migrados contiverem caracteres de quatro bytes (caracteres raros ou emojis), a instância RDS de destino e suas tabelas devem usar o conjunto de caracteres utf8mb4. Para migração de schema, defina character_set_server como utf8mb4 na instância RDS de destino.

  • Se mapeamentos de nomes de colunas estiverem configurados, uma única tarefa de migração suporta até 1.000 tabelas. Crie múltiplas tarefas para migrações maiores.

  • O DTS utiliza ROUND(COLUMN, PRECISION) para recuperar valores de colunas FLOAT e DOUBLE. Se nenhuma precisão for especificada, FLOAT assume 38 dígitos e DOUBLE assume 308 dígitos por padrão. Verifique se essas configurações de precisão atendem aos seus requisitos.

  • O DTS tenta repetir tarefas com falha por até 7 dias. Antes de transferir cargas de trabalho para o destino, pare ou libere quaisquer tarefas com falha — ou revogue as permissões de escrita do DTS no destino — para evitar que dados obsoletos sobrescrevam novos dados.

  • Se uma tarefa do DTS falhar ao executar, o suporte técnico do DTS tentará restaurá-la em até 8 horas. Durante a restauração, a tarefa pode ser reiniciada e seus parâmetros podem ser modificados.

  • O DTS cria automaticamente o banco de dados de destino se o nome do banco de dados de origem seguir as convenções de nomenclatura do ApsaraDB RDS for MySQL. Caso contrário, crie o banco de dados manualmente antes de configurar a tarefa de migração.

  • Operações DDL online no banco de dados de origem usando pt-online-schema-change não são suportadas e causarão falha na tarefa. Use DMS ou gh-ost como alternativa.

  • O DTS executa periodicamente CREATE DATABASE IF NOT EXISTS no banco de dados de origem (criando um banco de dados test) para avançar a posição do log binário.

  • Após um failover de HA na instância RDS de destino, execute ANALYZE TABLE <table_name> para confirmar que os dados foram gravados em disco e não apenas na memória.

  • Se o banco de dados de origem tiver Transparent Data Encryption (TDE) ativado, todos os três tipos de migração são suportados. Se o recurso EncDB estiver ativado, a migração completa de dados não é suportada.

  • Na migração incremental de dados, uma instância ApsaraDB RDS for MySQL V5.6 somente leitura não pode ser usada como banco de dados de origem, pois não registra logs de transação.

Fase 1: Preparar a migração

Etapa 1: Autorizar o DTS a acessar recursos da cloud

  1. Abra a página de autorização rápida com sua conta Alibaba Cloud e clique em Authorize.

  2. Se você visualizar as mensagens EntityAlreadyExists.Role e EntityAlreadyExists.Role.Policy, a autorização já foi concluída.

screenshot_2025-03-21_13-37-47

Etapa 2: Criar contas de banco de dados

Conta para o banco de dados de origem

Execute as seguintes instruções no banco de dados de origem:

-- Replace dts_user and Your_Password123 with actual values.
CREATE USER 'dts_user'@'%' IDENTIFIED BY 'Your_Password123';

-- Required for schema migration and full data migration.
GRANT SELECT ON *.* TO 'dts_user'@'%';

-- Required for incremental data migration.
GRANT REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW ON *.* TO 'dts_user'@'%';

-- Required for DTS to create a heartbeat table to advance the binary log position.
GRANT CREATE ON *.* TO 'dts_user'@'%';

FLUSH PRIVILEGES;

A tabela a seguir resume as permissões mínimas necessárias para cada tipo de migração:

Tipo de migração

Permissões necessárias

Migração de schema

SELECT

Migração completa de dados

SELECT

Migração incremental de dados

SELECT; REPLICATION CLIENT, REPLICATION SLAVE, SHOW VIEW; CREATE (para tabela de heartbeat)

Conta para a instância RDS de destino

  1. No console do RDS, selecione a região e clique no ID da instância RDS de destino.

  2. No painel de navegação à esquerda, clique em Accounts e, em seguida, clique em Create Account.

  3. Defina Account Type como Privileged Account e preencha os parâmetros restantes.

A conta de destino requer permissões de leitura e escrita na instância RDS de destino.

Etapa 3: Configurar o acesso ao banco de dados de origem

Selecione o método de acesso correspondente à implantação do seu banco de dados de origem:

Banco de dados de origem

Método de acesso

Configuração

On-premises com endereço IP público

Public IP

Adicionar blocos CIDR do servidor DTS à lista de permissões de IP do banco de dados de origem

On-premises sem endereço IP público

Cloud Enterprise Network (CEN), Database Gateway ou VPN Gateway/Express Connect/Smart Access Gateway (SAG)

Adicionar blocos CIDR do servidor DTS à lista de permissões de IP e concluir a configuração de acesso à rede para o método escolhido

Banco de dados em uma instância ECS

ECS instance

Nenhuma configuração necessária

Configurar log binário para migração incremental de dados

Pule esta etapa se não for realizar migração incremental de dados.

O log binário deve estar ativado no banco de dados de origem para a migração incremental de dados. Configure os parâmetros a seguir e reinicie o MySQL para que as alterações tenham efeito.

Parâmetros de log binário

Parâmetro

Valor necessário

Observações

log_bin

mysql_bin (ou qualquer caminho)

Ativa o log binário

binlog_format

row

Necessário para o DTS capturar alterações no nível de linha

binlog_row_image

full

Obrigatório para MySQL 5.6 e posteriores

server_id

Qualquer inteiro maior que 1

Deve ser único em uma topologia de replicação

expire_logs_days

7 ou superior

Versões do MySQL anteriores à 8.0. Padrão: 0 (nunca expira)

binlog_expire_logs_seconds

604800 ou superior (7 dias)

MySQL 8.0 e posteriores. Padrão: 2592000 (30 dias)

log_slave_updates

ON

Apenas clusters com dois primários

Mantenha os logs binários por pelo menos 7 dias. Se o período de retenção for muito curto, o DTS pode falhar ao obter os logs binários necessários, resultando em inconsistência ou perda de dados.

Configurar no Linux

  1. Edite /etc/my.cnf:

    log_bin=mysql_bin
    binlog_format=row
    
    # MySQL earlier than 8.0:
    # expire_logs_days=7
    
    # MySQL 8.0 and later:
    # binlog_expire_logs_seconds=604800
    
    server_id=2
    binlog_row_image=full
    
    # Dual-primary clusters only:
    # log_slave_updates=ON
  2. Reinicie o MySQL:

    /etc/init.d/mysqld restart

Configurar no Windows

  1. Edite my.ini:

    log_bin=mysql_bin
    binlog_format=row
    
    # MySQL earlier than 8.0:
    # expire_logs_days=7
    
    # MySQL 8.0 and later:
    # binlog_expire_logs_seconds=604800
    
    server_id=2
    binlog_row_image=full
    
    # Dual-primary clusters only:
    # log_slave_updates=ON
  2. Reinicie o MySQL:

    net stop mysql
    net start mysql

Fase 2: Configurar a tarefa de migração

  1. Faça login no console do DTS, clique em Data Migration no painel de navegação à esquerda e, em seguida, clique em Create Task.

  2. Configure o banco de dados de origem e a instância RDS de destino.

    Banco de dados de origem

    Parâmetro

    Valor

    Database Type

    MySQL

    Access Method

    Selecione o método configurado na Etapa 3 (por exemplo, Public IP)

    Instance Region

    Região onde o banco de dados de origem está localizado

    Domain Name or IP

    Endpoint público ou endereço IP do banco de dados de origem

    Port

    Porta de service do banco de dados de origem. Padrão: 3306

    Database Account

    Conta criada na Etapa 2

    Database Password

    Senha da conta

    Encryption

    Non-encrypted se o SSL não estiver ativado; SSL-encrypted se o SSL estiver ativado (faça upload de um CA Certificate e defina a CA Key)

    Instância RDS de destino

    Parâmetro

    Valor

    Database Type

    MySQL

    Access Method

    Alibaba Cloud Instance

    Instance Region

    Região da instância RDS de destino

    Replicate Data Across Alibaba Cloud Accounts

    No

    RDS Instance ID

    ID da instância RDS de destino

    Database Account

    Conta privilegiada criada na Etapa 2

    Database Password

    Senha da conta

    Encryption

    Non-encrypted ou SSL-encrypted. Se criptografado com SSL, ative a criptografia SSL na instância RDS de destino primeiro

  3. Clique em Test Connectivity and Proceed. Na caixa de diálogo, clique em Test Connectivity. Se o teste falhar, corrija o problema com base na mensagem de erro antes de continuar.

  4. Configure os objetos a serem migrados.

    Configurar Objetos

    Na aba Configure Objects, defina os tipos de migração e selecione os objetos a serem migrados: Clique em Next: Advanced Settings.

    Parâmetro

    Descrição

    Migration Types

    Selecione Schema Migration e Full Data Migration para uma migração completa. Adicione Incremental Data Migration para minimizar o tempo de inatividade.

    Source Objects

    Selecione os bancos de dados, tabelas ou colunas a serem migrados e clique em Rightwards arrow para adicioná-los aos Selected Objects.

    Selected Objects

    Clique com o botão direito em um objeto para renomeá-lo ou configurar um filtro WHERE. Clique em Batch Edit para renomear vários objetos de uma vez.

    Processing Mode of Conflicting Tables

    Precheck and Report Errors (padrão): falha na pré-verificação se o destino já contiver tabelas com os mesmos nomes. Ignore Errors and Proceed: ignora esta verificação — durante a migração completa, os registros existentes são mantidos; durante a migração incremental, os registros existentes são sobrescritos.

    Method to Migrate Triggers in Source Database

    Disponível quando tanto Schema Migration quanto Incremental Data Migration estão selecionados. Consulte Sincronizar ou migrar triggers.

    Whether to migrate Event

    Especifica se eventos do banco de dados de origem devem ser migrados. Se você selecionar Yes, deverá concluir as operações subsequentes. Para mais informações, consulte Sincronizar ou migrar eventos.

    Enable Migration Assessment

    Disponível quando Schema Migration está selecionado. Verifica se os schemas de origem e destino (comprimentos de índice, stored procedures, tabelas dependentes) são compatíveis. Os resultados são exibidos durante a pré-verificação, mas não afetam o resultado dela.

    Capitalization of Object Names in Destination Instance

    Controla a capitalização dos nomes de bancos de dados, tabelas e colunas no destino. O padrão é DTS default policy. Consulte Especificar capitalização de nomes de objetos.

    (Opcional) Configurações Avançadas

    (Opcional) Na aba Advanced Configurations, ajuste as configurações conforme necessário: Clique em Next: Data verification.

    Parâmetro

    Descrição

    Dedicated Cluster for Task Scheduling

    Por padrão, as tarefas são executadas no cluster compartilhado. Adquira um cluster dedicado para maior estabilidade.

    Copy the temporary table of the Online DDL tool

    Se usar DMS ou gh-ost para DDL online na origem: Yes migra dados da tabela temporária (pode aumentar a latência); No, Adapt to DMS Online DDL migra apenas operações DDL originais; No, Adapt to gh-ost migra apenas DDL original do gh-ost.

    Whether to Migrate Accounts

    Migra informações de contas da origem. Se ativado, selecione as contas a serem migradas e verifique as permissões das contas.

    Retry Time for Failed Connections

    Tempo durante o qual o DTS tenta reconectar após uma falha de conexão. Intervalo: 10–1.440 minutos. Padrão: 720 minutos. Defina pelo menos 30 minutos.

    Retry Time for Other Issues

    Tempo durante o qual o DTS tenta novamente após falhas de DDL ou DML. Intervalo: 1–1.440 minutos. Padrão: 10 minutos. Deve ser menor que Retry Time for Failed Connections.

    Enable Throttling for Full Data Migration

    Limita o QPS no banco de dados de origem, o RPS para migração completa e a velocidade de migração (MB/s). Use para reduzir a carga nos servidores de banco de dados.

    Enable Throttling for Incremental Data Migration

    Limita o RPS e a velocidade de migração (MB/s) para migração incremental.

    Configure ETL

    Habilita processamento de extração, transformação e carga (ETL). Consulte Configurar ETL.

    Monitoring and Alerting

    Envia alertas quando a tarefa falha ou a latência excede um limiar. Consulte Configurar monitoramento e alertas.

    Whether to delete SQL operations on heartbeat tables

    Yes: não grava SQL de heartbeat na origem (a latência de migração pode ser exibida). No: grava SQL de heartbeat na origem (pode afetar backup físico e clonagem).

    (Opcional) Verificação de Dados

    (Opcional) Na aba Data Verification, configure a verificação de dados: Se configurar Verificação Completa de Dados, defina os seguintes parâmetros: Se configurar Verificação Incremental de Dados, defina o Incremental Verification Benchmark para filtrar operações DML a serem verificadas. Para configurar alertas de verificação de dados, defina Full Data Verification Alert ou Incremental Data Verification Alert como Yes e, em seguida, selecione e configure regras de alerta. Para receber notificações de alerta, inscreva-se nas mensagens de alerta no CloudMonitor. Consulte Configurar regras de alerta para tarefas do DTS.

    Método de verificação

    Custo

    Descrição

    Full Data Verification

    Pago

    Compara dados entre origem e destino após a migração completa

    Incremental Data Verification

    Pago

    Compara dados durante a migração incremental

    Schema Verification

    Gratuito

    Verifica a compatibilidade de schema entre origem e destino

    Selecione um ou mais métodos de verificação de dados conforme as necessidades do seu negócio.

    1. Verificação Completa de Dados

      Configure os seguintes parâmetros se selecionar Verificação Completa de Dados.

      Parâmetro

      Descrição

      Full Data Verification

      Validação completa de campos por amostragem de linhas: amostra uma porcentagem de linhas (10–100%) para comparação de campos completos. Verificar com base no número de linhas da tabela: compara apenas contagens de linhas (gratuito).

      Full Data Verification Time Rule

      Apenas Start Now é suportado.

      Timeout Settings for Full Data Verification

      Defina um tempo limite (1–72 horas) para encerrar automaticamente a tarefa de verificação se ela demorar demais.

      Full calibration reference

      Default: usa a união de origem e destino como base. Source Database: verifica se o destino corresponde à origem. Destination Database: verifica se a origem corresponde ao destino.

      Verificação Incremental de Dados

Fase 3: Executar a pré-verificação e iniciar a migração

  1. Clique em Next: Save Task Settings and Precheck. O DTS valida sua configuração e ambiente.

  2. Aguarde a conclusão da pré-verificação:

    • Se a Success Rate atingir 100%, o ambiente está pronto. Revise quaisquer avisos para confirmar que não representam risco e, em seguida, ignore-os e prossiga.

    • Se a pré-verificação falhar, clique em View Details, corrija o problema e execute a pré-verificação novamente.

  3. Clique em Next: Purchase Instance.

  4. Selecione um Resource Group (padrão: default resource group) e a especificação apropriada da instância DTS.

  5. Aceite os Data Transmission Service (Pay-As-You-Go) Terms of Service, clique em Purchase and Start e, em seguida, clique em Confirm. A tarefa de migração inicia automaticamente.

Fase 4: Verificar dados e realizar a transição

  1. Monitore o status da tarefa de migração:

    • Tarefas sem migração incremental de dados mostram Status: Completed quando finalizadas.

    • Tarefas com migração incremental de dados mostram Status: Running e não terminam automaticamente.

  2. Após a conclusão da migração completa e quando a latência da migração incremental estiver próxima de zero, verifique a consistência dos dados: Opção 1 — Verificação automática: Configure uma tarefa de verificação de dados no DTS. Opção 2 — Verificação manual: Execute as seguintes consultas tanto no banco de dados de origem quanto na instância RDS de destino e compare os resultados:

    -- Compare row counts
    SELECT COUNT(*) FROM <your_table>;
    
    -- Compare key business metrics
    SELECT SUM(amount) FROM orders WHERE create_time >= '2024-01-01';
  3. Realize a transição da sua aplicação fora do horário de pico:

    1. Pare sua aplicação.

    2. Confirme que a latência da migração incremental atingiu zero.

    3. Atualize as strings de conexão do banco de dados da sua aplicação para o endpoint da instância RDS de destino.

    4. Libere a tarefa de migração após a conclusão da transição.

Operações SQL suportadas para migração incremental de dados

Tipo de operação

Instruções SQL

DML

INSERT, UPDATE, DELETE

DDL

ALTER TABLE, ALTER VIEW, CREATE FUNCTION, CREATE INDEX, CREATE PROCEDURE, CREATE TABLE, CREATE VIEW, DROP INDEX, DROP TABLE, RENAME TABLE, TRUNCATE TABLE

Importante

Operações RENAME TABLE podem causar inconsistência de dados. Se você renomear uma tabela durante a migração e tiver selecionado essa tabela (em vez de seu banco de dados pai) como objeto de migração, os dados da tabela renomeada não serão migrados. Para evitar isso, selecione o banco de dados como objeto de migração e garanta que tanto os nomes de banco de dados anteriores quanto posteriores à renomeação estejam incluídos no escopo da migração.

Perguntas frequentes

P: Por que o DTS falha ao conectar com o erro "Host 'XXX' is not allowed to connect to this MySQL server"?

Este é um erro de conexão Java Database Connectivity (JDBC). Verifique se as credenciais da conta estão corretas e se a conta possui as permissões necessárias. Usar uma conta privilegiada para testar a conexão pode ajudar a isolar o problema.

P: Por que não consigo selecionar uma instância RDS na região China (Fuzhou) ao criar uma tarefa de migração?

O DTS não suporta instâncias na região China (Fuzhou). Como alternativa, faça backup de um banco de dados MySQL 5.7 ou 8.0 autogerenciado para a cloud.