Amazon RDS - Importação de dados MariaDB
O Amazon RDS MariaDB oferece maneiras fáceis de importar dados para o banco de dados e exportar dados do banco de dados. Depois que formos capazes de nos conectar com sucesso ao banco de dados MariaDB, podemos usar as ferramentas CLI para executar os comandos de importação e exportação para obter os dados de outras fontes dentro e fora do banco de dados RDS.
Abaixo estão os cenários a serem considerados ao decidir sobre a abordagem para importar os dados para o banco de dados Amazon RDS-MariaDB.
Um MariaDB existente pode estar presente no local ou em outra instância do EC2. Diagramaticamente, o que fazemos é mostrado abaixo.
Criação de um backup do banco de dados local
Como primeira etapa, criamos um backup do banco de dados local usando o comando abaixo. MariaDB sendo um clone do MySQL, pode usar quase todos os mesmos comandos do MySQL.
# mysqldump -u user -p[user_password] [database_name] > backupfile.sql
Um arquivo com o nome backupfile.sql é cerated que contém a estrutura da tabela junto com os dados a serem usados.
Armazenando o arquivo de backup em S3.
Faça upload do arquivo de backup criado acima para um bucket do Amazon S3 pré-decidido na mesma região onde o banco de dados RDS MariaDB de destino está presente. Você pode seguir este link para saber como fazer upload.
Importar dados do Amazon S3 para o banco de dados RDS- MariaDB
Você pode usar o seguinte comando Amazon CLI para importar os dados de S3 para MariaDB DB.
aws rds restore-db-instance-from-s3 \
--allocated-storage 125 \
--db-instance-identifier tddbidentifier \
--db-instance-class db.m4.small \
--engine mysql \
--master-user-name masterawsuser \
--master-user-password masteruserpassword \
--s3-bucket-name tpbucket \
--s3-ingestion-role-arn arn:aws:iam::account-number:role/rolename \
--s3-prefix bucketprefix \
--source-engine mysql \
--source-engine-version 5.6.27
De outra instância RDS- MariaDB
Pode haver cenários em que você deseja que os dados de um banco de dados RDS MariaDB existente sejam levados para outro RDS MariaDB. Por exemplo, para cerate um banco de dados de recuperação de desastre ou criar um banco de dados somente para relatórios de negócios, etc. Nesse cenário, criamos réplicas de leitura que são uma cópia de seu banco de dados de origem e, em seguida, promovemos essa réplica de leitura para uma nova instância de banco de dados. Eles são usados para evitar leituras pesadas diretas do banco de dados de origem original quando desejamos copiar os dados.
criar uma réplica de leitura
aws rds create-db-instance-read-replica \
--db-instance-identifier myreadreplica \
--source-db-instance-identifier mydbinstance
Promova uma réplica de leitura para uma instância de banco de dados
Agora, como temos a réplica, podemos promovê-la a uma instância de banco de dados independente. Isso atenderá a nossa necessidade final de importar dados de o RDS - MariaDB DB para um novo. O comando a seguir é usado para concluir a promoção de uma réplica de leitura para uma instância de banco de dados.
aws rds create-db-instance-read-replica \
--db-instance-identifier readreplica_name \
--region target_region_name
--db-subnet-group-name subnet_name
--source-db-instance-identifier arn:aws:rds:region_name:11323467889012:db:mysql_instance1
De qualquer banco de dados
Para importar dados de qualquer outro banco de dados para o Amazon RDS - MariaDB, temos que usar o Amazon Data Migration Service, também chamado de Amazon DMS. Ele usa a ferramenta de conversão de esquema para traduzir a base de dados existente para uma plataforma MYSQL. O diagrama abaixo explica o processo geral. Também funciona com o princípio de replicação semelhante ao descrito na seção anterior.
A exportação de dados do Amazon RDS Mysql DB é um processo direto em que funciona com o mesmo princípio de replicação que vimos acima. Seguem abaixo as etapas para realizar o processo de exportação.
- Inicie a instância do MariaDB em execução externa ao Amazon RDS.
- Designe a instância do MariaDB DB para ser a fonte de replicação.
- Use mysqldump para transferir o banco de dados da instância do Amazon RDS para a instância externa ao Amazon RDS.
Abaixo está o código para o comando mysqldump para transferir os dados
mysqldump -h RDS instance endpoint \
-u user \
-p password \
--port=3306 \
--single-transaction \
--routines \
--triggers \
--databases database database2 \
--compress \
--compact | mysql \
-h MariaDB host \
-u master user \
-p password \
--port 3306