Habilite o arquivamento de DB2 logs diretamente no Amazon S3 em um banco de dados IBM Db2 - 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á.

Habilite o arquivamento de DB2 logs diretamente no Amazon S3 em um banco de dados IBM Db2

Ambarish Satarkar, Amazon Web Services

Resumo

Este padrão descreve como usar o Amazon Simple Storage Service (Amazon S3) como armazenamento de catálogo para logs de arquivamento gerados pelo Db2 da IBM, sem utilizar uma área de preparação.

Você pode especificar o armazenamento DB2REMOTO do Amazon S3 para os parâmetros de configuração dos métodos de arquivamento de log logarchmeth1 e logarchmeth2. Você pode usar o parâmetro logarchmeth1 para especificar o destino principal dos logs arquivados com base no caminho de logs atual. Com essa funcionalidade, é possível arquivar e recuperar logs de transações diretamente no Amazon S3, dispensando o uso de uma área de preparação.

Os dados enviados ao Amazon S3 são armazenados em pelo menos três dispositivos dentro de uma mesma Região da AWS. Milhões de clientes, de empresas de todos os portes e setores, usam o Amazon S3 para armazenar backups empresariais, aproveitando a alta disponibilidade, o armazenamento flexível, as políticas de ciclo de vida e os recursos de segurança.

Pré-requisitos e limitações

Pré-requisitos

Limitações

  • Apenas o Db2 11.5.7 ou versões posteriores permitem o arquivamento de logs diretamente para o armazenamento do Amazon S3.

  • Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte AWS Services by Region. Para endpoints específicos, consulte Service endpoints and quotas e clique no link correspondente ao serviço desejado.

  • Em todas as configurações, as seguintes limitações se aplicam ao Amazon S3:

    • AWS Key Management Service (AWS KMS) não é suportado.

    • AWS credenciais baseadas em função AWS Identity and Access Management ((IAM)) ou baseadas em token (AWS Security Token Service (AWS STS)) não são suportadas.

Versões do produto

  • AWS CLI versão 2 ou posterior

  • Db2 da IBM na versão 11.5.7 ou em versões posteriores

  • SUSE Linux Enterprise Server (SLES) do Linux na versão 11 ou em versões posteriores

  • Red Hat Enterprise Linux (RHEL) 6 ou posterior

  • Windows Server 2008 R2, 2012 (R2), 2016 ou 2019

Arquitetura

O diagrama apresentado a seguir ilustra os componentes e o fluxo de trabalho para este padrão.

Fluxo de trabalho para usar o Amazon S3 como armazenamento de catálogo para logs de arquivamento gerados pelo Db2.

A arquitetura do Nuvem AWS inclui o seguinte:

  • Nuvem privada virtual (VPC) — uma seção logicamente isolada da Nuvem AWS qual você lança recursos.

  • Zona de disponibilidade: fornece alta disponibilidade ao executar a workload do Db2 para LUW (Linux, Unix e Windows) em um data center isolado dentro da Região da AWS.

  • Sub-rede pública: fornece acesso por RDP (Remote Desktop Protocol) para administradores e garante conectividade com a internet por meio de um gateway NAT.

  • Sub-rede privada: hospeda o banco de dados Db2 para LUW. A instância do Db2 para LUW é configurada com o parâmetro LOGARCHMETH1. Esse parâmetro grava os arquivos de log de arquivamento do banco de dados diretamente em um caminho do Amazon S3 por meio do endpoint do gateway.

Os itens a seguir Serviços da AWS fornecem suporte:

  • Amazon S3: atua como local de armazenamento durável e escalável para os arquivos de log de arquivamento do Db2.

  • Amazon Elastic File System (Amazon EFS): fornece um sistema de arquivos compartilhado e totalmente gerenciado que o Db2 pode usar para backups do banco de dados e preparação. Além disso, o Db2 pode usar o Amazon EFS como ponto de montagem para arquivos de log antes de arquivá-los no Amazon S3.

  • Amazon CloudWatch — coleta e monitora métricas, registros e eventos do Db2 e das instâncias EC2 subjacentes. Você pode usar CloudWatch para criar alarmes, painéis e respostas automatizadas para problemas de desempenho ou disponibilidade.

Automação e escala

  • Este padrão disponibiliza uma solução totalmente automatizada para armazenar o backup do log de arquivamento do Db2.

  • O mesmo bucket do Amazon S3 pode ser usado para habilitar o arquivamento de logs de diversos bancos de dados do Db2.

Ferramentas

Serviços da AWS

  • CloudWatchA Amazon ajuda você a monitorar as métricas dos seus AWS recursos e dos aplicativos em que você executa AWS em tempo real.

  • AWS Command Line Interface (AWS CLI) é uma ferramenta de código aberto que ajuda você a interagir Serviços da AWS por meio de comandos em seu shell de linha de comando.

  • O Amazon Elastic Compute Cloud (Amazon EC2) fornece capacidade de computação escalável no. Nuvem AWS Você poderá iniciar quantos servidores virtuais precisar e escalá-los na vertical rapidamente.

  • Amazon Elastic File System (Amazon EFS) ajuda você a criar e configurar sistemas de arquivos compartilhados na Nuvem AWS.

  • Centro de Identidade do AWS IAMajuda você a gerenciar centralmente o acesso de login único (SSO) a todos os seus Contas da AWS aplicativos e à nuvem.

  • 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 Amazon Virtual Private Cloud (Amazon VPC) ajuda você a lançar AWS recursos em uma rede virtual que você definiu. Essa rede virtual é semelhante a uma rede tradicional que você operaria no próprio datacenter, com os benefícios de usar a infraestrutura escalável da AWS.

Outras ferramentas

  • libcurl é uma biblioteca gratuita para transferência de URLs no lado do cliente.

  • libxml2 é um analisador XML em C gratuito, acompanhado de um conjunto de ferramentas.

Práticas recomendadas

Épicos

TarefaDescriptionHabilidades necessárias

Configure AWS CLI o.

Para baixar e instalar o AWS CLI, use os seguintes comandos:

i) curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" ii) unzip awscliv2.zip iii) sudo ./aws/install
Administrador da AWS, administrador de sistemas da AWS

Configure o AWS CLI.

Para configurar o AWS CLI, use os seguintes comandos:

$ aws configure AWS Access Key ID [None]:******************************* AWS Secret Access Key [None]: *************************** Default region name [None]: < aws region > Default output format [None]: text
Administrador da AWS, administrador de sistemas da AWS

Crie um usuário do IAM.

Para criar um usuário do IAM que será usado posteriormente para o estabelecimento de conexão entre o banco de dados Db2 e o Amazon S3, use o seguinte comando:

aws iam create-user --user-name <unique username>

Abaixo, apresentamos um exemplo de comando:

aws iam create-user --user-name db_backup_user

Atenção

Este cenário precisa de usuários do IAM com acesso programático e credenciais de longo prazo, o que representa um risco de segurança. Para mitigar esse risco, recomendamos que você conceda a esses usuários apenas as permissões necessárias para a realização da tarefa e que os remova quando não forem mais necessários. As chaves de acesso podem ser atualizadas, se necessário. Para obter mais informações, consulte AWS security credentials e Gerenciar chaves de acesso para usuários do IAM na documentação do IAM.

Administrador de sistemas AWS

Crie um bucket do Amazon S3.

Para criar um bucket do Amazon S3 para armazenar o backup do banco de dados, use o seguinte comando:

aws s3api create-bucket --bucket <unique bucket name> --region <aws region>

Veja a seguir um exemplo de comando :

aws s3api create-bucket --bucket myfirstbucket --region af-south-1

Administrador de sistemas AWS

Autorize o usuário do IAM.

Para conceder ao usuário do IAM recém-criado permissões no Amazon S3, use as seguintes etapas:

  1. Para gerar um novo arquivo de política do IAM db2bucket.json para o bucket do Amazon S3, use o seguinte comando:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ListObjectsInBucket", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::myfirstbucket" ] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::myfirstbucket/*" ] } ] }
  2. Crie uma política do IAM com base no arquivo db2bucket.json. A saída em JSON apresenta o nome do recurso da Amazon (ARN) da política: "Arn": "arn:aws:iam::111122223333:policy/db2s3policy".

    aws iam create-policy \ --policy-name db2s3policy \ --policy-document file://db2bucket.json
  3. Anexe a política do IAM ao usuário do IAM com o ARN da política.

    aws iam attach-user-policy --user-name db_backup_user --policy-arn "arn:aws:iam::111122223333:policy/db2s3policy"
Administrador da AWS, administrador de sistemas da AWS

Crie uma chave de acesso

Para gerar uma chave de acesso para acessar programaticamente o Amazon S3 a partir da instância, use DB2 o seguinte comando:

aws iam create-access-key --user-name <username>

Abaixo, apresentamos um exemplo de comando:

aws iam create-access-key --user-name db_backup_user

Atenção

Este cenário precisa de usuários do IAM com acesso programático e credenciais de longo prazo, o que representa um risco de segurança. Para mitigar esse risco, recomendamos que você conceda a esses usuários apenas as permissões necessárias para a realização da tarefa e que os remova quando não forem mais necessários. As chaves de acesso podem ser atualizadas, se necessário. Para obter mais informações, consulte AWS security credentials e Gerenciar chaves de acesso para usuários do IAM na documentação do IAM.

Administrador de sistemas AWS

Crie um keystore no formato PKCS.

Para criar um keystore no formato PKCS para armazenar a chave e gerar uma chave de acesso secreta para transferir dados para o Amazon S3, use o seguinte comando:

gsk8capicmd_64 -keydb -create -db "/db2/db2<sid>/.keystore/db6-s3.p12" -pw "<password>" -type pkcs12 -stash
Administrador de sistemas AWS

Configure DB2 para usar o keystore.

DB2 Para configurar o uso do keystore com os keystore_type parâmetros keystore_location e, use os seguintes comandos:

db2 "update dbm cfg using keystore_location /db2/db2<sid>/.keystore/db6-s3.p12 keystore_type pkcs12"
Administrador de sistemas AWS

Crie um alias DB2 de acesso ao armazenamento.

Um alias de acesso ao armazenamento especifica qual bucket do Amazon S3 será usado. Além disso, o alias fornece os detalhes da conexão, como o nome de usuário e a senha, que são armazenados no keystore local em formato criptografado. Para obter mais informações, consulte CATALOG STORAGE ACCESS command na documentação do Db2 da IBM.

Para criar um alias de acesso ao armazenamento, use a seguinte sintaxe:

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

A seguir, apresentamos um exemplo:

db2 "catalog storage access alias DB2BKPS3 vendor S3 server s3.us-west-2.amazonaws.com user '*******************' password '*********************' container 'myfirstbucket'"
Administrador de sistemas AWS
TarefaDescriptionHabilidades necessárias

Atualize a localização de LOGARCHMETH1.

Para usar o alias de acesso ao armazenamento definido anteriormente, atualize os parâmetros de banco de dados LOGARCHMETH1 usando o seguinte comando:

db2 update db cfg for <DBNAME> using LOGARCHMETH1 'DB2REMOTE://<storage_alias_name>//<sub folder>'

Para separar os logs de outros arquivos, especifique um subdiretório ou prefixo do bucket do Amazon S3, chamado TESTDB_LOGS, no qual os logs serão salvos dentro do bucket do S3.

A seguir, apresentamos um exemplo:

db2 update db cfg for ABC using LOGARCHMETH1 'DB2REMOTE://DB2BKPS3//TESTDB_LOGS/'

Você deve ver a seguinte mensagem: DB20000I The UPDATE DATABASE CONFIGURATION command completed successfully.

Administrador de sistemas AWS

Reiniciar DB2.

Reinicie a DB2 instância depois de reconfigurá-la para arquivamento de registros.

No entanto, se o LOGARCHMETH1 estava previamente configurado para qualquer local do sistema de arquivos, não é necessário realizar a reinicialização.

Administrador da AWS, administrador de sistemas da AWS
TarefaDescriptionHabilidades necessárias

Verifique o log de arquivamento no Amazon S3.

Nesse momento, o banco de dados está totalmente configurado para arquivar os logs de transação diretamente no armazenamento do Amazon S3. Para confirmar a configuração, comece a executar atividades transacionais no banco de dados para iniciar o consumo (e o arquivamento) do espaço de logs. Em seguida, verifique os logs de arquivamento no Amazon S3.

Administrador da AWS, administrador de sistemas da AWS

Verifique a configuração do log de arquivamento em db2diag.log.

Depois de verificar o log de arquivamento no Amazon S3, procure a seguinte mensagem no registro de DB2 diagnóstico: db2diag.log

MESSAGE : ADM1846I  Completed archive for log file "S0000079.LOG" to Completed archive for log file S0000080.LOG to DB2REMOTE://<AWS S3 Bucket Name>/<SID>/log1/db2<sid>/<SID>/NODE0000/LOGSTREAM0000/C0000001/ from /db2/<SID>/log_dir/NODE0000/LOGSTREAM0000/. MESSAGE : ADM1846I  Completed archive for log file "S0000080.LOG" to Completed archive for log file S0000081.LOG to DB2REMOTE://<AWS S3 Bucket Name> /<SID>/log1/db2<sid>/<SID>/NODE0000/LOGSTREAM0000/C0000001/ from /db2/<SID>/log_dir/NODE0000/LOGSTREAM0000/.

Essa mensagem confirma que os arquivos de log de DB2 transações fechadas estão sendo arquivados no armazenamento (remoto) do Amazon S3.

Administrador de sistemas AWS

Recursos relacionados

AWS documentação de serviço

Recursos da IBM