Solução de problemas do Amazon RDS para Db2 - Amazon Relational Database Service

Solução de problemas do Amazon RDS para Db2

O conteúdo a seguir pode ajudar a solucionar problemas que você encontrar com o RDS para Db2.

Para ter mais informações sobre como solucionar problemas gerais do Amazon RDS, consulte Solução de problemas para o Amazon RDS.

Erro de E/S de arquivo

Ao usar o comando LOAD, você pode encontrar um erro de E/S do arquivo. Por exemplo, execute o seguinte comando LOAD:

db2 "call sysproc.admin_cmd('load from "DB2REMOTE://s3test//public/datapump/t6.del" of del lobs from "DB2REMOTE://s3test/public/datapump/" modified by lobsinfile MESSAGES ON SERVER insert INTO RDSDB.t6 nonrecoverable ')"

O comando LOAD exibe a seguinte mensagem:

Result set 1 -------------- ROWS_READ ROWS_SKIPPED ROWS_LOADED ROWS_REJECTED ROWS_DELETED ROWS_COMMITTED ROWS_PARTITIONED NUM_AGENTINFO_ENTRIES MSG_RETRIEVAL MSG_REMOVAL -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - - - - - - - - SELECT SQLCODE, MSG FROM TABLE(SYSPROC.ADMIN_GET_MSGS('1594987316_285548770')) AS MSG CALL SYSPROC.ADMIN_REMOVE_MSGS('1594987316_285548770') 1 record(s) selected. Return Status = 0 SQL20397W Routine "SYSPROC.ADMIN_CMD" execution has completed, but at least one error, "SQL1652", was encountered during the execution. More information is available. SQLSTATE=01H52

Para visualizar a mensagem de erro, execute o comando SQL conforme sugerido na resposta anterior. SELECT SQLCODE, MSG FROM TABLE(SYSPROC.ADMIN_GET_MSGS('1594987316_285548770')) AS MSG exibe a seguinte mensagem:

SQLCODE MSG --------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- SQL2025N An I/O error occurred. Error code “438”. Media on which this error occurred: “DB2REMOTE://s3test//public/datapump/t6.del” SQL3500W The utility is beginning the LOAD phase at time “07/05/2024 21:21:48.082954” SQL1652N File I/O error occurred

Os logs de diagnóstico do Db2 contêm um arquivo de log semelhante ao seguinte:

2024-07-05-21.20.09.440609+000 I1191321E864 LEVEL: Error PID : 2710 TID : 139619509200640 PROC : db2sysc 0 INSTANCE: rdsdb NODE : 000 DB : NTP APPHDL : 0-12180 APPID: xxx.xx.x.xxx.xxxxx.xxxxxxxxxxxx UOWID : 5 ACTID: 1 AUTHID : ADMIN HOSTNAME: ip-xx-xx-x-xx EDUID : 147 EDUNAME: db2lmr 0 FUNCTION: DB2 UDB, oper system services, sqloS3Client_GetObjectInfo, probe:219 MESSAGE : ZRC=0x870F01B6=-2029059658=SQLO_FAILED "An unexpected error is encountered" DATA #1 : String, 29 bytes S3:HeadObject request failed. DATA #2 : signed integer, 4 bytes 99 DATA #3 : String, 0 bytes Object not dumped: Address: 0x00007EFC08A9AE38 Size: 0 Reason: Zero-length data DATA #4 : String, 33 bytes curlCode: 28, Timeout was reached

Esse erro de E/S do arquivo pode se originar de vários cenários diferentes. Por exemplo, a instância do banco de dados do RDS para Db2 e o bucket do Amazon S3 podem não usar a mesma VPC ou estar na mesma Região da AWS. Independentemente do cenário, a solução é a mesma: é necessário criar um endpoint de gateway da VPC e, depois, adicionar regras de saída ao grupo de segurança.

Etapa 1: Criar um endpoint do gateway da VPC para o Amazon S3

Quando você cria pela primeira vez uma instância de banco de dados do RDS para Db2, o Amazon RDS cria a instância de banco de dados com três sub-redes privadas, um grupo de segurança e nenhum acesso público. O grupo de segurança impede que qualquer tráfego do S3 saia da sub-rede privada.

Para permitir o tráfego entre a instância de banco de dados do RDS para Db2 e o S3, é necessário criar um endpoint de gateway que se conecte ao S3. Ao criar o endpoint, selecione a tabela de rotas a ser associada a esse endpoint.

nota

Se você encontrar um erro ao criar o endpoint da VPC que informa que a tabela de rotas selecionada já tem uma rota, escolha uma das seguintes opções:

Tabela de rotas selecionada ao criar o endpoint do gateway da VPC.

Para ter mais informações, consulte Create a gateway endpoint no Guia do usuário da Amazon VPC.

Etapa 2: Adicionar regras de saída ao grupo de segurança

Esta etapa pressupõe que você tenha criado um endpoint de gateway no Etapa 1: Criar um endpoint do gateway da VPC para o Amazon S3. Nesta etapa, você adicionará regras de saída a uma sub-rede privada no grupo de segurança da VPC. Essas regras de saída permitem tráfego HTTP e HTTPS.

Para o valor Destino, abra o menu de contexto (clique com o botão direito do mouse) para Pesquisar e, em Listas de prefixos, selecione o prefixo do endpoint do gateway que você criou. O formato do prefixo é com.amazonaws.Região da AWS.s3, por exemplo, com.amazonaws.us-west-2.s3.

Regras de saída para tráfego HTTP e HTTPS para o S3.

Para ter mais informações, consulte Security group rules no Guia do usuário da Amazon VPC.

Solução de problemas de erros de procedimentos armazenados

Este tópico descreve vários erros exibidos ao chamar procedimentos armazenados e como resolvê-los.

Categoria Erros de procedimentos armazenados

Bancos de dados

erros rdsadmin.restore_database

erros rdsadmin.restore_database

Os seguintes erros podem ocorrer quando você chama o procedimento armazenado rdsadmin.restore_database:

Erro Mensagem de erro

Insufficient disk space

Aborting task. Reason Restoring your database failed because of insufficient disk space. Increase the storage for your DB instance and rerun the rdsadmin.restore_database stored procedure.

Internal error

Caught exception during executing task id 104, Aborting task. Reason Internal Error

Non-fenced routines not allowed

Caught exception during executing task id 2, Aborting task. Reason Non fenced routines are not allowed. Please delete the routines and retry the restore.

Tablespaces not restored

Reason SQL0970N The system attempted to write to a read-only file. Reason SQL2563W The Restore process has completed successfully. However one or more table spaces from the backup were not restored.

Espaço em disco insuficiente

A mensagem de erro a seguir indica que a instância de banco de dados não tem espaço em disco suficiente para restaurar o banco de dados:

Aborting task. Reason Restoring your database failed because of insufficient disk space. Increase the storage for your DB instance and rerun the rdsadmin.restore_database stored procedure.

O espaço livre na instância de banco de dados deve ser mais de duas vezes maior que o tamanho da imagem de backup. Se a imagem de backup estiver compactada, o espaço livre na instância de banco de dados deverá ser mais de três vezes maior que o tamanho da imagem de backup. Para ter mais informações, consulte Aumento da capacidade de armazenamento da instância de banco de dados.

Erro interno

A mensagem de erro a seguir indica que o procedimento armazenado encontrou um erro interno:

Caught exception during executing task id 104, Aborting task. Reason Internal Error

Entrar em contato com o AWS Support.

Rotinas não protegidas não são permitidas

A seguinte mensagem de erro indica que o banco de dados contém rotinas não protegidas:

Caught exception during executing task id 2, Aborting task. Reason Non fenced routines are not allowed. Please delete the routines and retry the restore.

O RDS para Db2 não permite rotinas não protegidas. Remova as rotinas não protegidas do banco de dados de origem e chame rdsadmin.restore_database novamente. Para ter mais informações, consulte Rotinas não protegidas.

Espaços de tabela não restaurados

A seguinte mensagem de erro indica que o RDS para Db2 restaurou com sucesso o banco de dados, mas não conseguiu restaurar um ou mais espaços de tabela:

Reason SQL0970N The system attempted to write to a read-only file. Reason SQL2563W The Restore process has completed successfully. However one or more table spaces from the backup were not restored.

O RDS para Db2 não permite armazenamento não automático. Converta o armazenamento não automático em automático e chame rdsadmin.restore_database novamente. Consulte mais informações em Converting a nonautomatic storage database to use automatic storage na documentação do IBM Db2.

Bancos de dados com armazenamento não automático de SMS exigem restauração manual. Se o seu banco de dados tiver armazenamento não automático de SMS, entre em contato com o AWS Support.

Consulte informações sobre o armazenamento não automático e migrações únicas em Espaços de tabela de armazenamento não automáticos durante a migração.