A execução de um DUPLICATE via RMAN falhou com o seguinte erro:

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 05/12/2021 16:32:01
RMAN-05501: aborting duplication of target database
RMAN-03015: error occurred in stored script Memory Script
RMAN-03009: failure of backup command on C1 channel at 05/12/2021 16:32:01
ORA-00604: error occurred at recursive SQL level 1
ORA-06502: PL/SQL: numeric or value error
ORA-17628: Oracle error 19505 returned by remote Oracle server

Então consultando o alert log da instância auxiliar, havia essa essas mensagens de erro:

Wed May 12 16:32:00 2021
Errors in file /u02/app/oracle/diag/rdbms/hml4mv_gru1mr/HML4MV2/trace/HML4MV2_ora_326508.trc:
ORA-19505: failed to identify file "+DATAC1/hml4mv_gru1mr/controlfile/control01.ctl"
ORA-17502: ksfdcre:3 Failed to create file +DATAC1/hml4mv_gru1mr/controlfile/control01.ctl
ORA-15001: diskgroup "DATAC1" does not exist or is not mounted
ORA-15204: database version 11.2.0.0.0 is incompatible with diskgroup DATAC1

Na prática, a ordem de precedência desses erros para identificar o problema é de baixo para cima:

  1. Ocorreu o erro ORA-12204 porque a versão da instância RDBMS (parâmetro compatible) era inferior a versão mínima suportada pelo diskgroup DATAC1;
  2. O erro ORA-15001 é um falso positivo, o diskgroup existe e estava montado. O erro ocorre porque a instância RDBMS não estabeleceu conexão com o diskgroup devido ao erro ORA-12204;
  3. Sem estabelecer conexão com diskgroup, o controlfile não pode ser criado durante o RESTORE CONTROLFILE executado pelo RMAN (erro ORA-17502);
  4. O controlfile não foi criado, a tentativa de montar o banco de dados com ALTER DATABASE MOUNT falha por não achar o controlfile;

Verificando a nível de compatibilidade mínima para o RDBMS no diskgroup DATAC1:

ASMCMD> lsattr -G DATAC1 -lm
Group_Name  Name                        Value          RO  Sys
DATAC1      access_control.enabled      FALSE          N   Y
DATAC1      access_control.umask        066            N   Y
DATAC1      appliance._partnering_type  EXADATA FIXED  Y   Y
DATAC1      appliance.mode              TRUE           N   Y
DATAC1      ate_conversion_done         true           Y   Y
DATAC1      au_size                     4194304        Y   Y
DATAC1      cell.smart_scan_capable     TRUE           N   N
DATAC1      cell.sparse_dg              allnonsparse   N   N
DATAC1      compatible.advm             19.0.0.0       N   Y
DATAC1      compatible.asm              19.0.0.0.0     N   Y
DATAC1      compatible.rdbms            11.2.0.4       N   Y
DATAC1      content.check               TRUE           N   Y
DATAC1      content.type                data           N   Y
DATAC1      content_hardcheck.enabled   FALSE          N   Y
DATAC1      disk_repair_time            12.0h          N   Y
DATAC1      failgroup_repair_time       24.0h          N   Y
DATAC1      idp.boundary                auto           N   Y
DATAC1      idp.type                    dynamic        N   Y
DATAC1      logical_sector_size         512            N   Y
DATAC1      phys_meta_replicated        true           Y   Y
DATAC1      preferred_read.enabled      FALSE          N   Y
DATAC1      scrub_async_limit           1              N   Y
DATAC1      scrub_metadata.enabled      TRUE           N   Y
DATAC1      sector_size                 512            N   Y
DATAC1      thin_provisioned            FALSE          N   Y
DATAC1      vam_migration_done          true           Y   Y

O atributo compatible.rdbms foi definido para 11.2.0.4 no diskgroup, então o parâmetro compatible deve ser configurado para essa versão ou superior no arquivo de parâmetros da instância RDBMS.

Se subirmos uma instância sem especificar esse parâmetro de forma explícita, mesmo que os binários estejam na versão 11.2.0.4, o parâmetro compatible pega o valor padrão de 11.2.0.0.0 durante o startup da instância.

Solução:

1) Incluir esse parâmetro no pfile da instância:

*.compatible='11.2.0.4'

2) Reiniciar a instância:

SQL> shutdown immediate;
ORA-01507: database not mounted

ORACLE instance shut down.


SQL> startup nomount;
ORACLE instance started.

3) Checando o valor do parâmetro:

SQL> show parameter compatible;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
compatible                           string      11.2.0.4

Leave a Reply

Discover more from Blog do Dibiei

Subscribe now to keep reading and get access to the full archive.

Continue reading