Migre o Db2 for LUW para o Amazon EC2 com recuperação de desastres de alta disponibilidade - Recomendações da AWS

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 o Amazon EC2 com recuperação de desastres de alta disponibilidade

Criado por Feng Cai (AWS), Aruna Gangireddy (AWS) e Venkatesan Govindan (AWS)

Ambiente: produção

Origem: IBM Db2 para LUW on-premises

Destino: Db2 no Amazon EC2

Tipo R: redefinir a hospedagem

Workload: IBM

Tecnologias: migração; bancos de dados; sistemas operacionais

Serviços da AWS: AWS Direct Connect; Amazon EC2; Amazon S3; VPN Site-to-Site da AWS

Resumo

Quando os clientes migram sua carga de trabalho do IBM Db2 LUW (Linux, UNIX e Windows) para a Amazon Web Services (AWS), usar o Amazon Elastic Compute Cloud (Amazon EC2) com o modelo Bring Your Own License (BYOL) é a maneira mais rápida. No entanto, migrar grandes quantidades de dados do Db2 local para a AWS pode ser um desafio, especialmente quando a janela de interrupção é 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 a recuperação de desastres de alta disponibilidade (HADR) do Db2. Essa abordagem se aplica aos bancos de dados Db2 que estão na plataforma Linux little-endian e não estão usando o Atributo de Particionamento de Dados (DPF - Data Partitioning Feature).

Pré-requisitos e limitações

Pré-requisitos

  • Uma conta AWS ativa

  • Uma instância do Db2 em execução em uma instância do Amazon EC2 que corresponde aos layouts do sistema de arquivos on-premises

  • Um bucket do Amazon Simple Storage Service (Amazon S3) acessível à instância do EC2

  • Uma política e uma função do AWS Identity and Access Management (IAM) para fazer chamadas programáticas para o Amazon S3

  • Fuso horário e relógios do sistema sincronizados no Amazon EC2 e no servidor on-premises

  • A rede on-premises conectada à AWS por meio do AWS Site-to-Site VPN ou AWS Direct Connect

  • Comunicação entre o servidor on-premises e o Amazon EC2 em portas HADR

Limitações

  • A instância on-premises do Db2 e o Amazon EC2 deve estar na mesma família de plataformas.

  • O HADR não é suportado em um ambiente de banco de dados particionado.

  • O HADR não suporta o uso de E/S bruta (acesso direto ao disco) para arquivos de log do banco de dados.

  • O HADR não é compatível com registro infinito.

  • LOGINDEXBUILD deve ser definido como YES, o que aumentará o uso do log para reconstruir o índice.

  • 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

Pilha de tecnologia de origem

  • Db2 em Linux x86_64

Pilha de tecnologias de destino

  • Amazon EC2

  • AWS Identity and Access Management (IAM)

  • Amazon S3

  • AWS Site-to-Site VPN

Arquitetura de destino

No diagrama a seguir, o Db2 on-premises está sendo executado em db2-server1 como principal. Ele tem dois alvos de espera do HADR. Um alvo em espera está on-premises e é opcional. O outro alvo em espera, db2-ec2, está no Amazon EC2. Depois que o banco de dados é transferido para a AWS, db2-ec2 ele se torna o principal.

  1. Os registros são transmitidos do banco de dados on-premises primário para o banco de dados on-premises em espera.

  2. Usando o Db2 HADR, os logs são transmitidos do banco de dados on-premises principal por meio da VPN Site-to-Site para o Db2 no Amazon EC2.

  3. Os registros de backup e arquivamento do Db2 são enviados do banco de dados on-premises principal para o bucket do S3 na AWS.

Ferramentas

Serviços da AWS

  • A ‭AWS Command Line Interface (AWS CLI)‭ é 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 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 Compute Cloud (Amazon EC2) oferece capacidade computacional 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) 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) é um serviço de armazenamento de objetos baseado na nuvem que ajuda você a armazenar, proteger e recuperar qualquer quantidade de dados.

  • A AWS Site-to-Site VPN ajuda você a transmitir tráfego entre instâncias que você executa na AWS e sua própria rede remota.

Outras ferramentas

  • db2cli é o comando da CLI interativa do Db2.

Práticas recomendadas

Épicos

TarefaDescriçãoHabilidades necessárias

Definição de variáveis de ambiente.

Esse padrão usa os seguintes nomes e portas:

  1. Nome do host on-premises do Db2: db2-server1

  2. Nome do host em espera do HADR: db2-server2 (se o HADR estiver atualmente em execução on-premises)

  3. Nome de host do Amazon EC2: db2-ec2

  4. Nome da instância: db2inst1

  5. Nome do banco de dados: SAMPLE

  6. Portas HADR:

    • db2-server1: 50010

    • db2-server2: 50011

    • db2-ec2: 50012

Você pode alterá-los para se adequarem ao seu ambiente.

DBA
TarefaDescriçãoHabilidades necessárias

Configurar a AWS CLI

Para baixar e instalar a versão mais recente da AWS CLI, execute os seguintes comandos:

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install
Administrador do Linux

Configure um destino local para os logs de arquivamento do Db2.

Condições como trabalhos pesados de atualização em lote e lentidão na rede podem fazer com que o servidor em espera do HADR tenha um atraso. Para se atualizar, o servidor em espera precisa dos registros de transações do servidor primário. A sequência de locais para solicitar registros é a seguinte:

  • O diretório de log ativo no servidor primário

  • A localização LOGARCHMETH1 ou LOGARCHMETH2 no servidor em espera

  • A localização LOGARCHMETH1 ou LOGARCHMETH2 no servidor primário

Nesta configuração, /db2logs é definido por LOGARCHMETH2 na fonte como uma área de preparação. Os logs arquivados nesse diretório serão sincronizados com o Amazon S3 e acessados pelo Db2 no 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:

db2 connect to sample db2 update db cfg for SAMPLE using LOGARCHMETH2 disk:/db2logs
DBA

Execute um backup de banco de dados on-line.

Execute um backup de banco de dados on-line e salve-o no sistema de arquivos de backup local:

db2 backup db sample online to /backup
DBA
TarefaDescriçãoHabilidades 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 será acessado pelo Amazon EC2:

aws s3api create-bucket --bucket hadrmig-db2 --region us-east-1
Administrador da AWS

Crie uma política do IAM.

O db2bucket.json arquivo contém a política do IAM para acessar o bucket do S3:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt", "s3:PutObject", "s3:GetObject", "s3:AbortMultipartUpload", "s3:ListBucket", "s3:DeleteObject", "s3:GetObjectVersion", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::hadrmig-db2/*", "arn:aws:s3:::hadrmig-db2" ] } ] }

Para criar a política, use o seguinte comando da AWS CLI:

aws iam create-policy \ --policy-name db2s3hapolicy \ --policy-document file://db2bucket.json

A saída JSON mostra o Amazon Resource Name (ARN) da política, aws_account_id onde representa o ID da sua conta:

"Arn": "arn:aws:iam::aws_account_id:policy/db2s3hapolicy"
Administrador da AWS, administrador de sistemas da AWS

Anexe a política do IAM à função do IAM.

Normalmente, a instância do EC2 com o Db2 em execução teria uma função do IAM atribuída pelo administrador do sistema. Se nenhuma função do IAM for atribuída, você poderá escolher Modificar função do IAM no console do Amazon EC2.

Anexe a política do IAM à função do IAM associada à instância do EC2. Depois que a política é anexada, a instância do EC2 pode acessar o bucket do S3:

aws iam attach-role-policy --policy-arn "arn:aws:iam::aws_account_id:policy/db2s3hapolicy" --role-name db2s3harole
TarefaDescriçãoHabilidades necessárias

Configure a AWS CLI no servidor Db2 on-premises.

Configure o AWS CLI com o Access Key ID e Secret Access Key que você gerou anteriormente:

$ aws configure AWS Access Key ID [None]: ************* AWS Secret Access Key [None]: *************************** Default region name [None]: us-east-1 Default output format [None]: json
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:

aws s3 sync /backup s3://hadrmig-db2/SAMPLE_backup
Administrador da AWS, administrador de sistemas da AWS

Envie os logs do Db2 para o Amazon S3.

Sincronize os logs de arquivamento local do Db2 com o bucket do Amazon S3 que pode ser acessado pela instância do Db2 de destino no Amazon EC2:

aws s3 sync /db2logs s3://hadrmig-db2/SAMPLE_LOGS

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.

TarefaDescriçãoHabilidades necessárias

Crie um keystore PKCS12.

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 o Db2 de origem para usá-lo:

gsk8capicmd_64 -keydb -create -db "/home/db2inst1/.keystore/db2s3.p12" -pw "<password>" -type pkcs12 -stash db2 "update dbm cfg using keystore_location /home/db2inst1/.keystore/db2s3.p12 keystore_type pkcs12"
DBA

Crie o alias de acesso ao armazenamento do Db2.

O Db2 usa um alias de acesso ao armazenamento para acessar o Amazon S3 diretamente com os comandos INGEST, LOAD, BACKUP DATABASE, ou RESTORE DATABASE.

Como você atribuiu uma função do IAM à instância do EC2 USER e não PASSWORD é necessário:

db2 "catalog storage access alias <alias_name> vendor S3 server <S3 endpoint> container '<bucket_name>'"

Por exemplo, seu script pode ter a seguinte aparência:

db2 "catalog storage access alias DB2AWSS3 vendor S3 server s3.us-east-1.amazonaws.com container 'hadrmig-db2'"

DBA

Defina a área de espera.

Recomendamos usar DB2_ENABLE_COS_SDK=ONDB2_OBJECT_STORAGE_SETTINGS=EnableStreamingRestore, e o link para a awssdk biblioteca para ignorar a área de armazenamento do Amazon S3 para backup e restauração do banco de dados:

#By root: cp -rp /home/db2inst1/sqllib/lib64/awssdk/RHEL/7.6/* /home/db2inst1/sqllib/lib64/ #By db2 instance owner: db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage db2set DB2_ENABLE_COS_SDK=ON db2set DB2_OBJECT_STORAGE_LOCAL_STAGING_PATH=/db2stage db2stop db2start
DBA

Restaure o banco de dados a partir da imagem de backup.

Restaure o banco de dados de destino no Amazon EC2 a partir da imagem de backup no bucket do S3:

db2 create db sample on /data1 db2 restore db sample from DB2REMOTE://DB2AWSS3/hadrmig-db2/SAMPLE_backup replace existing
DBA
TarefaDescriçãoHabilidades necessárias

Configure o servidor Db2 on-premises como principal.

Atualize as configurações do banco de dados para HADR on db2-server1 (a fonte on-premises) como principal. HADR_SYNCMODEDefina para o SUPERASYNC modo, que tem o menor tempo de resposta da transação:

db2 update db cfg for sample using HADR_LOCAL_HOST db2-server1 HADR_LOCAL_SVC 50010 HADR_REMOTE_HOST db2-ec2 HADR_REMOTE_SVC 50012 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully

Alguns atrasos de rede entre o datacenter on-premises e a AWS são esperados. (É possível definir um valor HADR_SYNCMODE diferente com base na confiabilidade da rede. Para obter mais informações, consulte a seção Recursos relacionados).

DBA

Altere o destino do arquivamento do log do banco de dados de destino.

Altere o destino do arquivo de log do banco de dados de destino para corresponder ao ambiente do Amazon EC2:

db2 update db cfg for SAMPLE using LOGARCHMETH1 'DB2REMOTE://DB2AWSS3//SAMPLE_LOGS/' LOGARCHMETH2 OFF DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully
DBA

Configure o HADR para Db2 no servidor Amazon EC2.

Atualize a configuração do banco de dados para HADR em db2-ec2 espera:

db2 update db cfg for sample using HADR_LOCAL_HOST db2-ec2 HADR_LOCAL_SVC 50012 HADR_REMOTE_HOST db2-server1 HADR_REMOTE_SVC 50010 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully

DBA

Verifique a configuração do HADR.

Verifique os parâmetros do HADR nos servidores Db2 de origem e de destino.

Para verificar se a configuração está ativadadb2-server1, execute o seguinte comando:

db2 get db cfg for sample|grep HADR HADR database role = PRIMARY HADR local host name (HADR_LOCAL_HOST) = db2-server1 HADR local service name (HADR_LOCAL_SVC) = 50010 HADR remote host name (HADR_REMOTE_HOST) = db2-ec2 HADR remote service name (HADR_REMOTE_SVC) = 50012 HADR instance name of remote server (HADR_REMOTE_INST) = db2inst1 HADR timeout value (HADR_TIMEOUT) = 120 HADR target list (HADR_TARGET_LIST) = HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC HADR spool log data limit (4KB) (HADR_SPOOL_LIMIT) = AUTOMATIC(52000) HADR log replay delay (seconds) (HADR_REPLAY_DELAY) = 0 HADR peer window duration (seconds) (HADR_PEER_WINDOW) = 0 HADR SSL certificate label (HADR_SSL_LABEL) = HADR SSL Hostname Validation (HADR_SSL_HOST_VAL) = OFF

Para verificar se a configuração está ativadadb2-ec2, execute o seguinte comando:

db2 get db cfg for sample|grep HADR HADR database role = STANDBY HADR local host name (HADR_LOCAL_HOST) = db2-ec2 HADR local service name (HADR_LOCAL_SVC) = 50012 HADR remote host name (HADR_REMOTE_HOST) = db2-server1 HADR remote service name (HADR_REMOTE_SVC) = 50010 HADR instance name of remote server (HADR_REMOTE_INST) = db2inst1 HADR timeout value (HADR_TIMEOUT) = 120 HADR target list (HADR_TARGET_LIST) = HADR log write synchronization mode (HADR_SYNCMODE) = SUPERASYNC HADR spool log data limit (4KB) (HADR_SPOOL_LIMIT) = AUTOMATIC(52000) HADR log replay delay (seconds) (HADR_REPLAY_DELAY) = 0 HADR peer window duration (seconds) (HADR_PEER_WINDOW) = 0 HADR SSL certificate label (HADR_SSL_LABEL) = HADR SSL Hostname Validation (HADR_SSL_HOST_VAL) = OFF

Os parâmetros HADR_LOCAL_HOST, HADR_LOCAL_SVC, HADR_REMOTE_HOST, e HADR_REMOTE_SVC indicam uma configuração de HADR primária e uma de espera.

DBA

Inicie a instância Db2 HADR.

Inicie primeiro a instância Db2 HADR no servidor em espera: db2-ec2

db2 start hadr on db sample as standby DB20000I The START HADR ON DATABASE command completed successfully.

Inicie o Db2 HADR no servidor primário (de origem): db2-server1

db2 start hadr on db sample as primary DB20000I The START HADR ON DATABASE command completed successfully.

A conexão HADR entre o Db2 on-premises e no Amazon EC2 agora foi estabelecida com sucesso. O servidor primário do Db2 db2-server1 começa a transmitir os registros do log de transações db2-ec2 em tempo real.

DBA
TarefaDescriçãoHabilidades necessárias

Adicione o Db2 no Amazon EC2 como um modo de espera auxiliar.

Se o HADR estiver em execução na instância local do Db2, você poderá adicionar o Db2 no Amazon EC2 como um modo de espera auxiliar usando a execução dos seguintes comandos em: HADR_TARGET_LIST db2-ec2

db2 update db cfg for sample using HADR_LOCAL_HOST db2-ec2 HADR_LOCAL_SVC 50012 HADR_REMOTE_HOST db2-server1 HADR_REMOTE_SVC 50010 HADR_REMOTE_INST db2inst1 HADR_SYNCMODE SUPERASYNC DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. db2 update db cfg for sample using HADR_TARGET_LIST "db2-server1:50010|db2-server2:50011" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.

DBA

Adicione as informações auxiliares de espera aos servidores on-premises.

Atualização de HADR_TARGET_LIST nos dois servidores on-premises (primário e em espera).

db2-server1Ativado, execute o seguinte código:

db2 update db cfg for sample using HADR_TARGET_LIST "db2-server2:50011|db2-ec2:50012" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. SQL1363W One or more of the parameters submitted for immediate modification were not changed dynamically. For these configuration parameters, the database must be shutdown and reactivated before the configuration parameter changes become effective.

db2-server2Ativado, execute o seguinte código:

db2 update db cfg for sample using HADR_TARGET_LIST "db2-server1:50010|db2-ec2:50012" DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully. SQL1363W One or more of the parameters submitted for immediate modification were not changed dynamically. For these configuration parameters, the database must be shutdown and reactivated before the configuration parameter changes become effective.

DBA

Verifique a configuração do HADR.

Verifique os parâmetros do HADR nos servidores Db2 de origem e de destino.

db2-server1Ativado, execute o seguinte código:

db2 get db cfg for sample|grep HADR HADR database role = PRIMARY HADR local host name (HADR_LOCAL_HOST) = db2-server1 HADR local service name (HADR_LOCAL_SVC) = 50010 HADR remote host name (HADR_REMOTE_HOST) = db2-server2 HADR remote service name (HADR_REMOTE_SVC) = 50011 HADR instance name of remote server (HADR_REMOTE_INST) = db2inst1 HADR timeout value (HADR_TIMEOUT) = 120 HADR target list (HADR_TARGET_LIST) = db2-server2:50011|db2-ec2:50012 HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC HADR spool log data limit (4KB) (HADR_SPOOL_LIMIT) = AUTOMATIC(52000) HADR log replay delay (seconds) (HADR_REPLAY_DELAY) = 0 HADR peer window duration (seconds) (HADR_PEER_WINDOW) = 0 HADR SSL certificate label (HADR_SSL_LABEL) = HADR SSL Hostname Validation (HADR_SSL_HOST_VAL) = OFF

db2-server2Ativado, execute o seguinte código:

db2 get db cfg for sample|grep HADR HADR database role = STANDBY HADR local host name (HADR_LOCAL_HOST) = db2-server2 HADR local service name (HADR_LOCAL_SVC) = 50011 HADR remote host name (HADR_REMOTE_HOST) = db2-server1 HADR remote service name (HADR_REMOTE_SVC) = 50010 HADR instance name of remote server (HADR_REMOTE_INST) = db2inst1 HADR timeout value (HADR_TIMEOUT) = 120 HADR target list (HADR_TARGET_LIST) = db2-server1:50010|db2-ec2:50012 HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC HADR spool log data limit (4KB) (HADR_SPOOL_LIMIT) = AUTOMATIC(52000) HADR log replay delay (seconds) (HADR_REPLAY_DELAY) = 0 HADR peer window duration (seconds) (HADR_PEER_WINDOW) = 0 HADR SSL certificate label (HADR_SSL_LABEL) = HADR SSL Hostname Validation (HADR_SSL_HOST_VAL) = OFF

db2-ec2Ativado, execute o seguinte código:

db2 get db cfg for sample|grep HADR HADR database role = STANDBY HADR local host name (HADR_LOCAL_HOST) = db2-ec2 HADR local service name (HADR_LOCAL_SVC) = 50012 HADR remote host name (HADR_REMOTE_HOST) = db2-server1 HADR remote service name (HADR_REMOTE_SVC) = 50010 HADR instance name of remote server (HADR_REMOTE_INST) = db2inst1 HADR timeout value (HADR_TIMEOUT) = 120 HADR target list (HADR_TARGET_LIST) = db2-server1:50010|db2-server2:50011 HADR log write synchronization mode (HADR_SYNCMODE) = SUPERASYNC HADR spool log data limit (4KB) (HADR_SPOOL_LIMIT) = AUTOMATIC(52000) HADR log replay delay (seconds) (HADR_REPLAY_DELAY) = 0 HADR peer window duration (seconds) (HADR_PEER_WINDOW) = 0 HADR SSL certificate label (HADR_SSL_LABEL) = HADR SSL Hostname Validation (HADR_SSL_HOST_VAL) = OFF

Os parâmetros HADR_LOCAL_HOST, HADR_LOCAL_SVC, HADR_REMOTE_HOST, HADR_REMOTE_SVC, e HADR_TARGET_LIST indicam a configuração de um HADR primário e dois em espera.

Pare e inicie o Db2 HADR.

HADR_TARGET_LIST agora está configurado em todos os três servidores. Cada servidor Db2 está ciente dos outros dois. Pare e reinicie o HADR (breve interrupção) para aproveitar a nova configuração.

db2-server1Ativado, execute os seguintes comandos:

db2 stop hadr on db sample db2 deactivate db sample db2 activate db sample

db2-server2Ativado, execute os seguintes comandos:

db2 deactivate db sample db2 start hadr on db sample as standby SQL1766W The command completed successfully

db2-ec2Ativado, execute os seguintes comandos:

db2 start hadr on db sample as standby SQL1766W The command completed successfully

db2-server1Ativado, execute os seguintes comandos:

db2 start hadr on db sample as primary SQL1766W The command completed successfully

A conexão HADR entre o Db2 on-premises e no Amazon EC2 agora foi estabelecida com sucesso. O servidor primário do Db2 db2-server1 começa a transmitir registros de log de transações para db2-server2 e db2-ec2 em tempo real.

DBA
TarefaDescriçãoHabilidades necessárias

Garanta que não haja atraso de HADR no servidor em espera.

Verifique o status do HADR no servidor primário db2-server1. Não se assuste quando HADR_STATE estiver no statusREMOTE_CATCHUP, o que é normal quando HADR_SYNCMODE está definido como SUPERASYNC. O PRIMARY_LOG_TIME e STANDBY_REPLAY_LOG_TIME mostra que eles estão sincronizados:

db2pd -hadr -db sample HADR_ROLE = PRIMARY REPLAY_TYPE = PHYSICAL HADR_SYNCMODE = SUPERASYNC STANDBY_ID = 2 LOG_STREAM_ID = 0 HADR_STATE = REMOTE_CATCHUP ..... PRIMARY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292) STANDBY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292) STANDBY_REPLAY_LOG_TIME = 10/26/2022 02:11:32.000000 (1666750292)
DBA

Execute a aquisição da HADR.

Para concluir a migração, torne db2-ec2 o banco de dados primário executando o comando HADR takeover. Use o comando db2pd para verificar o HADR_ROLE valor:

db2 TAKEOVER HADR ON DATABASE sample DB20000I The TAKEOVER HADR ON DATABASE command completed successfully. db2pd -hadr -db sample Database Member 0 -- Database SAMPLE -- Active -- Up 0 days 00:03:25 -- Date 2022-10-26-02.46.45.048988 HADR_ROLE = PRIMARY REPLAY_TYPE = PHYSICAL

Para concluir a migração para a AWS, aponte as conexões do aplicativo para o Db2 no Amazon EC2.

Solução de problemas

ProblemaSolução

Se você usa o NAT por motivos de firewall e segurança, o host pode ter dois endereços IP (um interno e outro externo), o que pode causar uma falha na verificação do endereço IP do HADR. O START HADR ON DATABASE comando retornará a seguinte mensagem:

HADR_LOCAL_HOST:HADR_LOCAL_SVC (-xx-xx-xx-xx.:50011 (xx.xx.xx.xx:50011)) on remote database is different from HADR_REMOTE_HOST:HADR_REMOTE_SVC (xx-xx-xx-xx.:50011 (x.x.x.x:50011)) on local database.

Para oferecer suporte ao HADR em um ambiente NAT, você pode configurar HADR_LOCAL_HOST com o endereço interno e externo. Por exemplo, se o servidor Db2 tiver o nome interno host1 e o nome externohost1E, HADR_LOCAL_HOST pode ser HADR_LOCAL_HOST: "host1 | host1E".

Recursos relacionados