

# Migrar do Linux para Linux com quase zero tempo de inatividade para o Amazon RDS para Db2
<a name="db2-near-zero-downtime-migration"></a>

Com essa abordagem de migração, você vai migrar um banco de dados do Db2 baseado em Linux de um banco de dados do Db2 autogerenciado (origem) para o Amazon RDS para Db2. Essa abordagem ocasiona mínima ou nenhuma interrupção ou tempo de inatividade da aplicação ou dos usuários. Essa abordagem faz backup do banco de dados e o restaura com a reprodução do log, o que ajuda a evitar interrupções nas operações contínuas e oferece alta disponibilidade do banco de dados. 

Para ter uma migração com tempo de inatividade quase zero, o RDS para Db2 implementa a restauração com reprodução de logs. Essa abordagem faz backup do banco de dados do DB2 baseado em Linux autogerenciado e o restaura no servidor RDS para Db2. Com os procedimentos armazenados do Amazon RDS, você aplica os logs de transações subsequentes para atualizar o banco de dados. 

**Topics**
+ [Limitações e recomendações de migração com tempo de inatividade quase zero](#db2-near-zero-downtime-migration-limitations)
+ [Fazer backup do banco de dados no Amazon S3](#db2-near-zero-downtime-backing-up-database)
+ [Criar um grupo de armazenamento automático padrão](#db2-near-zero-migration-creating-auto-storage-group)
+ [Migrar o bancos de dados do Db2](#db2-migrating-db2-database)

## Limitações e recomendações de migração com tempo de inatividade quase zero
<a name="db2-near-zero-downtime-migration-limitations"></a>

As seguintes limitações e recomendações se aplicam à utilização da migração de tempo de inatividade quase zero:
+ O Amazon RDS exige um backup on-line para uma migração com tempo de inatividade quase zero. Isso ocorre porque o Amazon RDS mantém o banco de dados em um estado pendente de rollforward à medida que você faz upload dos logs de transações arquivados. Para obter mais informações, consulte [Migrar o bancos de dados do Db2](#db2-migrating-db2-database). 
+ Não é possível restaurar de um bucket do Amazon S3 em uma Região da AWS diferente da região onde a instância de banco de dados do RDS para Db2 está localizada. 
+ O Amazon S3 limita o tamanho dos arquivos carregados para um bucket do S3 a 5 TB. Se um arquivo de backup de banco de dados exceder 5 TB, divida o arquivo de backup em arquivos menores.
+ O Amazon RDS não comporta rotinas externas não protegidas, restaurações incrementais nem restaurações Delta.
+ Não é possível restaurar de um banco de dados de origem criptografado, mas você pode restaurar para uma instância de banco de dados do Amazon RDS.

O processo de restauração varia de acordo com sua configuração.

Se você definir `USE_STREAMING_RESTORE` como `TRUE`, o Amazon RDS transmitirá diretamente seu backup do bucket do S3 durante a restauração. O streaming reduz significativamente os requisitos de armazenamento. Você só precisa provisionar espaço de armazenamento igual ou superior ao tamanho do backup ou ao tamanho do banco de dados original, o que for maior.

Se você definir `USE_STREAMING_RESTORE` como `FALSE`, o Amazon RDS primeiro baixará o backup na instância de banco de dados do RDS para Db2 e, depois, o extrairá. A extração requer espaço de armazenamento adicional. É necessário provisionar espaço de armazenamento equivalente ou maior que a soma do tamanho do backup mais o tamanho do banco de dados original.

O tamanho máximo do banco de dados restaurado é igual ao tamanho máximo aceito do banco de dados menos o espaço necessário para armazenamento temporário durante o processo de restauração. 

## Fazer backup do banco de dados no Amazon S3
<a name="db2-near-zero-downtime-backing-up-database"></a>

Para fazer backup do banco de dados no Amazon S3, são necessários os seguintes componentes da AWS:
+ *Um bucket do Amazon S3 para armazenar arquivos de backup*: faça upload de todos os arquivos de backup que você deseja migrar para o Amazon RDS. O Amazon RDS exige um backup on-line para uma migração com tempo de inatividade quase zero. Se você já tiver um bucket do Amazon S3, poderá usá-lo. Se você não tiver um bucket do S3, consulte [Criar um bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html) no *Guia do usuário do Amazon S3*.
**nota**  
Se o banco de dados for grande e levar muito tempo para ser transferido para um bucket do S3, será possível solicitar um dispositivo AWS Snow Family e pedir para que a AWS realize o backup. Depois de copiar os arquivos para o dispositivo e devolvê-los à equipe da família Snow, a equipe vai transferir as imagens de backup para o bucket do S3. Para obter mais informações, consulte a [a documentação do AWS Snow Family](https://docs.aws.amazon.com/snowball/).
+ *Um perfil do IAM para acessar o bucket do S3*: se você já tem um perfil do AWS Identity and Access Management (IAM), pode usá-lo. Se não tiver um perfil, consulte [Etapa 2: Criar um perfil do IAM e associar a política do IAM](db2-s3-integration.md#db2-creating-iam-role). 
+ *Uma política do IAM com relações de confiança e permissões anexadas ao perfil do IAM*: consulte mais informações em [Etapa 1: criar uma política do IAM](db2-s3-integration.md#db2-creating-iam-policy).
+ *O perfil do IAM adicionado à instância de banco de dados do RDS para Db2*: consulte mais informações em [Etapa 3: Adicionar o perfil do IAM à instância de banco de dados do RDS para Db2](db2-s3-integration.md#db2-adding-iam-role).

## Criar um grupo de armazenamento automático padrão
<a name="db2-near-zero-migration-creating-auto-storage-group"></a>

O banco de dados de origem deve ter um grupo de armazenamento automático padrão. Se o banco de dados não tiver um grupo de armazenamento automático padrão, você deverá criar um.

**Como criar um grupo de armazenamento automático padrão**

1. Conecte-se ao seu banco de dados de origem. No exemplo a seguir, substitua {{source\_database}} pelo nome do banco de dados.

   ```
   db2 connect to {{source_database}} 
   ```

1. Crie um grupo de armazenamento automático e defina-o como padrão. No exemplo a seguir, substitua {{storage\_path}} pelo caminho absoluto de onde o grupo de armazenamento está localizado.

   ```
   db2 "create stogroup IBMSTOGROUP ON {{storage_path}} set as default"
   ```

1. Encerre os processos de backend.

   ```
   db2 terminate
   ```

## Migrar o bancos de dados do Db2
<a name="db2-migrating-db2-database"></a>

Depois de configurar uma migração com tempo de inatividade quase zero, estará tudo pronto para migrar o banco de dados Db2 para o bucket do Amazon S3 para sua instância de banco de dados do RDS para Db2.

**Como realizar uma migração com tempo de inatividade quase zero dos arquivos de backup do bucket do Amazon S3 para a instância de banco de dados do RDS para Db2**

1. Execute um backup on-line do banco de dados de origem. Para ter mais informações, consulte [BACKUP DATABASE command](https://www.ibm.com/docs/en/db2/11.5?topic=commands-backup-database) na documentação do IBM Db2.

1. Copie o backup do banco de dados para um bucket do Amazon S3. Para ter informações sobre o Amazon S3, consulte o [Guia do usuário do Amazon Simple Storage Service](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html).

1. Conecte-se ao servidor `rdsadmin` com o {{master\_username}} e a {{master\_password}} da instância de banco de dados do RDS para Db2.

   ```
   db2 connect to rdsadmin user {{master_username}} using {{master_password}}
   ```

1. (Opcional) Para garantir que seu banco de dados esteja configurado da forma ideal, confira os valores dos seguintes parâmetros chamando [rdsadmin.show\_configuration](db2-sp-managing-databases.md#db2-sp-show-configuration):
   + `RESTORE_DATABASE_NUM_BUFFERS`
   + `RESTORE_DATABASE_PARALLELISM`
   + `RESTORE_DATABASE_NUM_MULTI_PATHS`
   + `USE_STREAMING_RESTORE`

   Use [rdsadmin.set\_configuration](db2-sp-managing-databases.md#db2-sp-set-configuration) para modificar esses valores conforme necessário. Definir adequadamente esses parâmetros pode melhorar significativamente a performance ao restaurar bancos de dados com grandes volumes de dados. Para a maioria dos cenários de migração, recomendamos definir `USE_STREAMING_RESTORE` como `TRUE` porque reduz os requisitos de armazenamento e pode aumentar a velocidade de restauração.

1. Restaure o backup no servidor RDS para Db2 chamando `rdsadmin.restore_database`. Defina `backup_type` como `ONLINE`. Para obter mais informações, consulte [rdsadmin.restore\_database](db2-sp-managing-databases.md#db2-sp-restore-database).

1. Copie os logs de arquivamento do servidor de origem para o bucket do S3. Para ter mais informações, consulte [Archive logging](https://www.ibm.com/docs/en/db2/11.5?topic=logging-archive) na documentação do IBM Db2.

1. Aplique logs de arquivamento quantas vezes for necessário chamando `rdsadmin.rollforward_database`. Defina `complete_rollforward` como `FALSE` para manter o banco de dados em um estado `ROLL-FORWARD PENDING`. Para obter mais informações, consulte [rdsadmin.rollforward\_database](db2-sp-managing-databases.md#db2-sp-rollforward-database).

1. Depois de aplicar todos os logs de arquivamento, coloque o banco de dados on-line chamando `rdsadmin.complete_rollforward`. Para obter mais informações, consulte [rdsadmin.complete\_rollforward](db2-sp-managing-databases.md#db2-sp-complete-rollforward).

1. Alterne as conexões da aplicação para o servidor RDS para Db2 atualizando os endpoints da aplicação para o banco de dados ou atualizando os endpoints do DNS para redirecionar o tráfego para o servidor RDS para Db2. Também é possível usar o recurso de redirecionamento automático do cliente Db2 no banco de dados do Db2 autogerenciado com o endpoint do banco de dados do RDS para Db2. Para ter mais informações, consulte [Automatic client reroute description and setup](https://www.ibm.com/docs/en/db2/11.5?topic=reroute-configuring-automatic-client) na documentação do IBM Db2.

1. (Opcional) Encerre o banco de dados de origem.