Solução de problemas do Openflow Connector for Oracle

Nota

O conector está sujeito aos Termos do conector Snowflake.

Nota

O Openflow Connector for Oracle também está sujeito a termos de serviço adicionais além dos termos de serviço padrão do conector. Para obter mais informações, consulte o Adendo do Openflow Connector para Oracle.

Este tópico descreve como solucionar problemas comuns do Openflow Connector for Oracle.

Uma tabela foi adicionada à replicação, mas não aparece no Snowflake.

O nome totalmente qualificado (fully qualified name, FQN) da tabela pode estar especificado incorretamente na configuração do conector.

Solução

  • Verifique o formato do FQN em Oracle Ingestion Parameters. Ele deve ser <database_name>.<schema_name>.<table_name> (observe o prefixo do banco de dados).

  • Verifique o nome do banco de dados em Oracle Source Parameters » Oracle Connection URL. Embora os FQNs sejam compatíveis com a especificação do nome do banco de dados, atualmente os dados devem residir na mesma instância de banco de dados utilizada para essa conexão.

  • Verifique se você forneceu o nome completo do banco de dados, incluindo o nome do domínio, na configuração do conector. Por exemplo, use MYDB.EXAMPLE.COM em vez de apenas MYDB.

    Para encontrar o nome correto do banco de dados, execute a seguinte consulta em seu banco de dados Oracle:

    SELECT property_value
      FROM database_properties
      WHERE property_name = 'GLOBAL_DB_NAME';
    

    Em geral, property_value é o mesmo que o nome do serviço do banco de dados. No entanto, o nome do banco de dados retornado pode incluir um nome de domínio anexado (por exemplo, para o nome do serviço FOO, a consulta pode retornar FOO.EXAMPLE.COM). Nesse caso, use o nome completo com o domínio (entre aspas duplas, pois contém pontos).

Nenhuma alteração na carga incremental

A carga incremental não está capturando nem aplicando alterações do banco de dados de origem.

Solução

Execute a verificação do processador Read Oracle CDC Stream:

  1. No tempo de execução do OpenFlow, clique duas vezes no fluxo Oracle.

  2. Clique duas vezes no grupo de processos chamado Incremental Load.

  3. Localize o processador Read Oracle CDC Stream.

    1. Se ele estiver em execução, clique com o botão direito do mouse e selecione Stop. O processador deve ser interrompido antes que você possa verificar a configuração dele.

  4. Clique com o botão direito do mouse em Read Oracle CDC Stream novamente e selecione Configure.

  5. Selecione a guia Properties.

  6. Selecione o ícone de marca de seleção Verification no canto superior direito.

  7. Na janela pop-up que aparece, selecione Verify no canto inferior direito.

    Os resultados do procedimento de verificação aparecem abaixo. O procedimento valida a conectividade com o banco de dados e verifica o status dos componentes necessários para o funcionamento da carga incremental.

Se alguma das etapas de verificação falhar, visualize a mensagem de erro, corrija o problema e execute a verificação novamente. As seções a seguir descrevem problemas e soluções específicos.

Status de captura diferente de ENABLED

O status do processo de captura é DISABLED ou ABORTED. Um status DISABLED significa que o processo de captura foi interrompido manualmente (com DBMS_XSTREAM_ADM.STOP_OUTBOUND) ou o banco de dados foi reiniciado. Um status ABORTED significa que a captura encontrou um erro, geralmente porque os logs de repetição necessários para o processo de captura foram excluídos. Você pode confirmar isso verificando a posição do número de alteração do sistema (system change number, SCN) ou consultando o status da captura.

Solução

Inicie o servidor de saída:

BEGIN
   DBMS_XSTREAM_ADM.START_OUTBOUND('XOUT1');
END;
/

Status UNKNOWN da sessão LogMiner

O status LogMiner é UNKNOWN, o que significa que os logs arquivados dos quais LogMiner dependia foram excluídos. Você pode confirmar isso consultando V$ARCHIVED_LOG e verificando as linhas em que a coluna DELETED tem o valor YES.

Solução

Recrie o servidor de saída XStream. Para obter mais informações, consulte Ocorrem problemas com o servidor de saída XStream

Status WAITING FOR REDO da captura do XStream

O status da captura do XStream mostra WAITING FOR REDO: FILE NA, THREAD 1, SEQUENCE 47, SCN 0x0000000000190ac4. Isso significa que LogMiner está aguardando um arquivo de log arquivado que não está disponível porque foi excluído. Você pode confirmar isso consultando V$ARCHIVED_LOG e verificando as linhas em que a coluna DELETED tem o valor YES.

Solução

Recrie o servidor de saída XStream. Para obter mais informações, consulte Ocorrem problemas com o servidor de saída XStream

As regras de captura do XStream estão incorretas

O XStream não está configurado para capturar alterações das tabelas ou esquemas esperados.

Solução

Verifique as regras de captura executando a seguinte consulta:

SELECT STREAMS_NAME, SCHEMA_NAME, OBJECT_NAME, RULE_TYPE
FROM DBA_XSTREAM_RULES
WHERE STREAMS_NAME = 'XOUT1';

Você também pode consultar o status da captura e a mensagem de erro diretamente:

SELECT CLIENT_NAME, STATUS, ERROR_MESSAGE FROM ALL_CAPTURE;

Esta consulta retorna:

  • CLIENT_NAME: o nome do cliente XStream (servidor de saída).

  • STATUS: o status atual do processo de captura (por exemplo, ENABLED, DISABLED, ABORTED).

  • ERROR_MESSAGE: qualquer mensagem de erro associada ao processo de captura.

Erro ORA-21560: o argumento last_position é nulo, inválido ou está fora do intervalo

O conector tentou se conectar a uma posição SCN para a qual os logs de repetição não estão mais disponíveis.

Solução

Confirme o problema executando a seguinte consulta. O SCN para Last SCN processed by XStream deve ser maior que o menor SCN para o qual existam logs de repetição.

SELECT min(FIRST_CHANGE#) as SCN,
       'Lowest SCN for which redo logs still exist' AS DESCRIPTION
FROM V$ARCHIVED_LOG
WHERE DELETED = 'NO'
UNION ALL
SELECT PROCESSED_LOW_SCN,
       'Last SCN processed by XStream'
FROM DBA_XSTREAM_OUTBOUND_PROGRESS
WHERE SERVER_NAME = 'XOUT1'
ORDER BY SCN;

Para se recuperar desse erro, recrie o servidor de saída XStream. Para obter mais informações, consulte Ocorrem problemas com o servidor de saída XStream

Erro ORA-26701: O processo de fluxos XOUT1 não existe

Não foi possível encontrar o servidor de saída XStream na instância do banco de dados.

Solução

Verifique o seguinte:

  • O nome do banco de dados em Oracle Source Parameters » XStream Out Server URL aponta para a instância do banco de dados com o servidor de saída XStream, e não para um PDB diferente.

  • O XStream foi criado nessa instância e tem o mesmo nome.

Erro ORA-01722: número inválido ao criar o servidor de saída

A execução de DBMS_XSTREAM_ADM.CREATE_OUTBOUND falha com:

ORA-01722: invalid number
ORA-06512: at "SYS.DBMS_LOGREP_UTIL", line 582
ORA-06512: at "SYS.DBMS_LOGREP_UTIL", line 636
ORA-06512: at "SYS.DBMS_XSTREAM_ADM_UTL", line 440
ORA-06512: at "SYS.DBMS_XSTREAM_UTL_IVK", line 2094
ORA-06512: at "SYS.DBMS_XSTREAM_UTL_IVK", line 2302
ORA-06512: at "SYS.DBMS_XSTREAM_ADM", line 44
ORA-06512: at line 8

Esse erro é enganoso. O servidor de saída já existe.

Solução

Nenhuma ação é necessária. Use o servidor de saída existente.

Ocorrem problemas com o servidor de saída XStream

É possível resolver vários problemas, como logs de repetição excluídos ou estado corrompido de LogMiner, recriando o servidor de saída XStream.

Solução

  1. Descarte o servidor de saída existente:

    BEGIN
       DBMS_XSTREAM_ADM.DROP_OUTBOUND('XOUT1');
    END;
    /
    
  2. Crie o servidor de saída novamente. Para obter mais informações, consulte Criar servidor de saída do XStream.