This post is also available in: English (English)

Olá pessoal!

Espero que estejam bem!

Estou trabalhando num projeto para migrar alguns bancos de dados para Oracle RAC e nós decidimos mover o banco usando DataGuard, já que o Switchover costuma ser bem rápido, a janela de downtime não será longa.

Bom, como parte do processo de criação do Standby/DataGuard, nós iniciamos o duplicate para um dos bancos de dados (54TB).

Como é um ambiente de Pré-Produção e para evitar algum impacto, decidimos usar 6 canais na origem e 6 canais no destino:

connect target sysmigration/password@SOURCE_DB
connect target sysmigration/password@NEW_RAC_DB
run {
allocate auxiliary channel sby1 type disk;
allocate auxiliary channel sby2 type disk;
allocate auxiliary channel sby3 type disk;
allocate auxiliary channel sby4 type disk;
allocate auxiliary channel sby5 type disk;
allocate auxiliary channel sby6 type disk;
allocate channel pmy1 type disk;
allocate channel pmy2 type disk;
allocate channel pmy3 type disk;
allocate channel pmy4 type disk;
allocate channel pmy5 type disk;
allocate channel pmy6 type disk;
duplicate target database for standby from active database;
}

Tudo começou bem, mas, depois de algumas horas, verifiquei que alguns canais quando acabavam a cópia/restore de um datafile, não iniciavam o processo para outro datafile. Ao invés disso, algumas sessões estavam esperando pelo evento  “remote db file read” (ou sql*net vector data to client) com o tempo sempre crescente sem expectativa de redução no novo banco de dados. No banco de dados de origem, o era:  “remote db file write”.

Encontrei uma nota no Metalink (My Oracle Support):

RMAN Hangs When Creating Standby DB As Duplicate From Active Primary (Doc ID 2512075.1)

Para esta nota, a Causa é:

Issue not identified.

Solução é:

Upgrade Linux kernel to latest version resolved the issue.

Neste cliente estamos usando o RHEL 7.5 já que não podemos usar o RHEL 7.6 por uma incompatibilidade do agente de backup deles. Além disso, não tinha como eu fazer alguma pressão no cliente, já que o argumento técnico era fraco: problema não identificado pelo suporte Oracle.

Também encontrei outra nota:

RMAN Duplicate hangs when using DCD and TCPS (Doc ID 1676197.1)

Para esta nota, a Causa é:

DCD + TCPS

Solução é:

Disable DCD.

 

O cliente está usando DCD no ambiente dele, mas não TCPS.

Nós decidimos desabilitar o DCD e reiniciar o processo de Duplicate, o que mostrou-se efetivo e resolveu o problema com os canais, garantindo que todos os canais trabalharam à todo vapor!

Caso queira ler mais sobre DCD, recomendo este White Paper da Oracle: Dead Connection Detection – Oracle

 

Espero que este artigo seja útil!

 

Um abraço!

 

Vinicius