Solução de problemas do Oracle GoldenGate
Esta seção explica os problemas mais comuns ao usar o Oracle GoldenGate com o Amazon RDS para Oracle.
Tópicos
Erro ao abrir um redo log online
Configure os bancos de dados para reter os redo logs arquivados. Considere as seguintes diretrizes:
-
Especifique a duração da retenção de log em horas. O valor mínimo é uma hora.
-
Defina a duração para exceder qualquer tempo de inatividade possível, qualquer período de comunicação possível e qualquer período de problemas de rede possível com a instância de banco de dados de origem. Essa duração permite que o Oracle GoldenGate recupere logs da instância de banco de dados de origem de acordo com a necessidade.
-
Verifique se você tem armazenamento suficiente na instância para os arquivos.
Se você não tiver a retenção de logs ativada, ou se o valor de retenção for muito pequeno, receberá uma mensagem de erro semelhante à seguinte.
2022-03-06 06:17:27 ERROR OGG-00446 error 2 (No such file or directory) opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 Not able to establish initial position for begin time 2022-03-06 06:16:55.
O Oracle GoldenGate parece estar devidamente configurado, mas a replicação não está funcionando
Para tabelas pré-existentes, você precisa especificar o SCN do qual o Oracle GoldenGate trabalha.
Como corrigir esse problema
-
Faça login no banco de dados de origem e execute a interface de linha de comando do Oracle GoldenGate (
ggsci
). O exemplo a seguir mostra o formato para login.dblogin userid oggadm1@OGGSOURCE
-
Usando a linha de comando
ggsci
, configure o SCN inicial para o processoEXTRACT
. O exemplo a seguir define o SCN como 223274 paraEXTRACT
.ALTER EXTRACT EABC SCN 223274 start EABC
-
Faça login no banco de dados de destino. O exemplo a seguir mostra o formato para login.
dblogin userid oggadm1@OGGTARGET
-
Usando a linha de comando
ggsci
, configure o SCN inicial para o processoREPLICAT
. O exemplo a seguir define o SCN como 223274 paraREPLICAT
.start RABC atcsn 223274
REPLICAT integrado lento devido a consulta no SYS. “_DBA_APPLY_CDR_INFO”
O Oracle GoldenGate Conflict Detection and Resolution (CDR) fornece rotinas básicas de resolução de conflitos. Por exemplo, o CDR pode resolver um conflito exclusivo para uma instrução INSERT
.
Quando o CDR resolve um conflito, ele pode inserir registros na tabela de exceção _DBA_APPLY_CDR_INFO
temporariamente. O REPLICAT
integrado exclui esses registros posteriormente. Em um cenário raro, o REPLICAT
integrado pode processar um grande número de colisões, mas um novo REPLICAT
integrado não o substitui. Em vez de serem removidas, as linhas _DBA_APPLY_CDR_INFO
existentes ficam órfãs. Todos os novos processos REPLICAT
integrados abrandam porque estão consultando linhas órfãs no _DBA_APPLY_CDR_INFO
.
Para remover todas as linhas de _DBA_APPLY_CDR_INFO
, use o procedimento rdsadmin.rdsadmin_util.truncate_apply$_cdr_info
do Amazon RDS. Este procedimento é lançado como parte da versão de outubro de 2020 e atualização de patch. O procedimento está disponível nas seguintes versões do banco de dados:
-
Version 21.0.0.0.ru-2022-01.rur-2022-01.r1 e posterior
-
Version 19.0.0.0.ru-2020-10.rur-2020-10.r1 e posterior
O exemplo a seguir trunca a tabela _DBA_APPLY_CDR_INFO
.
SET SERVEROUTPUT ON SIZE 2000 EXEC rdsadmin.rdsadmin_util.truncate_apply$_cdr_info;