Use o Percona XtraBackup para restaurar um backup físico do ApsaraDB RDS for MySQL em um banco de dados MySQL auto-gerenciado.
Contexto
O ApsaraDB RDS for MySQL permite restaurar backups de instâncias em um banco de dados auto-gerenciado. Há diversos métodos de restauração de dados disponíveis, como a restauração a partir de um backup físico ou lógico. Para obter mais informações sobre como escolher o método adequado, consulte MySQL data restoration methods.
Para verificar o tipo de backup de uma instância, acesse o console do ApsaraDB RDS. No painel de navegação à esquerda, acesse Backup and Restoration > Base Backups > Data Backup.
Caso não existam backups físicos, crie primeiro um backup manual. Para instruções detalhadas, consulte Manual backup.
Cenários
Restaure um backup físico da sua instância RDS for MySQL para um banco de dados auto-gerenciado quando não precisar mais da instância por um longo período ou se ela já tiver sido liberada, mas o arquivo de backup físico ainda estiver disponível.
Pré-requisitos
-
Sua instância RDS MySQL deve atender aos seguintes requisitos:
Versão principal: 8,0, 5,7, 5,6 ou 5,5
Edição: High-availability Edition
Tipo de armazenamento: Premium Local SSDs
NotaEssas informações estão disponíveis na página Basic Information da sua instância.
O download de arquivos de backup físico só é possível para instâncias que atendem aos requisitos acima. Se sua instância for da Basic Edition, consulte as Perguntas frequentes neste tópico.
-
As tabelas da sua instância RDS não podem estar criptografadas com TDE.
ImportanteTabelas criptografadas podem causar erros durante a restauração. Execute uma operação de descriptografia antes de prosseguir.
Verifique o status do TDE na página Data Security > TDE da instância no console do RDS.
Seu usuário RAM precisa ter permissão para baixar arquivos de backup. Para instruções, consulte Authorize a RAM user with read-only permissions to download backup files.
Limitações
A restauração de arquivos de backup físico tem suporte apenas para instâncias que utilizam discos locais. Para restaurar um backup de snapshot em uma instância com disco em nuvem, consulte Restore the data of an ApsaraDB RDS for MySQL instance to a self-managed MySQL instance by using snapshot backup files.
Este processo restaura todos os dados do arquivo de backup. Para restaurar apenas bancos de dados ou tabelas específicas, consulte Restore an RDS MySQL logical backup to a self-managed database.
Atualmente, os arquivos de backup físico do RDS for MySQL só podem ser restaurados em um banco de dados auto-gerenciado no Linux.
No momento, não há suporte para restauração de dados em clusters MySQL Group Replication (MGR).
Impactos
Ao restaurar um backup físico do RDS MySQL em um banco de dados auto-gerenciado que também executa outros services, esses services ficarão indisponíveis.
Este método de restauração grava os dados no diretório de dados de um novo banco de dados e mantém os dados originais do seu banco de dados auto-gerenciado inalterados.
Como funciona
A restauração de um backup físico envolve as seguintes etapas:
Faça um backup físico completo do banco de dados.
Baixe o arquivo de backup físico para um dispositivo local e descompacte-o com a ferramenta
qpress.Use o
Percona XtraBackuppara restaurar os arquivos de backup descompactados no diretório de dados do seu banco de dados auto-gerenciado.Reinicie o banco de dados. Em seguida, visualize os dados originais do RDS MySQL no seu banco de dados auto-gerenciado.
Observações
A url de download do backup tem validade de uma hora. Se a url expirar, atualize a página para obter uma nova.
Não modifique nem exclua o conteúdo do arquivo de backup. Caso contrário, o arquivo pode ser corrompido e tornar-se irrecuperável. Se precisar modificar os dados, restaure o backup em um banco de dados auto-gerenciado primeiro.
Faturamento
Ao criar backups manuais, monitore o uso do armazenamento de backup. O armazenamento que exceder a cota gratuita gera taxas de backup.
-
Se o seu banco de dados auto-gerenciado estiver on-premises, o download dos dados de backup ocorrerá pela Internet. Haverá cobrança de taxas de tráfego de Internet caso o tráfego de download exceda a cota gratuita.
NotaSe o banco de dados auto-gerenciado estiver em uma instância ECS na mesma região e vpc da instância RDS, o download dos dados de backup via endereço interno não gera taxas de tráfego.
Antes de começar
Configuração do ambiente
Ferramentas
Etapa 1: Baixar o arquivo de backup
Acesse a lista de instâncias RDS, selecione uma região e clique em ID da instância desejada.
No painel de navegação à esquerda, clique em Backup and Restoration.
-
Na aba Base Backups > Data backup, localize o backup físico desejado e clique em Download instance backup na coluna Actions.
Se nenhum arquivo de backup físico estiver disponível, crie um backup manual. Para mais informações, consulte Perform a manual backup.
Caso seja redirecionado para a página Advanced Download, sua instância RDS utiliza disco em nuvem. Para restaurar os dados, consulte Restore data from a snapshot backup file of an ApsaraDB RDS for MySQL instance to a self-managed database.
-
Na caixa de diálogo Download instance backup, copie a url interna ou pública conforme necessário.
ImportanteAo usar uma url interna, o download do arquivo de backup só é possível a partir de um servidor na mesma região e vpc. Não é possível baixar o arquivo de um servidor em outra região ou na rede clássica.
O uso de uma url pública para baixar o arquivo de backup gera cobrança de tráfego de internet que exceder a cota gratuita. Para mais detalhes, consulte Billing details.
A url de download do backup vale por uma hora. Se expirar, atualize a página para obter a url mais recente.
Não modifique nem exclua o conteúdo do arquivo de backup. Isso pode corromper o arquivo e torná-lo irrecuperável. Caso precise fazer alterações, restaure os dados no banco de dados auto-gerenciado primeiro.
-
Faça login no servidor Linux que hospeda seu banco de dados MySQL auto-gerenciado e execute o comando abaixo para baixar o backup físico.
wget -c 'https://****.bak.rds.aliyuncs.com/****_xb.qp?****' -O test_xb.qpNotaSubstitua
https://****.bak.rds.aliyuncs.com/****_xb.qp?****no comando acima pelo endereço real de download do backup. Após baixar o arquivo, armazene-o com segurança para evitar vazamento de dados.-
Neste exemplo,
test_xb.qpé usado como nome de arquivo. Você pode definir um nome personalizado, mas a extensão do arquivo deve corresponder à extensão presente na url de download.Atualmente, as urls de download de backups do RDS for MySQL utilizam um destes dois formatos de extensão:
_xb.qpou_qp.xb. Verifique o link de download para identificar qual formato seu arquivo de backup utiliza. O formato de backup físico do RDS for MySQL 5,5 é
tar.gz.
Perguntas frequentes sobre download
Etapa 2: Descompactar o arquivo de backup
Escolha o comando de descompactação adequado com base na extensão do arquivo de backup.
Consulte a seção Pré-requisitos para instalar o Percona XtraBackup e o qpress e, em seguida, execute os comandos abaixo.
Perguntas frequentes sobre descompactação
Etapa 3: Restaurar dados
Antes de restaurar o banco de dados, pare o service do banco de dados auto-gerenciado.
Utilize o comando ps -ef | grep '[m]ysql' para verificar processos mysql e o comando sudo kill -9 <PID> para encerrar o processo.
MySQL 8.0
-
Prepare a restauração.
/u01/xtrabackup80/bin/xtrabackup --defaults-file=/var/mysql_bkdata/backup-my.cnf --prepare --target-dir=/var/mysql_bkdata/Parâmetros:
Parâmetro
Descrição
--defaults-file
Define as opções padrão do MySQL a partir de um arquivo de configuração.
Um arquivo de backup do RDS MySQL contém um arquivo de configuração chamado
backup-my.cnf. Este arquivo está localizado no diretório de descompactação de backup em/var/mysql_bkdata/.--prepare
Comando de preparação da ferramenta XtraBackup.
--target-dir
Diretório de descompactação de backup
/var/mysql_bkdata/. -
Modifique o diretório de dados (datadir) do seu banco de dados auto-gerenciado.
-
Edite o arquivo de configuração do banco de dados.
sudo vim /etc/my.cnfPara encontrar o caminho do arquivo de configuração do banco de dados, consulte Pré-requisitos.
-
Pressione a tecla
ipara entrar no modo de edição e defina o parâmetro datadir como/var/mysql_newdata.datadir = /var/mysql_newdatamysql_newdataé o novo diretório de dados do banco de dados auto-gerenciado, criado na seção Pré-requisitos. -
Conceda permissões no novo diretório de dados.
chown -R mysql:mysql /var/mysql_newdata Pressione a tecla
Escpara sair do modo de edição e insira:wq!para salvar e sair.
-
-
Restaure os dados.
sudo xtrabackup --defaults-file=/etc/my.cnf --copy-back --target-dir=/var/mysql_bkdata/Parâmetros:
Parâmetro
Descrição
--defaults-file
Obtém o caminho de destino para restauração de dados a partir da configuração do diretório de dados (datadir) no arquivo
my.cnfdo banco de dados auto-gerenciado.--copy-back
Comando de restauração da ferramenta XtraBackup.
--target-dir
A ferramenta XtraBackup restaura os dados do diretório de descompactação de backup,
/var/mysql_bkdata/, para o diretório de dados do banco de dados auto-gerenciado.
MySQL 5,7
-
Prepare a restauração.
innobackupex --defaults-file=/var/mysql_bkdata/backup-my.cnf --apply-log /var/mysql_bkdata/Parâmetros:
Parâmetro
Descrição
--defaults-file
Define as opções padrão do MySQL a partir de um arquivo de configuração.
Um arquivo de backup do RDS MySQL contém um arquivo de configuração chamado
backup-my.cnflocalizado no diretório de descompactação de backup:/var/mysql_bkdata/.--apply-log
Comando de preparação da ferramenta XtraBackup.
O comando é seguido pelo diretório de armazenamento dos arquivos de backup, ou seja, o diretório de descompactação de backup
/var/mysql_bkdata/. -
Modifique o arquivo de configuração
my.cnfdo banco de dados auto-gerenciado.-
Edite o arquivo de configuração do banco de dados.
sudo vim /etc/my.cnfPara encontrar o caminho do arquivo de configuração do banco de dados, consulte Pré-requisitos.
-
Pressione a tecla
ipara entrar no modo de edição e altere o parâmetro datadir para/var/mysql_newdata.datadir = /var/mysql_newdatamysql_newdataé o novo diretório de dados do banco de dados auto-gerenciado, criado na seção Pré-requisitos. -
Adicione o seguinte conteúdo ao arquivo
my.cnf.innodb_undo_tablespaces=2 innodb_undo_directory=/var/mysql_newdataImportanteO valor do parâmetro innodb_undo_tablespaces deve corresponder ao valor em
/var/mysql_bkdata/backup-my.cnf. Execute o comandocat /var/mysql_bkdata/backup-my.cnf | grep innodb_undo_tablespacespara consultar o valor. Pressione a tecla
Escpara sair do modo de edição e insira:wq!para salvar e sair.
-
-
Restaure os dados.
sudo innobackupex --defaults-file=/etc/my.cnf --copy-back /var/mysql_bkdata/Parâmetros:
Parâmetro
Descrição
--defaults-file
Obtém o caminho de destino para restauração de dados a partir do arquivo
my.cnfdo banco de dados auto-gerenciado, especificamente da configuração do diretório de dados (datadir).--copy-back
Comando de restauração da ferramenta XtraBackup.
O diretório especificado após este comando é o diretório de descompactação de backup, como
/var/mysql_bkdata/, de onde a ferramenta XtraBackup restaura os dados para o diretório de dados do banco de dados auto-gerenciado.
MySQL 5,6
-
Prepare a restauração.
innobackupex --defaults-file=/var/mysql_bkdata/backup-my.cnf --apply-log /var/mysql_bkdata/Parâmetros:
Parâmetro
Descrição
--defaults-file
Define as opções padrão do MySQL a partir de um arquivo de configuração.
Um arquivo de backup do RDS MySQL inclui um arquivo de configuração chamado
backup-my.cnf. Este arquivo está localizado no diretório de descompactação de backup,/var/mysql_bkdata/.--apply-log
Comando de preparação da ferramenta XtraBackup.
Após este comando, especifique o diretório para armazenar os arquivos de backup: o diretório de descompactação de backup
/var/mysql_bkdata/. -
Modifique o diretório de dados (datadir) do seu banco de dados auto-gerenciado.
-
Edite o arquivo de configuração do banco de dados.
sudo vim /usr/my.cnfPara encontrar o caminho do arquivo de configuração do banco de dados, consulte Pré-requisitos.
-
Pressione a tecla
ipara entrar no modo de edição e adicione o parâmetro datadir.datadir = /var/mysql_newdatamysql_newdataé o novo diretório de dados do banco de dados auto-gerenciado, criado em Pré-requisitos. Pressione a tecla
Escpara sair do modo de edição e insira:wq!para salvar e sair.
-
-
Restaure os dados.
sudo innobackupex --defaults-file=/usr/my.cnf --copy-back /var/mysql_bkdata/Parâmetros:
Parâmetro
Descrição
--defaults-file
No arquivo
my.cnfdo banco de dados auto-gerenciado, obtém o caminho de destino para restauração de dados a partir do parâmetro diretório de dados (datadir).--copy-back
Comando de restauração da ferramenta XtraBackup.
Este comando especifica o diretório que contém os arquivos de backup, que é o diretório de descompactação de backup
/var/mysql_bkdata/. A ferramenta XtraBackup restaura os dados deste diretório para o diretório de dados do banco de dados auto-gerenciado.
MySQL 5,5
-
Prepare a restauração.
innobackupex --defaults-file=/var/mysql_bkdata/backup-my.cnf --apply-log /var/mysql_bkdata/Parâmetros:
Parâmetro
Descrição
--defaults-file
Define as opções padrão do MySQL a partir de um arquivo de configuração.
Um arquivo de backup do RDS MySQL contém um arquivo de configuração chamado
backup-my.cnf. Este arquivo está localizado no diretório de descompactação de backup, que é/var/mysql_bkdata/.--apply-log
Comando de preparação da ferramenta XtraBackup.
O comando é seguido pelo diretório para armazenamento dos arquivos de backup, ou seja, o diretório de descompactação de backup
/var/mysql_bkdata/. -
Modifique o arquivo de configuração
my.cnfdo banco de dados auto-gerenciado.-
Edite o arquivo de configuração do banco de dados.
sudo vim /etc/my.cnfPara encontrar o caminho do arquivo de configuração do banco de dados, consulte Pré-requisitos.
-
Pressione a tecla
ipara entrar no modo de edição e adicione o parâmetro datadir.datadir = /var/mysql_newdatamysql_newdataé o novo diretório de dados do banco de dados auto-gerenciado, criado na seção Pré-requisitos. -
Adicione o seguinte conteúdo ao arquivo
my.cnf.innodb_log_file_size=1048576000ImportanteO valor do parâmetro innodb_log_file_size deve ser igual ao valor em
/var/mysql_bkdata/backup-my.cnf. Utilize o comandocat /var/mysql_bkdata/backup-my.cnf | grep innodb_log_file_sizepara consultar o valor. Pressione a tecla
Escpara sair do modo de edição e insira:wq!para salvar e sair.
-
-
Restaure os dados.
sudo innobackupex --defaults-file=/etc/my.cnf --copy-back /var/mysql_bkdata/Parâmetros:
Parâmetro
Descrição
--defaults-file
Obtém o caminho de destino para restauração de dados a partir da configuração do diretório de dados (datadir) no arquivo
my.cnfdo seu banco de dados auto-gerenciado.--copy-back
Comando de restauração da ferramenta XtraBackup.
Após este comando, especifique o diretório de descompactação de backup, como
/var/mysql_bkdata/, de onde a ferramenta XtraBackup restaura os dados para o diretório de dados do banco de dados auto-gerenciado. -
(Opcional) No console do RDS for MySQL, visualize os parâmetros da instância para verificar o valor de lower_case_table_names. Se o valor for
1, modifique o arquivo de configuraçãomy.cnfdo banco de dados auto-gerenciado.-
Edite o arquivo de configuração do banco de dados.
sudo vim /etc/my.cnfPara encontrar o caminho do arquivo de configuração do banco de dados, consulte Pré-requisitos.
-
Pressione
ipara entrar no modo de edição e adicione o seguinte conteúdo.lower_case_table_names=1 Pressione a tecla
Escpara sair do modo de edição e insira:wq!para salvar e sair.
-
-
Conceda permissões no diretório de dados.
sudo chown -R mysql:mysql /var/mysql_newdata -
Execute o comando abaixo para iniciar o processo do MySQL.
sudo mysqld --defaults-file=/etc/my.cnf --user=mysql --datadir=/var/mysql_newdata &Parâmetros:
Parâmetro
Descrição
--defaults-file
Caminho do arquivo de configuração do banco de dados auto-gerenciado. Este tópico usa
/etc/my.cnfcomo exemplo. Consulte Pré-requisitos para confirmar o caminho do arquivo de configuração do banco de dados.--user
Usuário que inicia o banco de dados. O valor é fixo como mysql.
--datadir
O diretório de dados utilizado pelo banco de dados é
/var/mysql_newdataneste exemplo. Consulte Pré-requisitos para determinar o diretório de dados do seu banco de dados. -
(Opcional) No console do ApsaraDB RDS for MySQL, visualize os parâmetros da instância para verificar o valor de lower_case_table_names. Se o valor for
1, modifique o arquivo de configuraçãomy.cnfdo banco de dados auto-gerenciado.-
Edite o arquivo de configuração do banco de dados.
sudo vim /usr/my.cnfPara encontrar o caminho do arquivo de configuração do banco de dados, consulte Pré-requisitos.
-
Pressione
ipara entrar no modo de edição e adicione o seguinte conteúdo.lower_case_table_names=1 Pressione a tecla
Escpara sair do modo de edição e insira:wq!para salvar e sair.
-
-
Conceda permissões no diretório de dados.
sudo chown -R mysql:mysql /var/mysql_newdata -
Execute o comando abaixo para iniciar o processo do MySQL.
sudo mysqld --defaults-file=/usr/my.cnf --user=mysql --datadir=/var/mysql_newdata &Parâmetro
Descrição
--defaults-file
Caminho do arquivo de configuração do banco de dados auto-gerenciado. Este tópico usa
/usr/my.cnfcomo exemplo. Consulte Pré-requisitos para confirmar o caminho.--user
Usuário que inicia o banco de dados. O valor é fixo como mysql.
--datadir
O diretório de dados usado para iniciar o banco de dados. Este tópico usa
/var/mysql_newdatacomo exemplo. Consulte Pré-requisitos para determinar o diretório de dados do banco de dados. -
Conceda permissões no diretório de dados.
sudo chown -R mysql:mysql /var/mysql_newdata -
Execute o comando abaixo para iniciar o processo do MySQL.
sudo mysqld --defaults-file=/etc/my.cnf --user=mysql --datadir=/var/mysql_newdata &Parâmetro
Descrição
--defaults-file
Caminho do arquivo de configuração do banco de dados auto-gerenciado. Este tópico usa
/etc/my.cnfcomo exemplo. Para confirmar o caminho do seu banco de dados, consulte Pré-requisitos.--user
Usuário que inicia o banco de dados. O valor é fixo como mysql.
--datadir
O diretório de dados é usado para iniciar o banco de dados. Este tópico usa
/var/mysql_newdatacomo exemplo. Consulte Pré-requisitos para confirmar o diretório de dados do seu banco de dados. -
Execute o comando abaixo para fazer login no banco de dados MySQL e verificar se o processo foi iniciado com sucesso.
mysql -u -pNotaEste comando de login serve para verificar se a restauração foi bem-sucedida. Se precisar apenas visualizar dados de tabelas, certifique-se de que a conta tenha permissões de consulta.
Caso tenha esquecido sua conta ou senha, passe o parâmetro
--skip-grant-tablesao executar o comando para iniciar o processo do MySQL. Após a inicialização, o processo ignora a verificação de permissões e permite o login no banco de dados sem conta ou senha. Depois de fazer login com sucesso, redefina sua conta e senha.
-
Execute o comando abaixo para verificar se os bancos de dados da instância ApsaraDB RDS for MySQL existem.
SHOW DATABASES; Para restaurar todos os dados ou bancos de dados e tabelas específicos de uma instância RDS for MySQL para outra instância RDS, consulte Restore full data ou Restore databases and tables.
Para mais métodos de restauração de dados, consulte Overview of data restoration methods.