Utilizar o IBM Db2 para Linux, Unix e o banco de dados do Amazon RDS (Db2 LUW) como origem para o AWS DMS - AWS Database Migration Service

Utilizar o IBM Db2 para Linux, Unix e o banco de dados do Amazon RDS (Db2 LUW) como origem para o AWS DMS

É possível migrar os dados de um banco de dados IBM Db2 para Linux, Unix, Windows e Amazon RDS (Db2 LUW) para qualquer banco de dados de destino compatível utilizando o AWS Database Migration Service (AWS DMS).

Para obter informações sobre as versões do Db2 no Linux, Unix, Windows e RDS compatíveis como uma origem do AWS DMS, consulte Origens do AWS DMS.

É possível utilizar SSL para criptografar conexões entre o endpoint do Db2 LUW e a instância de replicação. Para obter mais informações sobre a utilização de SSL com um endpoint do Db2 LUW, consulte Usar SSL com o AWS Database Migration Service.

Pré-requisitos ao utilizar o Db2 LUW como origem do AWS DMS

Os pré-requisitos a seguir são necessários antes de utilizar um banco de dados Db2 LUW como origem.

Para habilitar a replicação contínua, também chamada de captura de dados de alteração (CDC), faça o seguinte:

  • Defina o banco de dados para ser recuperável, que o AWS DMS exige para captura de alterações. Um banco de dados será recuperável se um ou os dois parâmetros de configuração de banco de dados LOGARCHMETH1 e LOGARCHMETH2 estiverem definidos como ON.

    Se o banco de dados for recuperável, o AWS DMS poderá acessar o ARCHIVE LOG do Db2, se necessário.

  • Verifique se os logs de transações do DB2 estão disponíveis, com um período de retenção suficiente para serem processados pelo AWS DMS.

  • O DB2 requer autorização de SYSADM ou de DBADM para extrair registros de log de transações. Conceda à conta do usuário as seguintes permissões:

    • SYSADM ou DBADM

    • DATAACCESS

    nota

    Para tarefas somente de carga máxima, a conta de usuário do DMS precisa da permissão DATAACCESS.

  • Ao utilizar o IBM DB2 for LUW versão 9.7 como origem, defina o atributo de conexão adicional (ECA), CurrentLSN, da seguinte forma:

    CurrentLSN=LSN em que LSN especifica um número de sequência de log (LSN) em que você deseja que a replicação seja iniciada. Ou, CurrentLSN=scan.

  • Ao usar o Amazon RDS para Db2 LUW como origem, garanta que os logs de arquivamento estejam disponíveis no AWS DMS. Como os bancos de dados Db2 gerenciados pela AWS purgam os logs de arquivamento assim que possível, é necessário aumentar o período em que os logs permanecem disponíveis. Por exemplo, para aumentar a retenção de log para 24 horas, execute o comando a seguir:

    db2 "call rdsadmin.set_archive_log_retention( ?, 'TESTDB', '24')"

    Para ter mais informações sobre os procedimentos do Amazon RDS para Db2 LUW, consulte Referência de procedimentos armazenados do Amazon RDS para Db2 no Guia do usuário do Amazon Relational Database Service.

Limitações de uso do Db2 LUW como origem do AWS DMS

O AWS DMS não é compatível com bancos de dados em clusters. No entanto, é possível definir um Db2 LUW separado para cada um dos endpoints de um cluster. Por exemplo, é possível criar uma tarefa de migração de carga máxima com qualquer um dos nós no cluster e criar tarefas separadas em cada nó.

O AWS DMS não é compatível com o tipo de dados BOOLEAN no banco de dados Db2 LUW de origem.

Ao utilizar a replicação contínua (CDC), aplicam-se as seguintes limitações:

  • Quando uma tabela com várias partições é truncada, o número de eventos de DDL mostrado no console do AWS DMS é igual ao número de partições. Isso ocorre porque o Db2 LUW registra um DDL separado para cada partição.

  • As ações de DDL a seguir não são compatíveis em tabelas particionadas:

    • ALTER TABLE ADD PARTITION

    • ALTER TABLE DETACH PARTITION

    • ALTER TABLE ATTACH PARTITION

  • O AWS DMS não é compatível com uma migração de replicação contínua de uma instância em espera de recuperação de desastres de alta disponibilidade (HADR) do DB2. O modo de espera é inacessível.

  • O tipo de dados DECFLOAT não é compatível. Consequentemente, alterações nas colunas DECFLOAT são ignoradas durante a replicação contínua.

  • A instrução RENAME COLUMN não é compatível.

  • Ao realizar atualizações nas tabelas de Multi-Dimensional Clustering (MDC - Clusterização multi-dimensional), cada atualização é mostrada no console do AWS DMS como INSERT + DELETE.

  • Quando a configuração da tarefa Incluir colunas LOB na replicação não está ativada, qualquer tabela que tenha com colunas LOB é suspensa durante a replicação contínua.

  • Nas versões 10.5 e superior do Db2 LUW, as colunas de strings de comprimento variável com dados armazenados fora da linha são ignoradas. Essa limitação se aplica somente a tabelas criadas com tamanho de linha estendido para colunas com tipos de dados, como VARCHAR e VARGRAPHIC. Para contornar essa limitação, mova a tabela para um espaço de tabela com um tamanho de página maior. Para obter mais informações, consulte O que posso fazer se eu quiser alterar o tamanho da página dos espaços de tabela do DB2.

  • Para a replicação contínua, o DMS não é compatível com a migração de dados carregados em nível da página pelo utilitário DB2 LOAD. Em vez disso, utilize o utilitário IMPORT que utiliza inserções SQL. Para obter mais informações, consulte diferenças entre os utilitários de importação e de carregamento.

  • Enquanto uma tarefa de replicação está em execução, o DMS captura DDLs CREATE TABLE somente se as tabelas tiverem sido criadas com o atributo DATA CAPTURE CHANGE.

  • O DMS apresenta as seguintes limitações ao usar o Db2 Database Partition Feature (DPF):

    • O DMS não pode coordenar transações entre nós do Db2 em um ambiente do DPF. Isso se deve às restrições na interface da API IBM DB2READLOG. No DPF, as transações podem abranger vários nós do Db2, dependendo de como o DB2 particiona os dados. Como resultado, sua solução DMS deve capturar transações de cada nó do Db2 de forma independente.

    • O DMS pode capturar transações locais de cada nó do Db2 no cluster do DPF configurando connectNode como 1 em vários endpoints de origem do DMS. Essa configuração corresponde aos números de nós lógicos definidos no arquivo de configuração db2nodes.cfg do servidor do DB2.

    • As transações locais em nós individuais do Db2 podem ser partes de uma transação global maior. O DMS aplica cada transação local de forma independente no destino, sem coordenação com transações em outros nós do Db2. Esse processamento independente pode levar a complicações, em especial quando as linhas são movidas entre as partições.

    • Quando o DMS faz replicações de vários nós do Db2, não há garantia da ordem correta das operações no destino, pois o DMS aplica as operações de forma independente para cada nó do Db2. Você deve garantir que a captura de transações locais de forma independente de cada nó do Db2 funcione para seu caso de uso específico.

    • Ao migrar de um ambiente do DPF, recomendamos primeiro executar uma tarefa de carga máxima sem eventos em cache e, em seguida, executar tarefas somente de CDC. Recomendamos executar uma tarefa por nó do Db2, começando pelo carimbo de data/hora de início da carga máxima ou pelo LRI (identificador de registro de log) definido usando a configuração StartFromContext do endpoint. Para ter informações sobre como determinar o ponto de partida da replicação, consulte Finding the LSN or LRI value for replication start na documentação de suporte do IBM.

  • Para replicação contínua (CDC), se você planejar iniciar a replicação a partir de um timestamp específico, defina o atributo de conexão StartFromContext com o timestamp requerido.

  • Atualmente, o DMS não é compatível com o Db2 pureScale Feature, uma extensão do DB2 LUW que é possível utilizar para escalar a solução de banco de dados.

Configurações de endpoints ao utilizar o Db2 LUW como origem do AWS DMS

É possível utilizar as configurações de endpoint para configurar o banco de dados de destino do Db2 LUW de forma semelhante à utilização de atributos de conexão adicional. Você especifica as configurações ao criar o endpoint de origem utilizando o console do AWS DMS ou o comando create-endpoint na AWS CLI, com a sintaxe --ibm-db2-settings '{"EndpointSetting": "value", ...}' do JSON.

A tabela a seguir mostra as configurações de endpoint que é possível utilizar com o Db2 LUW como origem.

Nome Descrição

CurrentLSN

Para replicação contínua (CDC), utilize CurrentLSN para especificar um número de sequência de log (LSN) em que você deseja que a replicação seja iniciada.

MaxKBytesPerRead

Número máximo de bytes por leitura, como um valor NUMBER. O padrão é 64 KB.

SetDataCaptureChanges

Habilita a replicação contínua (CDC) como um valor BOOLEAN. O padrão é true.

StartFromContext

Para replicação contínua (CDC), utilize StartFromContext para especificar o limite inferior de um log em que iniciar a replicação. StartFromContext aceita diferentes formas de valores. Os valores válidos são:

  • timestamp (UTC). Por exemplo:

    '{"StartFromContext": "timestamp:2021-09-21T13:00:00"}'
  • NOW

    Para o IBM DB2 LUW versão 10.5 e superior, o NOW combinado com a verificação CurrentLSN: inicia a tarefa a partir do LSO mais recente. Por exemplo:

    '{"CurrentLSN": "scan", "StartFromContext": "NOW"}'
  • Um LRI específico. Por exemplo:

    '{"StartFromContext": "0100000000000022CC000000000004FB13"}'

Para determinar o intervalo de LRI/LSN de um arquivo de log, execute o comando db2flsn conforme mostrado no exemplo a seguir.

db2flsn -db SAMPLE -lrirange 2

O resultado desse exemplo é semelhante ao exemplo a seguir.

S0000002.LOG: has LRI range 00000000000000010000000000002254000000000004F9A6 to 000000000000000100000000000022CC000000000004FB13

Nessa saída, o arquivo de log é S0000002.LOG e o valor de LRI StartFromContext é 34 bytes no final do intervalo.

0100000000000022CC000000000004FB13

Tipos de dados de origem para IBM Db2 LUW

A migração de dados que utiliza o Db2 LUW como origem no AWS DMS é compatível com a maioria dos tipos de dados do Db2 LUW. A tabela a seguir mostra os tipos de dados de origem do Db2 LUW com suporte no AWS DMS e o mapeamento padrão relativo aos tipos de dados do AWS DMS. Para obter mais informações sobre os tipos de dados do Db2 LUW, consulte a documentação do Db2 LUW.

Para obter informações sobre como visualizar o tipo de dados mapeado no destino, consulte a seção relativa ao endpoint de destino que você está usando.

Para obter mais informações sobre os tipos de dados do AWS DMS, consulte Tipos de dados do AWS Database Migration Service.

Tipos de dados do Db2 LUW

Tipos de dados do AWS DMS

INTEGER

INT4

SMALLINT

INT2

BIGINT

INT8

DECIMAL (p,s)

NUMERIC (p,s)

FLOAT

REAL8

DOUBLE

REAL8

REAL

REAL4

DECFLOAT (p)

Se a precisão for 16, REAL8; se a precisão for 34, STRING

GRAPHIC (n)

WSTRING, para strings de gráficos de comprimento fixo de caracteres de byte duplo com um comprimento maior que 0 e menor ou igual a 127

VARGRAPHIC (n)

WSTRING, para strings de gráficos de comprimento variável com um comprimento maior que 0 e menor ou igual a 16.352 caracteres de byte duplo.

LONG VARGRAPHIC (n)

CLOB, para strings de gráficos de comprimento variável com um comprimento maior que 0 e menor ou igual a 16.352 caracteres de byte duplo.

CHARACTER (n)

STRING, para strings de comprimento fixo de caracteres de byte duplo com um comprimento maior que 0 e menor ou igual a 255

VARCHAR (n)

STRING, para strings de comprimento variável de caracteres de byte duplo com um comprimento maior que 0 e menor ou igual a 32.704

LONG VARCHAR (n)

CLOB, para strings de comprimento variável de caracteres de byte duplo com um comprimento maior que 0 e menor ou igual a 32.704

CHAR (n) FOR BIT DATA

BYTES

VARCHAR (n) FOR BIT DATA

BYTES

LONG VARCHAR FOR BIT DATA

BYTES

DATA

DATA

TIME

TIME

TIMESTAMP

DATETIME

BLOB (n)

BLOB

O comprimento máximo é 2.147.483.647 bytes

CLOB (n)

CLOB

O comprimento máximo é 2.147.483.647 bytes

DBCLOB (n)

CLOB

O comprimento máximo é 1.073.741.824 caracteres de byte duplo

XML

CLOB