

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Migre o Db2 for LUW para a Amazon EC2 usando o envio de registros para reduzir o tempo de interrupção
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time"></a>

*Feng Cai, Ambarish Satarkar e Saurabh Sharma, Amazon Web Services*

## Resumo
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-summary"></a>

Quando os clientes migram suas cargas de trabalho do IBM Db2 for LUW (Linux, UNIX e Windows) para a Amazon Web Services (AWS), usar o Amazon Elastic Compute Cloud (Amazon) com o modelo Bring Your Own License (BYOL EC2) é a maneira mais rápida. No entanto, migrar grandes volumes de dados do Db2 on-premises para a AWS pode ser um desafio, especialmente quando a janela de indisponibilidade é curta. Muitos clientes tentam definir a janela de interrupção para menos de 30 minutos, o que deixa pouco tempo para o banco de dados em si.

Esse padrão aborda como realizar uma migração do Db2 com uma pequena janela de interrupção usando o envio do log de transações. Essa abordagem se aplica ao Db2 em uma plataforma Linux little-endian.

## Pré-requisitos e limitações
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-prereqs"></a>

**Pré-requisitos **
+ Uma conta AWS ativa
+ Uma instância do Db2 em execução em uma EC2 instância que corresponde aos layouts do sistema de arquivos local
+ Um bucket do Amazon Simple Storage Service (Amazon S3) acessível à instância EC2 
+ Uma política e um perfil do AWS Identity and Access Management (IAM) para realizar chamadas programáticas ao Amazon S3
+ Fuso horário e relógios do sistema sincronizados na Amazon EC2 e no servidor local
+ A rede local conectada à AWS por meio do AWS [ Site-to-SiteVPN ou do AWS](https://aws.amazon.com/vpn/) [Direct](https://aws.amazon.com/directconnect/) Connect

**Limitações**
+ A instância local do Db2 e a Amazon EC2 devem estar na mesma família de [plataformas](https://www.ibm.com/docs/en/db2/11.1?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms).
+ O workload on-premises do Db2 deve ser registrado. Defina `blocknonlogged=yes` na configuração do banco de dados para bloquear qualquer transação não registrada.

**Versões do produto**
+ Db2 for LUW versão 11.5.9 e posterior

## Arquitetura
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-architecture"></a>

**Pilha de tecnologia de origem**
+ Db2 em Linux** **x86\$164

**Pilha de tecnologias de destino**
+ Amazon EBS
+ Amazon EC2
+ AWS Identity and Access Management (IAM)
+ Amazon S3
+ AWS Site-to-Site VPN ou Direct Connect

**Arquitetura de destino**

O diagrama a seguir mostra uma instância do Db2 em execução local com uma conexão de rede privada virtual (VPN) com o Db2 na Amazon. EC2 As linhas pontilhadas representam o túnel VPN entre seu datacenter e a nuvem AWS.

![\[Fluxo de trabalho para realizar a migração do Db2 em uma janela de indisponibilidade curta usando o envio de logs de transação.\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/images/pattern-img/7dec6e4a-a92e-4204-9e42-f89d7dcafbfa/images/a7e1c1d6-2ec1-4271-952d-a58260ad7c81.png)


## Ferramentas
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-tools"></a>

**Serviços da AWS**
+ A ‭[AWS Command Line Interface (AWS CLI)](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)‭ é uma ferramenta de código aberto que permite que você interaja com serviços da AWS usando comandos no shell da linha de comando.
+ O [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) conecta sua rede interna a um local do Direct Connect por meio de um cabo de fibra óptica Ethernet padrão. Com essa conexão, você pode criar interfaces virtuais diretamente para serviços públicos da AWS, ignorando provedores de serviço da internet no caminho da sua rede.
+ [O Amazon Elastic Block Store (Amazon EBS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html)) fornece volumes de armazenamento em nível de bloco para uso com instâncias do Amazon Elastic Compute Cloud (Amazon). EC2
+ [A Amazon Elastic Compute Cloud (Amazon EC2)](https://docs.aws.amazon.com/ec2/) fornece capacidade de computação escalável na Nuvem AWS. Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.
+ O [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) ajuda você a gerenciar com segurança o acesso aos seus recursos da AWS, controlando quem está autenticado e autorizado a usá-los.
+ O [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.
+ [O AWS Site-to-Site VPN](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) ajuda você a transmitir tráfego entre instâncias que você executa na AWS e sua própria rede remota.

**Outras ferramentas**
+ [db2cli](https://www.ibm.com/docs/en/db2/11.5?topic=commands-db2cli-db2-interactive-cli) é o comando da CLI interativa do Db2.

## Práticas recomendadas
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-best-practices"></a>
+ No banco de dados de destino, use [endpoints de gateway para o Amazon](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-s3.html) S3 para acessar a imagem de backup do banco de dados e os arquivos de log no Amazon S3.
+ No banco de dados de origem, use a [AWS PrivateLink para o Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/privatelink-interface-endpoints.html) para enviar a imagem de backup do banco de dados e os arquivos de log para o Amazon S3.

## Épicos
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-epics"></a>

### Definição de variáveis de ambiente
<a name="set-environment-variables"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Definição de variáveis de ambiente. | Seu nome usa o padrão a seguir.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Você pode alterá-los para se adequarem ao seu ambiente. | DBA | 

### Configurar o servidor Db2 on-premises
<a name="configure-the-on-premises-db2-server"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a CLI da AWS. | Para realizar o download e instalar a versão mais recente da AWS CLI, execute os seguintes comandos:<pre>$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"<br />unzip awscliv2.zip<br />sudo ./aws/install</pre> | Administrador do Linux | 
| Configure um destino local para os logs de arquivamento do Db2. | Para manter o banco de dados de destino EC2 na Amazon sincronizado com o banco de dados de origem local, os registros de transações mais recentes precisam ser recuperados da fonte.Nesta configuração, `/db2logs` é definido por `LOGARCHMETH2` na fonte como uma área de preparação. Os registros arquivados nesse diretório serão sincronizados com o Amazon S3 e acessados pelo Db2 na Amazon. EC2 O padrão é usado `LOGARCHMETH2` porque `LOGARCHMETH1` pode ter sido configurado para usar uma ferramenta de um fornecedor terceirizado que o comando da AWS CLI não pode acessar. Para recuperar os logs, execute o seguinte comando: <pre>db2 connect to sample<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs</pre> | DBA | 
| Execute um backup de banco de dados on-line. | Execute um backup on-line do banco de dados e salve-o no sistema de arquivos de backup local: <pre>db2 backup db sample online to /backup </pre> | DBA | 

### Configurar o bucket do S3 e a política do IAM
<a name="set-up-the-s3-bucket-and-iam-policy"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Criar um bucket do S3. | Crie um bucket S3 para o servidor on-premises para enviar as imagens de backup do Db2 e os arquivos de log para a AWS. O bucket também será acessado pela Amazon EC2:<pre>aws s3api create-bucket --bucket logshipmig-db2 --region us-east-1 </pre> | Administrador de sistemas AWS | 
|  Crie uma política do IAM. | O arquivo `db2bucket.json` contém a política do IAM para acessar o bucket do Amazon S3:<pre>{<br />    "Version": "2012-10-17",		 	 	 <br />    "Statement": [<br />        {<br />            "Effect": "Allow",<br />            "Action": [<br />                "kms:GenerateDataKey",<br />                "kms:Decrypt",<br />                "s3:PutObject",<br />                "s3:GetObject",<br />                "s3:AbortMultipartUpload",<br />                "s3:ListBucket",<br />                "s3:DeleteObject",<br />                "s3:GetObjectVersion",<br />                "s3:ListMultipartUploadParts"<br />            ],<br />            "Resource": [<br />                "arn:aws:s3:::logshipmig-db2/*",<br />                "arn:aws:s3:::logshipmig-db2"<br />            ]<br />        }<br />    ]<br />}</pre>Para criar a política, use o seguinte comando da AWS CLI:<pre>aws iam create-policy \<br />      --policy-name db2s3policy \<br />      --policy-document file://db2bucket.json </pre> A saída em JSON apresenta o nome do recurso da Amazon (ARN) da política, em que `aws_account_id` representa a ID da sua conta:<pre>"Arn": "arn:aws:iam::aws_account_id:policy/db2s3policy"</pre> | Administrador da AWS, administrador de sistemas da AWS | 
| Anexe a política do IAM à função do IAM usada pela EC2 instância. | Na maioria dos ambientes da AWS, uma EC2 instância em execução tem uma função do IAM definida pelo administrador do sistema. Se a função do IAM não estiver definida, crie a função e escolha **Modificar função do IAM** no EC2 console para associar a função à EC2 instância que hospeda o banco de dados Db2. Anexe a política do IAM ao perfil do IAM usando o ARN da política:<pre>aws iam attach-role-policy \<br />    --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3policy"  \<br />    --role-name db2s3role  </pre>Depois que a política for anexada, qualquer EC2 instância associada à função do IAM poderá acessar o bucket do S3. | Administrador da AWS, administrador de sistemas da AWS | 

### Envie a imagem de backup e os arquivos de log do banco de dados de origem para o Amazon S3
<a name="send-the-source-database-backup-image-and-log-files-to-amazon-s3"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Configure a AWS CLI no servidor do Db2 on-premises. | Configure a AWS CLI com os valores `Access Key ID` e `Secret Access Key` gerados na etapa anterior:<pre>$ aws configure <br />AWS Access Key ID [None]: *************<br />AWS Secret Access Key [None]: ***************************<br />Default region name [None]: us-east-1<br />Default output format [None]: json</pre>  | Administrador da AWS, administrador de sistemas da AWS | 
| Envie a imagem de backup para o Amazon S3. | Anteriormente, um backup de banco de dados on-line foi salvo no diretório local `/backup`. Para enviar essa imagem de backup para o bucket do S3, execute o seguinte comando:<pre>aws s3 sync /backup s3://logshipmig-db2/SAMPLE_backup</pre> | Administrador da AWS, engenheiro de migração | 
| Envie os logs do Db2 para o Amazon S3. | Sincronize os registros do arquivamento local do Db2 com o bucket do S3 que pode ser acessado pela instância do Db2 de destino na Amazon: EC2<pre>aws s3 sync /db2logs s3://logshipmig-db2/SAMPLE_LOG</pre>Execute esse comando periodicamente usando o cron ou outras ferramentas de agendamento. A frequência depende da frequência com que o banco de dados de origem arquiva os arquivos de log de transações.  | Administrador da AWS, engenheiro de migração | 

### Conecte o Db2 na Amazon EC2 ao Amazon S3 e inicie a sincronização do banco de dados
<a name="connect-db2-on-amazon-ec2-to-amazon-s3-and-start-the-database-sync"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Crie um armazenamento de PKCS12 chaves. | O Db2 usa um repositório de chaves de criptografia de chave pública (PKCS) para manter a chave de acesso da AWS segura. Crie um keystore e configure a instância de origem do Db2 para usá-lo:<pre>gsk8capicmd_64 -keydb -create -db "/home/db2inst1/.keystore/db2s3.p12" -pw "<password>" -type pkcs12 -stash <br /> <br />db2 "update dbm cfg using keystore_location /home/db2inst1/.keystore/db2s3.p12 keystore_type pkcs12"</pre> | DBA | 
| Crie o alias de acesso ao armazenamento do Db2. | Para criar o [alias de acesso ao armazenamento](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access), use a seguinte sintaxe de script:`db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"`Por exemplo, o seu script poderia ter a seguinte aparência: `db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'logshipmig-db2'" ` | DBA | 
| Defina a área de espera. | Por padrão, o Db2 usa `DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH` como área de preparação para carregar e baixar arquivos de e para o Amazon S3. O caminho padrão está `sqllib/tmp/RemoteStorage.xxxx` no diretório inicial da instância, com `xxxx` referência ao número da partição Db2. Observe que a área de preparação deve ter capacidade suficiente para armazenar as imagens de backup e os arquivos de log. Você pode usar o registro para apontar a área de preparação para um diretório diferente.Além disso, recomendamos usar `DB2_ENABLE_COS_SDK=ON`, `DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore` e o link para a biblioteca `awssdk` para ignorar a área de preparação do Amazon S3 no backup e na restauração do banco de dados:<pre>#By root:<br />cp -rp /home/db2inst1/sqllib/lib64/awssdk/RHEL/7.6/* /home/db2inst1/sqllib/lib64/<br /><br />#By db2 instance owner:<br />db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage<br />db2set DB2_ENABLE_COS_SDK=ON<br />Db2set DB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore<br />db2stop<br />db2start</pre> | DBA | 
| Restaure o banco de dados a partir da imagem de backup. | Restaure o banco de dados de destino na Amazon a EC2 partir da imagem de backup no bucket do S3:<pre>db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup replace existing</pre> | DBA | 
| Avance o banco de dados. | Depois que a restauração for concluída, o banco de dados de destino será colocado no estado pendente de rollforward. Configure `LOGARCHMETH1` e `LOGARCHMETH2` para que o Db2 consiga localizar os arquivos do log de transação:<pre>db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/'<br />db2 update db cfg for SAMPLE using LOGARCHMETH2 OFF</pre>Inicie o processo de rollforward do banco de dados:<pre>db2 ROLLFORWARD DATABASE sample to END OF LOGS</pre>Esse comando processa todos os arquivos de log que foram transferidos para o bucket do S3. Execute-o periodicamente com base na frequência do `s3 sync` comando nos servidores Db2 on-premises. Por exemplo, se for `s3 sync` executado a cada hora e levar 10 minutos para sincronizar todos os arquivos de log, defina o comando para ser executado 10 minutos após cada hora.  | DBA | 

### Coloque o Db2 na Amazon EC2 on-line durante a janela de transição
<a name="bring-db2-on-amazon-ec2-online-during-the-cutover-window"></a>


| Tarefa | Description | Habilidades necessárias | 
| --- | --- | --- | 
| Coloque o banco de dados de destino on-line. | Na janela de substituição, siga um destes procedimentos:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/patterns/migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time.html)Depois que o último log de transações for sincronizado com o Amazon S3, execute o comando `ROLLFORWARD` pela última vez:<pre>db2 rollforward DB sample to END OF LOGS<br />db2 rollforward DB sample complete<br /><br />                                 Rollforward Status<br />....<br /> Rollforward status                     = not pending<br />....<br />DB20000I  The ROLLFORWARD command completed successfully.<br /><br />db2 activate db sample<br />DB20000I  The ACTIVATE DATABASE command completed successfully.</pre>Coloque o banco de dados de destino on-line e direcione as conexões do aplicativo para o Db2 na Amazon EC2. | DBA | 

## Solução de problemas
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-troubleshooting"></a>


| Problema | Solução | 
| --- | --- | 
| Se vários bancos de dados tiverem o mesmo nome de instância e nome de banco de dados em hosts diferentes (DEV, QA, PROD), os backups e os logs poderão ir para o mesmo subdiretório. | Use buckets do S3 diferentes para DEV, QA e PROD, e adicione o nome do host como prefixo de subdiretório para evitar confusão. | 
| Se houver múltiplas imagens de backup no mesmo local, você receberá o seguinte erro durante a restauração:`SQL2522N More than one backup file matches the time stamp value provided for the backed up database image.` | No comando `restore`, adicione o carimbo de data/hora do backup:`db2 restore db sample from DB2REMOTE://DB2AWSS3/logshipmig-db2/SAMPLE_backup taken at 20230628164042 replace existing` | 

## Recursos relacionados
<a name="migrate-db2-for-luw-to-amazon-ec2-by-using-log-shipping-to-reduce-outage-time-resources"></a>
+ [Operações de backup e restauração do Db2 entre diferentes sistemas operacionais e plataformas de hardware](https://www.ibm.com/docs/en/db2/11.5?topic=dbrs-backup-restore-operations-between-different-operating-systems-hardware-platforms)
+ [Configurar Db2 STORAGE ACCESS ALIAS e REMOTE DB2](https://www.ibm.com/docs/en/db2/11.5?topic=commands-catalog-storage-access)
+ [Comando Db2 ROLLFORWARD](https://www.ibm.com/docs/en/db2/11.5?topic=commands-rollforward-database)
+ [Método de arquivamento de log secundário do Db2](https://www.ibm.com/docs/en/db2/11.5?topic=parameters-logarchmeth2-secondary-log-archive-method)