Olá pessoal,

Espero que estejam bem.

Recentemente fui contatado por um cliente que estava realizando um teste de DR no seu ambiente.

Todos os bancos de dados possuem Physical Standby (DataGuard) como solução para DR. Em todos os DataGuards possuímos configuração de DataGuard Broker.

Há 2 semanas iniciaram o teste de DR, convertendo todos os bancos de dados de Physical Standby para Snapshot Standby, obviamente utilizando o DG Broker.

Quando os testes de DR terminaram, foram realizar a conversão de Snapshot Standby para Physical Standby, todos os bancos de dados foram convertidos com sucesso, exceto aquele que teve mais atividade e gerou mais flashback logs.

Para este banco de dados específico, após 1 hora do comando de “convert database xxx to snapshot standby” ter sido executado, tivemos a seguinte mensagem no alert.log:

2021-12-13T04:56:23.578060+00:00
Starting background process RSM0
2021-12-13T04:56:23.612062+00:00
RSM0 started with pid=104, OS id=14071
2021-12-13T04:57:25.223320+00:00
alter database convert to physical standby
2021-12-13T04:57:25.229211+00:00
ALTER DATABASE CONVERT TO PHYSICAL STANDBY (PB1)
2021-12-13T05:57:42.559725+00:00
Process RSM0, PID = 34690, will be killed

Observem a última mensagem. Ela pareceu exatamente uma hora após a conversão ter sido iniciada.

Após isso, o cliente fez o restart do banco de dados e disparou novamente o processo, o qual morreu exatamente após uma hora.

No Broker não havia nenhuma mensagem de erro, nem mesmo no log do Broker.

Esse comportamento é compatível com o encontrado no bug mencionado abaixo:

Bug 33225678 : DGMGRL CONVERT TO PHISICAL STANDBY FAILS AFTER TIMEOUT: ORA-16713

Nesse bug, o processo do Broker vai matar os processos que estiverem “esperando” por mais de uma hora, nesse caso, matando o processo RSM0, responsável por voltar o restore point.

Esse é um bug corrigido nas versões mais atuais (19.14 e atuais). O cliente estava rodando 19.13 e já havia agendado o patch para a semana seguinte.

O nosso workaround foi executar os processos de conversão manualmente, usando o sqlplus, ao invés de usar o DG Broker.

Espero que seja útil,

Um abraço.

Vinicius