Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Migrate the data of a self-managed instance that runs MySQL 5.7 or MySQL 8.0 to an ApsaraDB RDS for MySQL instance

Última atualização: Aug 26, 2026

Use este método quando for possível tirar a instância MySQL auto-gerenciada do ar durante a migração. Faça um backup físico completo com o Percona XtraBackup, transmita-o para o Object Storage Service (OSS) e importe-o pelo console do ApsaraDB RDS para criar uma nova instância RDS.

Caso não seja possível interromper o banco de dados, use o Data Transmission Service (DTS) para migrar com tempo de inatividade mínimo.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma instância MySQL auto-gerenciada que atenda aos requisitos de migração. Consulte Limitations para ver a lista completa.

  • Um bucket do OSS na mesma região da instância RDS de destino. Consulte Create buckets caso precise criar um.

  • Go e Unzip instalados no host que executa a instância MySQL auto-gerenciada.

Limitações

Analise as restrições abaixo antes de prosseguir:

Categoria

Restrição

MySQL version

A origem deve executar MySQL 5.7.32 ou anterior, ou MySQL 8.0.18 ou anterior. Origem e destino devem executar a mesma versão do MySQL.

Ferramenta de backup

O MySQL 5.7 exige o Percona XtraBackup 2.4. O MySQL 8.0 requer o Percona XtraBackup 8.0.

Escopo do backup

Apenas backup completo. Arquivos de backup diferencial e de log não são suportados. Dados incrementais gerados após a conclusão do backup não são incluídos.

Opções do XtraBackup

As opções --tables, --tables-exclude, --tables-file, --databases e --databases-file não são suportadas.

Formato do arquivo de backup

O arquivo deve estar no formato _QP.XB ou compactado em TAR.GZ. O nome do arquivo não pode conter caracteres especiais.

Criptografia do OSS

Defina Encryption Method como None ao criar o bucket do OSS. Buckets criptografados não são suportados.

Região do OSS

O bucket do OSS deve estar na mesma região da instância RDS.

Tamanho do arquivo no OSS

Máximo de 16 TB ao fazer upload em partes via CLI.

Diretório de dados

O diretório datadir deve ser o caminho de armazenamento padrão. Execute `mysqladmin -u -p variables

grep datadir` para verificar.

Configuração do InnoDB

O parâmetro innodb_data_file_path deve estar definido com o valor padrão ibdata1.

Destino

Os dados só podem ser restaurados em uma nova instância RDS, não em uma existente. O destino deve ser uma instância de pagamento conforme o uso executando MySQL 5.7 ou MySQL 8.0 no RDS Basic Edition com SSDs padrão.

Armazenamento

A instância RDS de destino deve ter mais espaço de armazenamento do que os dados de origem.

Não migrado

Contas de usuário, funções personalizadas, procedimentos armazenados e informações de fuso horário não são migrados. Registre esses itens antes da migração e adicione-os manualmente depois.

Replicação GTID

Se você planeja replicar dados incrementais após a migração, ative a replicação baseada em GTID e defina gtid_mode e enforce_gtid_consistency como ON na instância de origem.

AliyunRDSImportRole

Após autorizar o ApsaraDB RDS a acessar o OSS, uma função do RAM chamada AliyunRDSImportRole é criada no Resource Access Management (RAM). Não modifique nem exclua essa função.

Retenção de backup

Não exclua o arquivo de backup do OSS antes que a migração seja concluída.

Identificar objetos que não são migrados

Execute a consulta a seguir na instância de origem para listar procedimentos armazenados e funções que precisam ser recriados após a migração:

SELECT ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE
FROM information_schema.routines
WHERE ROUTINE_SCHEMA NOT IN ('sys', 'information_schema', 'performance_schema', 'mysql');

Registre também as contas de usuário e as configurações de fuso horário antes de prosseguir.

Como funciona

  1. Instale o Percona XtraBackup no host que executa a instância MySQL auto-gerenciada.

  2. Instale o MySQL Backup Helper, que fornece o backup_helper (verificação de compatibilidade) e o oss_stream (upload para o OSS).

  3. Execute uma verificação de compatibilidade, faça um backup completo e transmita-o diretamente para o OSS. Em seguida, importe o arquivo de backup pelo console do ApsaraDB RDS para criar uma nova instância RDS.

O ambiente neste guia usa uma instância Elastic Compute Service (ECS) executando CentOS Linux V8.3.2011. Para etapas específicas do Ubuntu, consulte o Apêndice 1: Instalar o Percona XtraBackup no Ubuntu e o Apêndice 2: Instalar Go e Unzip no Ubuntu.

Etapa 1: Instalar o Percona XtraBackup

O Percona XtraBackup é uma ferramenta de backup a quente para MySQL que suporta backups completos sem afetar o tempo de atividade. Instale a versão correspondente à sua versão do MySQL.

MySQL 5.7

MySQL 5.7 — usa o Percona XtraBackup 2.4:

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

MySQL 8.0

MySQL 8.0 — usa o Percona XtraBackup 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

Para Ubuntu, consulte o Apêndice 1.

Etapa 2: Instalar o MySQL Backup Helper

O MySQL Backup Helper oferece duas ferramentas: o backup_helper verifica se a instância suporta a migração, e o oss_stream transmite o backup diretamente para o OSS.

Instalar dependências (CentOS)

sudo yum install -y go
sudo yum install -y unzip

Para Ubuntu, consulte o Apêndice 2.

Compilar o MySQL Backup Helper

  1. Baixe o código-fonte:

    wget https://github.com/aliyun/mysql-backup-helper/archive/refs/heads/master.zip
  2. Descompacte o pacote:

    unzip master.zip
  3. Compile o backup_helper:

    cd mysql-backup-helper-master
    go build -a -o backup_helper main.go
  4. Compile o oss_stream:

    cd oss_stream
    go build -a -o oss_stream oss_stream.go

Etapa 3: Fazer backup e migrar

3,1 Verificar a compatibilidade da migração

Execute o backup_helper para confirmar se a instância de origem suporta a migração:

cd ~/mysql-backup-helper-master && ./backup_helper \
  -host <host-ip> \
  -port <port> \
  -user <username> \
  --password <password>

Substitua os espaços reservados pelos valores reais:

Espaço reservado

Descrição

Exemplo

<host-ip>

Endereço IP do host que executa a instância MySQL

127.0.0.1

<port>

Porta do MySQL

3306

<username>

Nome de usuário da conta root

root

<password>

Senha da conta root

Aa123456@

Se a verificação for bem-sucedida, prossiga para a próxima etapa.

3,2 Fazer backup e enviar para o OSS

Aviso

O Percona XtraBackup grava a linha de comando completa (incluindo senhas) no arquivo xtrabackup_info dentro do backup. Após concluir o upload, verifique se esse arquivo não expõe credenciais sensíveis.

Execute o backup e transmita-o diretamente para o bucket do OSS. Selecione o comando correspondente à sua versão do MySQL.

MySQL 5.7

MySQL 5.7 — usa o innobackupex:

innobackupex --backup \
  --host=<host-ip> \
  --port=<port> \
  --user=<username> \
  --password=<password> \
  --stream=xbstream \
  --compress <temp-dir> | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId <AccessKey-ID> \
  -accessKeySecret <AccessKey-secret> \
  -bucketName <bucket-name> \
  -endpoint <OSS-endpoint> \
  -objectName <backup-file-name>

Exemplo:

innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** \
  -accessKeySecret ****** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb

MySQL 8.0

MySQL 8.0 — usa o xtrabackup:

xtrabackup --backup \
  --host=<host-ip> \
  --port=<port> \
  --user=<username> \
  --password=<password> \
  --stream=xbstream \
  --compress <temp-dir> | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId <AccessKey-ID> \
  -accessKeySecret <AccessKey-secret> \
  -bucketName <bucket-name> \
  -endpoint <OSS-endpoint> \
  -objectName <backup-file-name>

Exemplo:

xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** \
  -accessKeySecret ******** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb

Substitua os espaços reservados pelos valores reais:

Espaço reservado

Descrição

Exemplo

<host-ip>

Endereço IP do host que executa a instância MySQL

127.0.0.1

<port>

Porta do MySQL

3306

<username>

Nome de usuário da conta root

root

<password>

Senha da conta root

Aa123456@

<temp-dir>

Diretório temporário para o backup

/root/mysql/data

<AccessKey-ID>

Seu AccessKey ID da Alibaba Cloud

LTAI5tXxx

<AccessKey-secret>

Seu AccessKey secret da Alibaba Cloud

xXxXxXx

<bucket-name>

Nome do seu bucket do OSS

test

<OSS-endpoint>

Endpoint do seu bucket do OSS

oss-ap-southeast-1.aliyuncs.com

<backup-file-name>

Nome a ser atribuído ao objeto de backup no OSS

backup_qp.xb

Para bancos de dados grandes, execute o comando com nohup para evitar interrupções caso a sessão seja desconectada. MySQL 5.7: MySQL 8.0:
nohup sh -c 'innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ --stream=xbstream --compress /root/mysql/data | ./mysql-backup-helper-master/oss_stream/oss_stream -accessKeyId LTAI**************** -accessKeySecret ****** -bucketName test -endpoint oss-ap-southeast-1.aliyuncs.com -objectName backup_qp.xb' &
nohup sh -c 'xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** -accessKeySecret ****** \
  -bucketName test -endpoint oss-ap-southeast-1.aliyuncs.com -objectName backup_qp.xb' &

Quando o backup for concluído, o terminal exibirá completed OK !.

Faça login no console do OSS para confirmar se o arquivo foi enviado com sucesso. Se o upload falhar, execute o comando de backup novamente.

Se o OSS estiver temporariamente indisponível, salve o backup em um arquivo local primeiro e faça o upload posteriormente. Consulte o Apêndice 3: Fazer backup localmente e enviar para o OSS.

3,3 Importar o backup no console do ApsaraDB RDS

  1. Faça login no console do ApsaraDB RDS. Na barra de navegação superior, selecione a região da instância RDS de destino. No painel de navegação à esquerda, clique em Backups.

  2. Na aba User Backups, clique em Import Backup.

  3. No assistente Import Guide, leia as instruções e clique em Next até chegar à etapa 3. Import Data.

    As etapas 1. Back Up Source Database e 2. Upload Backup Files to OSS do assistente correspondem às etapas 3,1 e 3,2 deste guia.
  4. Na etapa 3. Import Data, configure os parâmetros a seguir e clique em OK.

    Se o ApsaraDB RDS não estiver autorizado a acessar o OSS, clique em Authorize na parte inferior desta etapa. Na página exibida, clique em Confirm Authorization Policy .

    Parâmetro

    Descrição

    MySQL version

    Exibe 5.7/8.0 automaticamente. Tanto o MySQL 5.7 quanto o MySQL 8.0 são suportados.

    Region

    Região do bucket do OSS que armazena o arquivo de backup. Deve corresponder à região da instância RDS de destino.

    OSS Bucket

    Bucket do OSS que contém o arquivo de backup. Consulte Upload objects para obter detalhes.

    OSS file name

    Objeto de backup no bucket do OSS. Suporta correspondência exata e aproximada. O arquivo deve estar no formato _QP.XB ou compactado como TAR.GZ.

    Note

    Descrição opcional para ajudar a identificar o arquivo de backup.

    Zone

    Zona do bucket do OSS. Selecionar uma zona permite que o ApsaraDB RDS crie um snapshot em segundos, reduzindo o tempo de importação. A nova instância RDS será criada nesta zona.

    Storage Capacity

    Armazenamento necessário para o arquivo de backup. Valores válidos: 20–6000 GB. O padrão é 3× o tamanho do arquivo de backup (mínimo de 20 GB).

  5. Na aba User Backups, aguarde até que o Status da tarefa de verificação mude de Verifying para Completed.

    Importante

    O tempo de verificação varia. Instâncias com alta atividade de escrita ou transações grandes durante o backup podem levar mais tempo para serem verificadas.

  6. Localize o arquivo de backup e clique em Restore na coluna Actions.

  7. Configure os parâmetros a seguir e clique em Next: Instance Configuration.

    Parâmetro

    Descrição

    Zone of Primary Node

    Zona para a instância RDS primária. Exibido apenas se você não selecionou uma zona ao importar o arquivo de backup.

    Storage Type

    ESSD PL1: SSD empresarial de nível de desempenho 1. Standard SSD: Dispositivo de armazenamento em bloco elástico padrão. Consulte Storage types para obter detalhes.

    Instance Type

    General-purpose (Entry-level): Memória e I/O alocados exclusivamente, com CPU e armazenamento compartilhados. Consulte Primary ApsaraDB RDS instance types para ver a lista completa.

    Storage Capacity

    Armazenamento provisionado para arquivos de dados, sistema, logs e transações. Ajustável em incrementos de 5 GB.

  8. Configure os parâmetros a seguir e clique em Next: Confirm Order.

    Parâmetro

    Descrição

    Network Type

    Selecione VPC. Uma Virtual Private Cloud (VPC) oferece maior segurança e melhor desempenho. Você também deve configurar a VPC e o vSwitch of Primary Node. A instância RDS e qualquer instância ECS à qual você deseje se conectar devem estar na mesma VPC.

    Parameter Template

    Modelo de parâmetros do sistema ou personalizado. Consulte Use a parameter template.

    Time Zone

    Fuso horário da instância RDS.

    Table Name Case Sensitivity

    Se os nomes das tabelas na instância de origem diferenciam maiúsculas de minúsculas, selecione Case-sensitive para manter a consistência.

  9. Confirme a configuração da instância na seção Parameters, defina o Purchase Plan, aceite os Termos de Serviço e clique em Pay Now.

    O ApsaraDB RDS leva de 1 a 5 minutos para criar a instância.

Próximos passos

Configurar o período de retenção do backup

Por padrão, o arquivo de backup importado é retido por 3 dias. Ajuste o período de retenção conforme suas necessidades.

  1. Faça login no console do ApsaraDB RDS. Selecione uma região e clique em Backups no painel de navegação à esquerda.

  2. Localize o arquivo de backup. Na coluna Expiration Time, clique em Set Retention Period.

  3. Selecione um período de retenção na lista suspensa ou escolha Custom Retention Period e insira um valor.

  4. Clique em OK.

Se o tempo de expiração ultrapassar 2099, ele será exibido como Permanent .

Adicionar tags ao arquivo de backup

  1. Faça login no console do ApsaraDB RDS. Selecione uma região e clique em Backups.

  2. Localize o arquivo de backup. Na coluna Tags, clique em +Add.

  3. Na caixa de diálogo, clique em Create a label, preencha os campos Key e Value, clique em OK ao lado dos campos para criar a tag e, em seguida, clique em OK no canto inferior direito.

    Para usar uma tag existente, selecione-a na lista suspensa Select the label .
  4. Para atualizar uma tag, passe o mouse sobre ela e clique em edit. Na dica de ferramenta, repita a etapa 3.

Verificar dados de log para recuperação incremental

Se ocorreram alterações nos dados da instância de origem durante o backup, o arquivo de backup conterá informações de log para recuperação incremental.

  1. Faça login no console do ApsaraDB RDS. Selecione uma região e clique em Backups.

  2. Localize o arquivo de backup e clique em View Details na coluna Actions.

  3. Na mensagem exibida, revise os dados de log:

    • Master_Log_File: Primeiro arquivo de log contendo dados incrementais.

    • Master_Log_Position: Primeira entrada de log nesse arquivo que contém dados incrementais.

O período de retenção padrão para registros de validação de backup é de 7 dias. Após a migração, replique os dados incrementais da instância de origem para a instância RDS de destino o mais rápido possível.

Excluir o arquivo de backup

Se você não precisar mais do arquivo de backup, exclua-o para reduzir custos de armazenamento.

  1. Faça login no console do ApsaraDB RDS. Selecione uma região e clique em Backups.

  2. Localize o arquivo de backup e clique em Delete na coluna Actions.

  3. Na caixa de diálogo de confirmação, clique em OK.

Atualizar sua instância RDS

Após a migração, você pode executar as operações a seguir na nova instância RDS:

Mais operações na aba User Backups

  • Filtrar colunas: Clique no ícone Customize list items no canto superior direito para mostrar ou ocultar colunas. Mova as colunas entre a lista oculta (esquerda) e a lista exibida (direita) usando os ícones Right e Left. Clique em OK.

  • Exportar lista de instâncias: Clique no ícone Export the resource list para exportar as informações de backup como um arquivo CSV.

  • Atualizar: Clique no ícone Refresh para atualizar a aba User Backups.

Apêndice 1: Instalar o Percona XtraBackup no Ubuntu

Selecione a versão correspondente à sua versão do MySQL.

MySQL 8.0

  1. Instale o Percona XtraBackup:

    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
  2. Instale o qpress:

    sudo apt-get install -y qpress
Se você vir a mensagem The following packages have unmet dependencies , execute apt-get -f install para resolver as dependências e tente novamente.

Apêndice 2: Instalar Go e Unzip no Ubuntu

Instale a linguagem de programação Go:

sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt-get install -y golang-go

Instale o Unzip:

sudo apt-get -y install unzip

Apêndice 3: Fazer backup localmente e enviar para o OSS

Use esta abordagem se o OSS estiver temporariamente indisponível quando você executar o backup.

Etapa 1: Fazer backup para um arquivo local

Selecione o comando correspondente à sua versão do MySQL.

MySQL 5.7:

innobackupex --backup \
  --host=<host-ip> --port=<port> \
  --user=<username> --password=<password> \
  --stream=xbstream --compress <temp-dir> \
  > /<backup-dir>/<backup-file-name>_qp.xb

Exemplo:

innobackupex --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data > /root/backup_qp.xb

MySQL 8.0:

xtrabackup --backup \
  --host=<host-ip> --port=<port> \
  --user=<username> --password=<password> \
  --stream=xbstream --compress <temp-dir> \
  > /<backup-dir>/<backup-file-name>_qp.xb

Exemplo:

xtrabackup --backup --host=127.0.0.1 --port=3306 --user=root --password=Aa123456@ \
  --stream=xbstream --compress /root/mysql/data > /root/backup_qp.xb

Etapa 2: Enviar o arquivo local para o OSS

Quando o OSS estiver disponível, faça o upload usando o oss_stream:

cat /<backup-dir>/<backup-file-name>_qp.xb | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId LTAI**************** \
  -accessKeySecret ******** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb

Exemplo:

cat /root/backup_qp.xb | \
  ./mysql-backup-helper-master/oss_stream/oss_stream \
  -accessKeyId ******** \
  -accessKeySecret LTAI**************** \
  -bucketName test \
  -endpoint oss-ap-southeast-1.aliyuncs.com \
  -objectName backup_qp.xb