Importar dados de um banco de dados do MySQL ou do MariaDB para uma instância de banco de dados do RDS para MariaDB ou do RDS para MySQL. - Amazon Relational Database Service

Importar dados de um banco de dados do MySQL ou do MariaDB para uma instância de banco de dados do RDS para MariaDB ou do RDS para MySQL.

Você também pode importar dados de um banco de dados MariaDB ou MySQL existente para uma instância de banco de dados MySQL ou MariaDB. Faça isso copiando o banco de dados com mysqldump e conectando-o diretamente à instância de banco de dados MariaDB ou MySQL. O utilitário de linha de comando mysqldump é comumente usado para fazer backups e transferir dados de um servidor MariaDB ou MySQL para outro. Ele está incluído no software cliente MySQL e MariaDB.

nota

Se você estiver importando ou exportando grandes volumes de dados com uma instância de banco de dados do MySQL, será mais confiável e mais rápido mover dados para dentro e para fora do Amazon RDS usando arquivos de backup xtrabackup e o Amazon S3. Para obter mais informações, consulteRestaurar um backup em uma instância de banco de dados do Amazon RDS para MySQL

Um comando mysqldump típico para mover dados de um banco de dados externo para uma instância de banco de dados Amazon RDS é semelhante ao seguinte:

mysqldump -u local_user \ --databases database_name \ --single-transaction \ --compress \ --order-by-primary \ -plocal_password | mysql -u RDS_user \ --port=port_number \ --host=host_name \ -pRDS_password
Importante

Não deixe um espaço entre a opção -p e a senha inserida.

Especifique credenciais diferentes dos prompts mostrados aqui como prática recomendada de segurança.

Analise as seguintes recomendações e considerações:

  • Exclua os seguintes esquemas do arquivo de despejo: sys, performance_schema e information_schema. O utilitário mysqldump exclui esses esquemas por padrão.

  • Para migrar usuários e privilégios, considere o uso de uma ferramenta que gera a linguagem de controle de dados (DCL) para recriá-los, como o utilitário pt-show-grants.

  • Para realizar a importação, verifique se o usuário que está fazendo isso tem acesso à instância de banco de dados. Para obter mais informações, consulteControlar acesso com grupos de segurança

Os parâmetros utilizados são os seguintes:

  • -u local_user – use para especificar um nome do usuário. No primeiro uso deste parâmetro, você especifica o nome de uma conta de usuário no banco de dados local MariaDB ou MySQL identificado pelo parâmetro --databases.

  • --databases database_name: use para especificar o nome do banco de dados na instância do MySQL ou MariaDB local que você deseja importar para o Amazon RDS.

  • --single-transaction – use para garantir que todos os dados carregados do banco de dados local sejam consistentes com um único ponto no tempo. Se houver outros processos alterando os dados enquanto eles são lidos por mysqldump, usar esse parâmetro ajudará a manter a integridade dos dados.

  • --compress – use para reduzir o consumo de largura de banda da rede, compactando os dados do banco de dados local antes de os enviar para o Amazon RDS.

  • --order-by-primary – use para reduzir o tempo de carregamento, ordenando os dados de cada tabela de acordo com a chave primária.

  • -plocal_password – use para especificar uma senha. Na primeira utilização desse parâmetro, você especifica a senha da conta de usuário identificada pelo primeiro parâmetro -u.

  • -u RDS_user – use para especificar um nome do usuário. Na segunda utilização desse parâmetro, você especifica o nome de uma conta de usuário no banco de dados padrão para a instância de banco de dados MariaDB ou MySQL identificada pelo parâmetro --host.

  • --port port_number: use para especificar a porta da sua instância de banco de dados MariaDB ou MySQL. Por padrão, essa porta é 3306, a menos que você tenha alterado o valor ao criar a instância.

  • --host host_name: use para especificar o nome do Sistema de Nome de Domínio (DNS) do endpoint da instância de banco de dados Amazon RDS, por exemplo, myinstance.123456789012.us-east-1.rds.amazonaws.com. Você pode encontrar o valor do endpoint nos detalhes da instância no Console de gerenciamento do Amazon RDS.

  • -pRDS_password – use para especificar uma senha. Na segunda utilização desse parâmetro, você especifica a senha da conta de usuário identificada pelo segundo parâmetro -u.

Certifique-se de criar procedimentos armazenados, acionadores, funções ou eventos manualmente no seu banco de dados Amazon RDS. Se algum desses objetos estiver no banco de dados que você está copiando, exclua-os quando executar mysqldump. Para fazer isso, inclua estes parâmetros em seu comando mysqldump: --routines=0 --triggers=0 --events=0.

O exemplo a seguir copia o banco de dados de exemplo world no host local para uma instância de banco de dados MySQL.

Para Linux, macOS ou Unix:

sudo mysqldump -u localuser \ --databases world \ --single-transaction \ --compress \ --order-by-primary \ --routines=0 \ --triggers=0 \ --events=0 \ -plocalpassword | mysql -u rdsuser \ --port=3306 \ --host=myinstance.123456789012.us-east-1.rds.amazonaws.com \ -prdspassword

Para o Windows, execute o seguinte comando em um prompt de comando que foi aberto clicando com o botão direito do mouse em Prompt de comando no menu de programas do Windows e escolhendo Executar como administrador:

mysqldump -u localuser ^ --databases world ^ --single-transaction ^ --compress ^ --order-by-primary ^ --routines=0 ^ --triggers=0 ^ --events=0 ^ -plocalpassword | mysql -u rdsuser ^ --port=3306 ^ --host=myinstance.123456789012.us-east-1.rds.amazonaws.com ^ -prdspassword
nota

Especifique credenciais diferentes dos prompts mostrados aqui como prática recomendada de segurança.