This post is also available in: English (English)

Olá pessoal,

Tudo bem?

Um grande amigo meu me chamou estes dias atrás pois estava com um problema no Duplicate de um banco de dados, retornando o seguinte erro:

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: falha do comando Duplicate Db em 05/17/2019 11:03:18
RMAN-05501: abortando duplicacao de banco de dados de destino
RMAN-03015: erro ocorrido no script armazenado Memory Script
RMAN-04014: falha na inicializacao: ORA-27528: Transport: RDS required by Engineered System is not available

Bom, o principal erro aí é o ORA-27528: Transport: RDS required by Engineered System is not available

Este erro geralmente acontece em ambientes Exadata (Engineering System) ou em algum ambiente que possua Infiniband. Este erro comumente é associado ao protocolo RDS não estar ativado no ORACLE_HOME ou no GRID_HOME, o que para Engineering Systems é bastante estranho.

Realizamos a verificação se o ORACLE_HOME e GRID_HOME possuem o RDS ativado:

[oracle@xxxdbadm01 oracle]$ $ORACLE_HOME/bin/skgxpinfo -v
Oracle RDS/IP (generic)

[grid@xxxdbadm01 oracle]$ $GRID_HOME/bin/skgxpinfo -v
Oracle RDS/IP (generic)

Bom, ambos estão OK!

Qual será o problema?

No Duplicate, meu amigo estava levando o SPFILE junto e aí estava o problema. No banco de dados de origem, o parâmetro CLUSTER_INTERCONNECTS não estava com o seu valor default (que é em branco – assim, os IPs de InterConnect válidos no servidor são automaticamente detectados). Como ele levava o SPFILE no Duplicate, os IPs definidos no ambiente de origem obviamente não existiam, apesar de ter InfiniBand os IPs eram diferentes.

A solução pode ser aplicada de duas formas:

  1. Crie um PFILE com todos os valores não-default no banco de dados de destino, fazendo as devidas alterações em CLUSTER_INTERCONNECTS, LOCAL_LISTENER e REMOTE_LISTENER.
  2. No comando de Duplicate, alterar o valor de CLUSTER_INTERCONNECTS, exemplo:
DUPLICATE TARGET DATABASE FOR STANDBY
FROM ACTIVE DATABASE
SET CONTROL_FILES '+DATA'
SET DB_CREATE_FILE_DEST '+DATA'
SET DB_UNIQUE_NAME 'XXXX'
SET audit_file_dest '/oracle/XXXX/adump'
SET DB_RECOVERY_FILE_DEST '+RECO'
SET LISTENER_NETWORKS ''
SET CLUSTER_INTERCONNECTS '';

Espero que seja útil!

Um abraço!

 

Vinicius