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
eLOGARCHMETH2
estiverem definidos comoON
.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 deDBADM
para extrair registros de log de transações. Conceda à conta do usuário as seguintes permissões:SYSADM
ouDBADM
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=
em queLSN
especifica um número de sequência de log (LSN) em que você deseja que a replicação seja iniciada. Ou,LSN
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
como1
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çãodb2nodes.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 startna 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 '{"
do JSON.EndpointSetting"
:
"value"
, ...
}'
A tabela a seguir mostra as configurações de endpoint que é possível utilizar com o Db2 LUW como origem.
Nome | Descrição |
---|---|
|
Para replicação contínua (CDC), utilize |
|
Número máximo de bytes por leitura, como um valor NUMBER. O padrão é 64 KB. |
|
Habilita a replicação contínua (CDC) como um valor BOOLEAN. O padrão é true. |
|
Para replicação contínua (CDC), utilize
Para determinar o intervalo de LRI/LSN de um arquivo de log, execute o comando
O resultado desse exemplo é semelhante ao exemplo a seguir.
Nessa saída, o arquivo de log é S0000002.LOG e o valor de LRI StartFromContext é 34 bytes no final do intervalo.
|
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 |