

# Importar dados para uma instância de banco de dados do Amazon RDS para MariaDB com tempo de inatividade reduzido
<a name="mariadb-importing-data-reduced-downtime"></a>

Em alguns casos, você pode precisar importar dados de um banco de dados MariaDB externo que aceite uma aplicação dinâmica para uma instância de banco de dados RDs para MariaDB. Use o procedimento a seguir para minimizar o impacto sobre a disponibilidade das aplicações. Este procedimento também pode ser útil se você está trabalhando com um banco de dados muito grande. Usando esse procedimento, você pode reduzir o custo da importação ao diminuir a quantidade de dados transmitidos pela rede para a AWS. 

Neste procedimento, você transfere uma cópia dos dados do banco de dados para uma instância do Amazon EC2 e importa os dados em um novo banco de dados do Amazon RDS. Depois, use a replicação para atualizar o banco de dados do Amazon RDS em relação à instância externa dinâmica, antes de redirecionar sua aplicação ao banco de dados do Amazon RDS. Se a instância externa for do MariaDB 10.0.24 ou posterior e a instância de destino for do RDS para MariaDB, configure a replicação do MariaDB com base em identificadores de transação global (GTIDs). Caso contrário, configure a replicação com base nas coordenadas do log binário. Recomendamos a replicação baseada em GTID caso o banco de dados externo comporte esse tipo de replicação, já que é um método mais confiável. Para obter mais informações, consulte [Global Transaction ID](http://mariadb.com/kb/en/mariadb/global-transaction-id/) na documentação do MariaDB.

O diagrama a seguir mostra como importar um banco de dados MariaDB externo para um banco de dados MariaDB no Amazon RDS.

![\[Fluxo de trabalho que mostra como importar um banco de dados MariaDB externo para um banco de dados MariaDB no Amazon RDS.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/MigrateMariaDBToRDS_1.png)


## Tarefa 1: criar uma cópia do banco de dados existente
<a name="mariadb-importing-data-reduced-downtime-copy-database"></a>

A primeira etapa do processo de migração de um grande volume de dados para um banco de dados RDS para MariaDB com o mínimo de tempo de inatividade é criar uma cópia dos dados de origem. 

O diagrama a seguir mostra como criar um backup do banco de dados MariaDB.

![\[Fluxo de trabalho que mostra como criar um backup do banco de dados MariaDB.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/MigrateMariaDBToRDS_2.png)


Você pode usar o utilitário `mysqldump` ou `mariadb-dump` para criar um backup de banco de dados no formato SQL ou de texto delimitado. No MariaDB 10.5, o cliente é chamado de [mariadb-dump](https://mariadb.com/kb/en/mariadb-dump/). A partir do MariaDB 11.0.1, você deve usar `mariadb-dump` em vez de `mysqldump`. Recomendamos que você faça uma execução de teste com cada formato em um ambiente que não seja de produção para ver qual método minimiza o tempo de execução de `mysqldump` ou `mariadb-dump`.

Recomendamos também que você pondere a performance de `mysqldump` ou `mariadb-dump` em relação ao benefício oferecido usando o formato de texto delimitado para o carregamento. Um backup usando o formato de texto delimitado cria um arquivo de texto separado por tabulação para cada tabela que está sendo despejada. Você pode carregar esses arquivos em paralelo usando o comando `LOAD DATA LOCAL INFILE` para reduzir a quantidade de tempo necessária para importar seu banco de dados. Para acessar mais informações, consulte [Etapa 5: Carregar os dados](mariadb-importing-data-any-source.md#mariadb-importing-data-any-source-load-data) no procedimento Importar dados de qualquer origem.

Antes de iniciar a operação de backup, defina as opções de replicação no banco de dados MariaDB que está copiando para o Amazon RDS. As opções de replicação incluem ativar o registro em log binário e definir um ID de servidor exclusivo. Configurar essas opções faz com que seu servidor comece a registrar em log transações de banco de dados e o prepara para ser um uma instância de replicação de origem mais adiante nesse processo.

Analise as seguintes recomendações e considerações:
+ Use a opção `--single-transaction` com `mysqldump` ou `mariadb-dump` porque ela despeja um estado consistente do banco de dados. Para garantir um arquivo de despejo válido, não execute instruções DDL enquanto `mysqldump` ou `mariadb-dump` estiver em execução. É possível programar uma janela de manutenção para essas operações.
+ Exclua os seguintes esquemas do arquivo de despejo: 
  + `sys`
  + `performance_schema`
  + `information_schema`

  Os utilitários `mysqldump` e `mariadb-dump` excluem 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](https://www.percona.com/doc/percona-toolkit/LATEST/pt-show-grants.html).

### Como definir opções de replicação
<a name="mariadb-importing-data-reduced-downtime-set-replication-options"></a>

1. Edite o arquivo `my.cnf`. Esse arquivo geralmente está localizado em `/etc`.

   ```
   sudo vi /etc/my.cnf
   ```

   Adicione as opções `log_bin` e `server_id` à seção `[mysqld]`. A opção `log_bin` fornece um identificador de nome de arquivo para arquivos de log binário. A opção `server_id` fornece um identificador exclusivo para o servidor em relações entre origem e réplica.

   O seguinte exemplo mostra a seção `[mariadb]` atualizada de um arquivo `my.cnf`:

   ```
   [mariadb]
   log-bin
   server-id=1 
   log-basename=master1
   binlog-format=mixed
   ```

   Para acessar mais informações, consulte [Setting the Replication Source Configuration](https://mariadb.com/docs/server/ha-and-performance/standard-replication/setting-up-replication) na documentação do MariaDB.

1. Para a replicação com um cluster de banco de dados multi-AZ, habilite `gtid_strict_mode`. Para acessar mais informações, consulte [gtid\$1strict\$1mode](https://mariadb.com/docs/server/ha-and-performance/standard-replication/gtid#gtid_strict_mode) na documentação do MariaDB.

   A ativação de `gtid_strict_mode` não é necessária para a replicação com uma instância de banco de dados.

1. Reinicie o serviço `mariadb`.

   ```
   sudo service mariadb restart
   ```

### Como criar uma cópia de backup do banco de dados existente
<a name="mariadb-importing-data-reduced-downtime-create-backup"></a>

1. Crie um backup dos dados por meio do utilitário `mysqldump` ou `mariadb-dump`, especificando o formato SQL ou de texto delimitado.

   Para melhorar a performance e garantir a integridade dos dados, use as opções `--order-by-primary` e `--single-transaction` para `mysqldump` e `mariadb-dump`.

   Para evitar a inclusão do banco de dados do sistema MySQL no backup, não use a opção `--all-databases` com `mysqldump` ou `mariadb-dump`. Para ter mais informações, consulte [Creating a Data Snapshot Using mysqldump](https://dev.mysql.com/doc/mysql-replication-excerpt/8.0/en/replication-howto-mysqldump.html) na documentação do MySQL.

   Use `chmod`, se necessário, para garantir que o diretório no qual o arquivo de backup está sendo criado seja gravável.
**Importante**  
No Windows, execute a janela de comando como um administrador.
   + Para produzir a saída SQL, use o comando a seguir. Para o MariaDB 10.11 e versões posteriores, substitua `mariadb-dump` por `mysqldump`.

     Para Linux, macOS ou Unix:

     ```
     sudo mariadb-dump \
         --databases database_name \
         --master-data=2  \
         --single-transaction \
         --order-by-primary \
         -r backup.sql \
         -u local_user \
         -ppassword
     ```
**nota**  
Faz parte das práticas recomendadas de segurança especificar credenciais diferentes dos prompts mostrados no exemplo.

     Para Windows:

     ```
     mariadb-dump ^
         --databases database_name ^
         --master-data=2  ^
         --single-transaction ^
         --order-by-primary ^
         -r backup.sql ^
         -u local_user ^
         -ppassword
     ```
**nota**  
Faz parte das práticas recomendadas de segurança especificar credenciais diferentes dos prompts mostrados no exemplo.
   + Para produzir uma saída de texto delimitado, use o comando a seguir. Para o MariaDB 11.01 e versões posteriores, substitua `mysqldump` por `mariadb-dump`.

     Para Linux, macOS ou Unix:

     ```
     sudo mysqldump \
         --tab=target_directory \
         --fields-terminated-by ',' \
         --fields-enclosed-by '"' \
         --lines-terminated-by 0x0d0a \
         database_name \
         --master-data=2 \
         --single-transaction \
         --order-by-primary \
         -ppassword
     ```

     Para Windows:

     ```
     mysqldump ^
         --tab=target_directory ^
         --fields-terminated-by "," ^
         --fields-enclosed-by """ ^
         --lines-terminated-by 0x0d0a ^
         database_name ^
         --master-data=2 ^
         --single-transaction ^
         --order-by-primary ^
         -ppassword
     ```
**nota**  
Faz parte das práticas recomendadas de segurança especificar credenciais diferentes dos prompts mostrados no exemplo.  
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` ou `mariadb-dump`. Para fazer isso, inclua estes argumentos com o comando `mysqldump` ou `mariadb-dump`:   
`--routines=0`
`--triggers=0`
`--events=0`

     Quando você executa `mysqldump` e especifica o formato de texto delimitado, um comentário `CHANGE MASTER TO` é exibido. Esse comentário contém o nome e a posição do arquivo de log mestre. Se a instância externa for o MariaDB 10.0.2e ou posterior, observe os valores para `MASTER_LOG_FILE` e `MASTER_LOG_POS`. Esses valores são necessários ao configurar a replicação.

     A seguinte saída é exibida para versões do MariaDB.

     ```
     -- Position to start replication or point-in-time recovery from
     --
     -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;
     ```

1. Se a versão da instância externa que você está usando for MariaDB 10.0.24 ou posterior, use a replicação baseada em GTID. Execute `SHOW MASTER STATUS` na instância externa do MariaDB para obter o nome e a posição do arquivo de log binário. Em seguida, converta-o em um GTID executando `BINLOG_GTID_POS` na instância externa do MariaDB.

   ```
   SELECT BINLOG_GTID_POS('binary_log_file_name', binary_log_file_position);
   ```

   Anote o GTID retornado. Você precisará dele para configurar a replicação.

1. Compacte os dados copiados para reduzir a quantidade de recursos de rede necessários para copiar seus dados para o banco de dados do Amazon RDS. Anote o tamanho do arquivo de backup. Você precisará dessas informações ao determinar o tamanho de uma instância do Amazon EC2 a ser criada. Quando terminar, compacte o arquivo de backup usando o GZIP ou seu utilitário de compactação preferido. 
   + Para compactar a saída SQL, use o seguinte comando:

     ```
     gzip backup.sql
     ```
   + Para compactar a saída de texto delimitado, use o seguinte comando:

     ```
     tar -zcvf backup.tar.gz target_directory
     ```

## Tarefa 2: criar uma instância do Amazon EC2 e copiar o banco de dados compactado
<a name="mariadb-importing-data-reduced-downtime-create-ec2-copy-database"></a>

Copiar seu arquivo de backup de banco de dados compactado para uma instância do Amazon EC2 requer menos recursos de rede do que fazer uma cópia direta de dados não compactados entre instâncias de bancos de dados. Depois que seus dados estiverem no Amazon EC2, você poderá copiá-los de lá diretamente para o banco de dados MariaDB. Para reduzir o custo dos recursos de rede, a instância do Amazon EC2 deve estar na mesma Região da AWS que a instância de banco de dados do Amazon RDS. Ter a instância do Amazon EC2 na mesma Região da AWS que o banco de dados do Amazon RDS também reduz a latência da rede durante a importação.

O diagrama a seguir mostra como copiar o backup do banco de dados para uma instância do Amazon EC2.

![\[Fluxo de trabalho que mostra como copiar o backup do banco de dados para uma instância do EC2.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/MigrateMariaDBToRDS_3.png)


### Como criar uma instância do Amazon EC2 e copiar seus dados
<a name="mariadb-importing-data-reduced-downtime-create-ec2"></a>

1. Na Região da AWS em que você planeja criar o banco de dados do Amazon RDS, crie uma nuvem privada virtual (VPC), um grupo de segurança de VPC e uma sub-rede de VPC. Certifique-se de que as regras de entrada para o grupo de segurança da VPC permitam os endereços IP necessários para a aplicação se conectar ao AWS. Você pode especificar uma variedade de endereços IP (por exemplo, `203.0.113.0/24`) ou outro grupo de segurança de VPC. É possível usar o [console da Amazon VPC](https://console.aws.amazon.com/vpc) para criar e gerenciar VPCs, sub-redes e grupos de segurança. Para ter mais informações, consulte [Conceitos básicos da Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html#getting-started) no *Manual do usuário da Amazon Virtual Private Cloud*.

1. Abra o [console do Amazon EC2](https://console.aws.amazon.com/ec2) e escolha a Região da AWS para conter tanto a instância do Amazon EC2 como o banco de dados do Amazon RDS. Inicie uma instância do Amazon EC2 usando a VPC, a sub-rede e o grupo de segurança que você criou na Etapa 1. Certifique-se de selecionar um tipo de instância com armazenamento suficiente para o arquivo de backup de banco de dados quando ele não estiver compactado. Para ter detalhes sobre instâncias do Amazon EC2, consulte [Comece a usar o Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) no *Guia do usuário do Amazon Elastic Compute Cloud*.

1.  Para se conectar ao banco de dados do Amazon RDS pela sua instância do Amazon EC2, edite seu grupo de segurança da VPC. Adicione uma regra de entrada especificando o endereço IP privado da sua instância do EC2. Você pode encontrar o endereço IP privado na guia **Details (Detalhes)** do painel **Instance (Instância)** na janela do console do EC2. Para editar o grupo de segurança de VPC e adicionar uma regra de entrada, escolha **Security Groups (Grupos de segurança)** no painel de navegação do console do EC2, escolha o grupo de segurança e, em seguida, adicione uma regra de entrada para MySQL ouAurora especificando o endereço IP privado da sua instância do EC2. Para saber como adicionar uma regra de entrada a um grupo de segurança de VPC, consulte [Regras de grupos de segurança](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html) no *Manual do usuário da Amazon Virtual Private Cloud*.

1. Copie o arquivo de backup de banco de dados compactado do seu sistema local para a sua instância do Amazon EC2. Use `chmod`, se necessário, para garantir que você tenha permissão de gravação para o diretório de destino da instância do Amazon EC2. Você pode usar `scp` ou um cliente Secure Shell (SSH) para copiar o arquivo. O seguinte comando é um exemplo de comando `scp`:

   ```
   scp -r -i key pair.pem backup.sql.gz ec2-user@EC2 DNS:/target_directory/backup.sql.gz
   ```
**Importante**  
Ao copiar dados sensíveis, use um protocolo de transferência de rede segura.

1. Conecte-se à sua instância do Amazon EC2 e instale as atualizações e as ferramentas do cliente MariaDB mais recentes usando os seguintes comandos:

   ```
   sudo yum update -y
   sudo yum install mariadb1011-client-utils -y
   ```

   Para acessar mais informações, consulte [Conectar-se à instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-connect-to-instance-linux) para instâncias do Linux no *Guia do usuário do Amazon Elastic Compute Cloud* e [MariaDB Connectors](https://mariadb.com/docs/connectors) na documentação do MariaDB. 

1. Enquanto estiver conectado à sua instância do Amazon EC2, descompacte o arquivo de backup do banco de dados. Os comandos a seguir são exemplos.
   + Para descompactar a saída SQL, use o seguinte comando:

     ```
     gzip backup.sql.gz -d
     ```
   + Para descomprimir a saída de texto delimitada, use o seguinte comando:

     ```
     tar xzvf backup.tar.gz
     ```

## Tarefa 3: criar um banco de dados MariaDB e importar os dados da instância do Amazon EC2
<a name="mariadb-importing-data-reduced-downtime-create-database-import-data"></a>

Ao criar uma instância de banco de dados do RDS para MariaDB na mesma Região da AWS que a sua instância do Amazon EC2, você pode importar o arquivo de backup do banco de dados do Amazon EC2 mais rápido do que ao importá-lo pela Internet.

O diagrama a seguir mostra como importar o backup de uma instância do Amazon EC2 para um banco de dados MariaDB.

![\[Fluxo de trabalho que mostra como importar o backup da instância do EC2 para o banco de dados MariaDB.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/MigrateMariaDBToRDS_4.png)


### Como criar um banco de dados MariaDB e importar seus dados
<a name="mariadb-importing-data-reduced-downtime-create-database"></a>

1. Determine qual classe de instância de banco de dados e que quantidade de espaço de armazenamento são necessários para atender à workload esperada para esse banco de dados do Amazon RDS. Como parte desse processo, decida sobre o espaço suficiente e a capacidade de processamento para os seus procedimentos de carregamento de dados. Além disso, decida o que é necessário para lidar com a workload de produção. Você pode estimar isso com base no tamanho e nos recursos do banco de dados MariaDB de origem. Para obter mais informações, consulte [Classes de instâncias de banco de dados do ](Concepts.DBInstanceClass.md).

1. Crie uma instância de banco de dados no Região da AWS que contenha a instância do Amazon EC2. Siga as instruções em [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md) use as seguintes diretrizes:
   + Especifique uma versão do mecanismo de banco de dados que seja compatível com a sua instância de banco de dados de origem. 
   + Especifique a mesma nuvem privada virtual (VPC) e o grupo de segurança da VPC para sua instância do Amazon EC2. Essa abordagem garante que sua instância do Amazon EC2 e sua instância do Amazon RDS sejam visíveis uma para a outra na rede. Verifique se sua instância de banco de dados pode ser acessada publicamente. Para configurar a replicação com o banco de dados de origem, conforme descrito em uma seção mais adiante, a instância de banco de dados deve ser acessível ao público.
   + Não configure várias zonas de disponibilidade, retenção de backup nem réplicas de leitura até depois de ter importado o backup do banco de dados. Quando a importação estiver concluída, você poderá configurar o recurso multi-AZ e a retenção de backup para a instância de produção.

1. Reveja as opções de configuração padrão para o banco de dados do Amazon RDS. Se o grupo de parâmetros padrão para o banco de dados não tiver as opções de configuração desejadas, encontre outro que as inclua ou crie um grupo de parâmetros. Para ter mais informações sobre como criar um grupo de parâmetros, consulte [Grupos de parâmetros para Amazon RDS](USER_WorkingWithParamGroups.md). 

1. Conecte-se ao novo banco de dados do Amazon RDS como usuário principal. Crie os usuários necessários para dar suporte aos administradores, aplicações e serviços que precisam acessar a instância de banco de dados. O nome do host para o banco de dados do Amazon RDS é o valor do **endpoint** dessa instância, de banco de dados sem o número da porta; por exemplo, `mysampledb.123456789012.us-west-2.rds.amazonaws.com`. Você pode encontrar o valor do endpoint nos detalhes do banco de dados no console do Amazon RDS.

1. Conecte-se à sua instância Amazon EC2. Para ter mais informações, consulte [Conectar-se à instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-connect-to-instance-linux) no *Guia do usuário do Amazon Elastic Compute Cloud para Linux*. 

1. Conecte-se ao seu banco de dados do Amazon RDS como um host remoto pela sua instância do Amazon EC2 usando o comando `mysql`. O seguinte comando é um exemplo:

   ```
   mysql -h host_name -P 3306 -u db_master_user -p
   ```

   O *host\$1name* é o endpoint do banco de dados do Amazon RDS.

1. No prompt `mysql`, execute o comando `source` e passe a ele o nome do arquivo de despejo do banco de dados. Esse comando carrega os dados na instância de banco de dados do Amazon RDS.
   + Para o formato SQL, use o seguinte comando: 

     ```
     MariaDB [(none)]> source backup.sql;
     ```
   + Para o formato de texto delimitado, primeiro crie o banco de dados, se ele não for o banco de dados padrão que você criou ao configurar o banco de dados do Amazon RDS. 

     ```
     MariaDB [(none)]> create database database_name;
     MariaDB [(none)]> use database_name;
     ```

     Em seguida, crie as tabelas.

     ```
     MariaDB [(none)]> source table1.sql
     MariaDB [(none)]> source table2.sql
     etc...
     ```

     Em seguida, importe os dados.

     ```
     MariaDB [(none)]> LOAD DATA LOCAL INFILE 'table1.txt' INTO TABLE table1 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a';
     MariaDB [(none)]> LOAD DATA LOCAL INFILE 'table2.txt' INTO TABLE table2 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '0x0d0a';
     etc...
     ```

     Para melhorar a performance, você pode realizar essas operações em paralelo de várias conexões, para que todas as tabelas sejam criadas e carregadas ao mesmo tempo.
**nota**  
Se você usou qualquer opção de formatação de dados com `mysqldump` ou `mariadb-dump` quando despejou inicialmente a tabela, use as mesmas opções com `LOAD DATA LOCAL INFILE` para assegurar uma interpretação adequada do conteúdo do arquivo de dados.

1. Execute uma consulta `SELECT` simples em uma ou duas das tabelas no banco de dados importado para verificar se a importação foi bem-sucedida.

Se você não precisa mais da instância do Amazon EC2 usada neste procedimento, encerre-a para reduzir o uso de recursos de uso da AWS. Para encerrar uma instância do EC2, consulte [Como encerrar uma instância](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#terminating-instances-console) no *Guia do usuário do Amazon Elastic Compute Cloud*.

## Tarefa 4: replicar dados do banco de dados externo para o novo banco de dados do Amazon RDS
<a name="mariadb-importing-data-reduced-downtime-replicate-data"></a>

Seu banco de dados de origem provavelmente foi atualizado durante o tempo decorrido entre a cópia e a transferência dos dados para o banco de dados MariaDB. Você pode usar a replicação para atualizar o banco de dados copiado com o banco de dados de origem.

![\[Fluxo de trabalho que mostra como replicar dados do banco de dados MariaDB externo para o banco de dados no Amazon RDS.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/MigrateMariaDBToRDS_5.png)


As permissões necessárias para iniciar a replicação em um banco de dados do Amazon RDS são restritas e não estão disponíveis ao seu usuário principal do Amazon RDS. Por esse motivo, use o procedimento armazenado apropriado do Amazon RDS: 
+ [mysql.rds\$1set\$1external\$1master](mysql-stored-proc-replicating.md#mysql_rds_set_external_master) 
+ [mysql.rds\$1set\$1external\$1master\$1gtid](mysql_rds_set_external_master_gtid.md) para configurar a replicação e [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication) para iniciar a replicação

### Como iniciar a replicação
<a name="mariadb-importing-data-reduced-downtime-start-replication"></a>

Na Tarefa 1, [ao definir as opções de replicação](#mariadb-importing-data-reduced-downtime-set-replication-options), você ativou o registro em log binário e definiu um ID de servidor exclusivo para o banco de dados de origem. Agora, é possível configurar seu banco de dados Amazon RDS como uma réplica com seu banco de dados dinâmico como a instância de replicação de origem.

1. No console do Amazon RDS, adicione o endereço IP do servidor que hospeda o banco de dados de origem ao grupo de segurança da VPC para o banco de dados do Amazon RDS. Para ter mais informações sobre grupos de segurança da VPC, consulte [Configurar regras de grupo de segurança](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-security-group-rules.html) no *Manual do usuário da Amazon Virtual Private Cloud*. 

   Você também pode precisar configurar a rede local para permitir conexões com o endereço IP do banco de dados do Amazon RDS, para que ele possa se comunicar com a instância de origem. Para localizar o endereço IP do banco de dados do Amazon RDS, use o comando `host`:

   ```
   host host_name
   ```

   O *host\$1name* é o nome DNS do endpoint do banco de dados do Amazon RDS; por exemplo, `myinstance.123456789012.us-east-1.rds.amazonaws.com`. Você pode encontrar o valor do endpoint nos detalhes da instância do banco de dados no console do Amazon RDS.

1. Usando o cliente de sua preferência, conecte-se à instância de origem e crie um usuário a ser usado para a replicação. Esta conta é usada unicamente para replicação e deve estar restrita ao seu domínio para melhorar a segurança. O seguinte comando é um exemplo:

   ```
   CREATE USER 'repl_user'@'mydomain.com' IDENTIFIED BY 'password';
   ```
**nota**  
Especifique credenciais diferentes dos prompts mostrados aqui como prática recomendada de segurança.

1. Para a instância de origem, conceda os privilégios `REPLICATION CLIENT` e `REPLICATION SLAVE` para seu usuário de replicação. Por exemplo, para conceder os privilégios de `REPLICATION CLIENT` e `REPLICATION SLAVE` em todos os bancos de dados para o usuário '`repl_user`' de seu domínio, emita o seguinte comando:

   ```
   GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'repl_user'@'mydomain.com';
   ```

1. Se você tiver usado o formato SQL para criar o arquivo de backup e a versão da instância externa não for MariaDB 10.0.24 ou posterior, veja o conteúdo desse arquivo executando o seguinte comando:

   ```
   cat backup.sql
   ```

   O arquivo inclui um comentário `CHANGE MASTER TO` que contém o nome e a posição do arquivo de log mestre. Esse comentário está incluído no arquivo de backup quando você usa a opção `--master-data` com `mysqldump`. Observe os valores para `MASTER_LOG_FILE` e `MASTER_LOG_POS`.

   ```
   --
   -- Position to start replication or point-in-time recovery from
   --
   
   -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin-changelog.000031', MASTER_LOG_POS=107;
   ```

   Se você usou o formato de texto delimitado para criar o arquivo de backup e a versão da instância externa não for MariaDB 10.0.24 ou posterior, você já deve ter coordenadas de logs binários da Etapa 1 na Tarefa 1 [ao criar uma cópia de backup do banco de dados existente](#mariadb-importing-data-reduced-downtime-create-backup).

   Se a versão da instância externa for MariaDB 10.0.24 ou posterior, você já deve ter o GTID com base no qual iniciar a replicação na Etapa 2, na Tarefa 1 [ao criar uma cópia de backup do banco de dados existente](#mariadb-importing-data-reduced-downtime-create-backup).

1. Torne o banco de dados do Amazon RDS a réplica. Se a versão da instância externa não for o MariaDB 10.0.24 ou posterior, conecte-se ao banco de dados Amazon RDS como o usuário principal e identifique o banco de dados de origem como a instância de replicação de origem usando o procedimento armazenado [mysql.rds\$1set\$1external\$1master](mysql-stored-proc-replicating.md#mysql_rds_set_external_master).

   Se você tiver um arquivo de backup no formato SQL, use o nome do arquivo de log mestre e a posição do log mestre que você determinou na Etapa 4. Se você usou o formato de texto delimitado, use o nome e a posição que você determinou ao criar os arquivos de backup. O seguinte comando é um exemplo:

   ```
   CALL mysql.rds_set_external_master ('myserver.mydomain.com', 3306,
       'repl_user', 'password', 'mysql-bin-changelog.000031', 107, 1);
   ```
**nota**  
Especifique credenciais diferentes dos prompts mostrados aqui como prática recomendada de segurança.

   Se a versão da instância externa for o MariaDB 10.0.24 ou posterior, conecte-se ao banco de dados Amazon RDS como o usuário principal e identifique o banco de dados de origem como a instância de replicação de origem usando o procedimento armazenado [mysql.rds\$1set\$1external\$1master\$1gtid](mysql_rds_set_external_master_gtid.md). Use o GTID que você determinou na Etapa 2 da Tarefa 1 [quando criou uma cópia de backup do banco de dados existente](#mariadb-importing-data-reduced-downtime-create-backup). O seguinte comando é um exemplo:

   ```
   CALL mysql.rds_set_external_master_gtid ('source_server_ip_address', 3306, 'ReplicationUser', 'password', 'GTID', 1); 
   ```

   O `source_server_ip_address` é o endereço IP da instância de replicação de origem. No momento, não é possível usar um endereço DNS privado do EC2.
**nota**  
Especifique credenciais diferentes dos prompts mostrados aqui como prática recomendada de segurança.

1. No banco de dados Amazon RDS, para iniciar a replicação, execute o seguinte comando que usa o procedimento armazenado [mysql.rds\$1start\$1replication](mysql-stored-proc-replicating.md#mysql_rds_start_replication):

   ```
   CALL mysql.rds_start_replication;
   ```

1. No banco de dados Amazon RDS, para determinar quando a réplica está atualizada com a instância de replicação de origem, execute o comando [SHOW REPLICA STATUS](https://dev.mysql.com/doc/refman/8.0/en/show-replica-status.html). Os resultados do comando `SHOW REPLICA STATUS` incluem o campo `Seconds_Behind_Master`. Quando o campo `Seconds_Behind_Master` retorna 0, a réplica é atualizada com a instância de replicação de origem.

   Para uma instância de banco de dados do MariaDB 10.5, 10.6, 10.11, 11.4 ou 11.8, use o procedimento armazenado [mysql.rds\$1replica\$1status](mysql_rds_replica_status.md) em vez do comando do MySQL.

1. Depois que o banco de dados do Amazon RDS estiver atualizado, ative backups automatizados para poder restaurar esse banco de dados, se necessário. Você pode ativar ou modificar backups automatizados para um banco de dados do Amazon RDS usando o [console do Amazon RDS](https://console.aws.amazon.com/rds/). Para obter mais informações, consulte [Introdução aos backups](USER_WorkingWithAutomatedBackups.md).

## Tarefa 5: redirecionar a aplicação ativa para a instância do Amazon RDS
<a name="mariadb-importing-data-reduced-downtime-redirect-app"></a>

Depois que o banco de dados MariaDB estiver atualizado com a instância de replicação de origem, será possível atualizar sua aplicação dinâmica para usar a instância do Amazon RDS. 

![\[Fluxo de trabalho que mostra como interromper a replicação e direcionar a aplicação ativa para o banco de dados no Amazon RDS.\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/images/MigrateMariaDBToRDS_6.png)


### Como redirecionar a aplicação dinâmica para o banco de dados MariaDB e interromper a replicação
<a name="mariadb-importing-data-reduced-downtime-redirect-app-stop-app"></a>

1. Para adicionar o grupo de segurança de VPC para o banco de dados do Amazon RDS, adicione o endereço IP do servidor que hospeda a aplicação. Para ter mais informações sobre como modificar um grupo de segurança de VPC, consulte [Configurar regras de grupo de segurança](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-security-group-rules.html) no *Manual do usuário da Amazon Virtual Private Cloud*. 

1. Verifique se o campo `Seconds_Behind_Master` nos resultados do comando [SHOW REPLICA STATUS](https://dev.mysql.com/doc/refman/8.0/en/show-replica-status.html) é 0, o que indica que a réplica está atualizada com a instância de replicação de origem.

   ```
   SHOW REPLICA STATUS;
   ```

   Para uma instância de banco de dados do MariaDB 10.5, 10.6, 10.11, 11.4 ou 11.8, use o procedimento armazenado [mysql.rds\$1replica\$1status](mysql_rds_replica_status.md) em vez do comando do MySQL.

1. Feche todas as conexões com a origem quando suas transações terminarem.

1. Atualize sua aplicação para usar o banco de dados do Amazon RDS. Normalmente, essa atualização envolve a alteração das configurações de conexão para identificar o nome do host e a porta do banco de dados do Amazon RDS, a conta de usuário e a senha para conexão e o banco de dados para uso.

1. Conecte-se à instância de banco de dados.

1. Interrompa a replicação da instância do Amazon RDS usando o seguinte comando que usa o procedimento armazenado [mysql.rds\$1stop\$1replication](mysql-stored-proc-replicating.md#mysql_rds_stop_replication):

   ```
   CALL mysql.rds_stop_replication;
   ```

1. Redefina a configuração de replicação de maneira que essa instância não seja mais identificada como uma réplica, executando o seguinte comando que usa o procedimento armazenado [mysql.rds\$1reset\$1external\$1master](mysql-stored-proc-replicating.md#mysql_rds_reset_external_master) em seu banco de dados Amazon RDS.

   ```
   CALL mysql.rds_reset_external_master;
   ```

1. Ative recursos adicionais do Amazon RDS, como o suporte a multi-AZ e réplicas de leitura. Para obter mais informações, consulte [Configurar e gerenciar uma implantação multi-AZ para o Amazon RDS](Concepts.MultiAZ.md) e [Trabalhar com réplicas de leitura de instância de banco de dados](USER_ReadRepl.md).