Openflow Connector for Oracle: Manutenção¶
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 as tarefas de manutenção para o Openflow Connector for Oracle, como reinstalar o conector ou definir a posição inicial do redo log.
Essas operações são frequentemente usadas em conjunto com a replicação incremental com instantâneos.
Reinstalação do conector¶
Esta seção apresenta instruções de como reinstalar o conector e continuar replicando dados das mesmas tabelas sem precisar criar um instantâneo delas novamente. Ela aborda situações em que o novo conector é instalado no mesmo tempo de execução e também movido para um novo tempo de execução.
Aviso
Para que o conector continue replicando a partir da mesma posição do fluxo CDC em que parou antes da reinstalação, o banco de dados de origem deve reter os redo logs arquivados por tempo suficiente para abranger o período depois que o conector anterior foi interrompido e antes de o novo conector ser iniciado. Certifique-se de que o período de retenção de redo logs arquivados do banco de dados Oracle seja alto o suficiente e mantenha o tempo de reinstalação no mínimo.
Normalmente, um período de retenção de 24 horas é suficiente; no entanto, tempos mais longos podem ser apropriados para garantir o tempo de reinstalação. Para obter mais informações sobre como configurar a retenção de redo logs arquivados, consulte Openflow Connector for Oracle: configurar o banco de dados Oracle.
Pré-requisitos¶
Revise e anote os valores de contexto dos parâmetros do conector. Se você estiver reinstalando o conector no mesmo tempo de execução, poderá reutilizar o contexto existente. Se a nova instância estiver localizada em um tempo de execução diferente, você deverá inserir novamente todos os parâmetros.
Finalize o processamento de todas as FlowFiles em andamento no conector existente e pare o conector.
Faça login no Snowsight.
No menu de navegação, selecione Ingestion » Openflow.
Selecione Launch Openflow.
No painel Openflow, selecione a guia Runtimes.
Selecione o tempo de execução que contém o conector.
Selecione o conector.
Pare o processador mais alto Set Tables for Replication no grupo Snapshot Load.
Pare a ação Read Oracle CDC Stream do processador mais alto no grupo Incremental Load.
Se você alterou o valor do parâmetro Merge Task Schedule CRON, reverta-o para
* * * * * ?; caso contrário, as filas não serão esvaziadas até a próxima execução agendada.Aguarde até que todas as FlowFiles no conector sejam processadas e as filas estejam vazias. Quando todos os FlowFiles tiverem sido processados, o valor de Queued no grupo de processadores do conector se tornará zero. Se algum item permanecer nas filas do conector original, poderão ocorrer lacunas de dados quando o novo conector for iniciado.
Pare todos os processadores e os serviços do controlador no conector.
Cuidado
O conector existente pode permanecer no tempo de execução e não interferir na nova instância, desde que permaneça parado.
Crie uma nova instância do conector. Se você estiver usando o mesmo tempo de execução do conector original, poderá manter os contextos de parâmetros existentes e reutilizar as configurações.
Se você estiver instalando em um tempo de execução diferente ou tiver excluído os contextos de parâmetros anteriores, insira as definições de configuração nos novos contextos de parâmetros, incluindo os nomes das tabelas e padrões, conforme descrito em Instalação e configuração do Openflow Connector for Oracle.
Navegue até o contexto de
Oracle Ingestion Parameterse defina os seguintes parâmetros:Ajuste o parâmetro
Ingestion Typeparaincremental. Para obter mais informações sobre as preocupações, consulte Habilitar a replicação incremental sem instantâneos em um conector existente.Ajuste o parâmetro
Starting Redo Log PositionparaEarliest. Para obter mais informações e saber sobre as possíveis preocupações, consulte Alterar o servidor de saída XStream.
Inicie o novo conector.
Notas de uso¶
O novo conector usa as tabelas de destino existentes criadas pelo conector original, mas o conector cria novas tabelas de diário.
Alterar o servidor de saída XStream¶
O conector atualiza regularmente o servidor XStream com a posição mais recente do SCN que ele processou. Se o conector for reinstalado e se conectar ao mesmo servidor XStream de saída, ele retomará a leitura a partir da posição do SCN em que parou. Este número SCN pode ser verificado com:
SELECT PROCESSED_LOW_SCN
FROM DBA_XSTREAM_OUTBOUND_PROGRESS
WHERE SERVER_NAME = 'XOUT1';
Se você quiser reler os dados de uma posição anterior, deverá primeiro alterar o SCN inicial do servidor XStream:
BEGIN
DBMS_XSTREAM_ADM.ALTER_OUTBOUND(
server_name => 'XOUT1',
start_scn => <start_scn>
);
END;
/
O valor do <start_scn> deve ser um SCN válido dentro do intervalo de redo logs disponíveis. O SCN mais baixo para o qual é possível redefinir a posição inicial pode ser verificado com:
SELECT REQUIRED_CHECKPOINT_SCN
FROM DBA_CAPTURE
WHERE CLIENT_NAME = 'XOUT1';
Este é o SCN mais baixo para o qual o processo de captura requer as informações de redo (refazer).
Especificar o carregamento a partir da posição do XStream¶
O conector Openflow Connector for Oracle permite que você selecione a posição inicial em que os redo logs Oracle são lidos. Por padrão, o conector lê a partir da última posição disponível. Como alternativa, você pode escolher a posição mais antiga disponível na instância de origem. É comum começar da posição mais antiga ao reinstalar o conector. Isso permite que a nova instância se atualize e continue replicando as tabelas existentes sem precisar tirar instantâneos de cada uma novamente.
Nota
Alternar um conector em execução da posição mais recente para a mais antiga faz com que todos os redo logs disponíveis sejam lidos, processados e aplicados novamente à tabela de destino.
Aviso
Enquanto os redo logs estão sendo relidos, as colunas e os dados nas tabelas de destino afetadas podem ficar fora de sincronia com as respectivas fontes até que todos os eventos tenham sido reprocessados e mesclados.
Os parâmetros a seguir estão disponíveis no contexto Ingestion Parameters:
Parâmetro |
Descrição |
|---|---|
Posição inicial do XStream |
|
Releitura de tabelas no estado |
|
Para determinar se o conector terminou de reler os redo logs:
Navegue até a tela do Openflow.
Abra o grupo de processos Incremental Load.
Clique com o botão direito do mouse na ação Read Oracle CDC Stream nomeada do processador mais alto e selecione View state.
Compare as entradas de estado:
lcr.position.rewind: a última posição que o processador leu antes do início da releitura dos redo logs.
lcr.position.last: a última posição atual lida pelo processador. Desde que esse valor seja menor que o valor de retrocesso acima, o processador ainda estará relendo os redo logs.
Notas de uso¶
Depois que um conector em execução for alternado para ler a partir da posição mais antiga e começar a ser executado, o processo não poderá ser reconfigurado ou cancelado, e continuará até que a posição de leitura atual atinja a posição em que estava antes de começar.
Alternar para a posição mais antiga em um conector em execução, para quaisquer tabelas que forem reprocessadas, concluirá seus diários existentes e criará novas tabelas de diário.
Se o redo log contiver eventos de uma tabela anterior que foi descartada e recriada no banco de dados de origem, a releitura do fluxo reprocessará todos os eventos no destino atual. O conector não distingue entre uma tabela de origem anterior e atual se elas compartilham o mesmo nome.