Picture of Roberto Sobrinho
Roberto Sobrinho

08/12/2024

Erro “Installed in CDB but not in PDB” e “Not installed in CDB but installed in PDB”: Solução

Tive uma experiência na última madrugada, ao aplicar o OJVM Release Update 19.24.0.0.240716 (Patch 36414915). Durante o processo, algumas PDBs apresentaram as mensagens de erro “Installed in CDB but not in PDB” e “Not installed in CDB but installed in PDB”, indicando inconsistências na aplicação do patch.

Com uma janela de manutenção bem curta, precisei corrigir o problema rapidamente. Neste guia, mostro como contornei essas inconsistências de forma prática.

Agora, você pode estar se perguntando: “Mas por que isso aconteceu, Sobrinho?”
A resposta é: “não sei”. Não me aprofundei nas causas porque o foco era resolver o problema dentro do tempo disponível. Esse tipo de erro ocorre quando os patches SQL não são sincronizados entre o CDB e as PDBs

Verificar o estado das PDBs e mensagens de erro

a. Verificar estado das PDBs:

SQL> SHOW PDBS;

    CON_ID CON_NAME      OPEN MODE   RESTRICTED
---------- ------------- ----------- ----------
         2 PDB$SEED      READ ONLY   NO
         3 PDBLQUQS1     READ WRITE  YES          --<<AQUI ESTA O PROBELMA  RESTRICTED = YES

SQL>

A coluna RESTRICTED indica que a PDB está limitada a sessões administrativas.

B. Identificar violações em PDB_PLUG_IN_VIOLATIONS:

SQL> SELECT name, cause, type, message, status, action 
     FROM PDB_PLUG_IN_VIOLATIONS 
     WHERE type LIKE 'ERROR%' AND status LIKE 'PENDING';

NAME         CAUSE         TYPE    MESSAGE                                                                    STATUS    ACTION
------------ ------------- ------- -------------------------------------------------------------------------- --------- ------------------------------------
PDBLQUQS1    SQL Patch     ERROR   Interim patch 36414915/25700138: Installed in CDB but not in PDB           PENDING   Call datapatch to install in PDB or CDB
PDBLQUQS1    SQL Patch     ERROR   Interim patch 35648110/25365038: Not installed in CDB but installed in PDB PENDING   Call datapatch to install in PDB or CDB

As mensagens “Installed in CDB but not in PDB” e “Not installed in CDB but installed in PDB” indicam que os patches foram aplicados de forma inconsistente, ou seja, estão presentes em apenas um dos ambientes: no CDB ou na PDB, mas não em ambos.

Como corrigir: Resolver “Installed in CDB but not in PDB” e “Not installed in CDB but installed in PDB”

-- Alterar para o container da PDB afetada
SQL> ALTER SESSION SET CONTAINER=PDBLQUQS1;


-- Fechar a PDB
SQL> ALTER PLUGGABLE DATABASE PDBLQUQS1 CLOSE IMMEDIATE;


-- Abrir a PDB no modo upgrade
SQL> ALTER PLUGGABLE DATABASE PDBLQUQS1 OPEN UPGRADE;

-- PDB foi aberta no modo upgrade para permitir aplicação dos patches SQL

Sair do SQL e executar o comando datapatch no sistema operacional:
No terminal, execute o comando datapatch para sincronizar os patches SQL entre o CDB e a PDB:

[oracle@rpx0008jar01 OPatch]$ /u01/app/oracle/product/19.24.0/cdhcpsr1/OPatch/datapatch -verbose
SQL Patching tool version 19.24.0.0.0 Production on Sun Dec  8 12:38:21 2024
Copyright (c) 2012, 2024, Oracle.  All rights reserved.

Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_27751_2024_12_08_12_38_21/sqlpatch_invocation.log

Connecting to database...OK
Gathering database info...done

Note:  Datapatch will only apply or rollback SQL fixes for PDBs
       that are in an open state, no patches will be applied to closed PDBs.

Bootstrapping registry and package to current versions...done
Determining current state...done

Current state of interim SQL patches:
Interim patch 36414915 (OJVM RELEASE UPDATE: 19.24.0.0.240716):
  PDB PDBLQUQS1: Applied successfully on 08-DEC-24 12.25.13.209397 PM
Interim patch 35648110 (OJVM RELEASE UPDATE: 19.21.0.0.231017):
  PDB PDBLQUQS1: Applied successfully on 08-DEC-24 12.25.13.102624 PM

SQL Patching tool complete on Sun Dec  8 12:38:45 2024

Reabrir a PDB no modo normal:

-- Fechar e reabrir a PDB no modo normal
SQL> ALTER PLUGGABLE DATABASE PDBLQUQS1 CLOSE IMMEDIATE;

SQL> ALTER PLUGGABLE DATABASE PDBLQUQS1 OPEN;

Verificar estado das PDBs

SQL> SHOW PDBS;

    CON_ID CON_NAME      OPEN MODE   RESTRICTED
---------- ------------- ----------- ----------
         2 PDB$SEED      READ ONLY   NO
         3 PDBLQUQS1     READ WRITE  NO

Verificar se há violações

SQL> SELECT name, cause, type, message, status, action 
     FROM PDB_PLUG_IN_VIOLATIONS 
     WHERE type LIKE 'ERROR%' AND status LIKE 'PENDING';

no rows selected

1. O que é o erro “Installed in CDB but not in PDB”?
Esse erro ocorre quando o patch foi aplicado no container root (CDB) mas não foi propagado para as PDBs.

2. “Not installed in CDB but installed in PDB”?
Esse erro indica que o patch foi aplicado na PDB mas não no CDB. Para corrigir, é necessário sincronizar os patches executando o comando datapatch -verbose com a PDB no modo upgrade.

3. Qual o impacto de deixar as PDBs em modo restrito?
Quando uma PDB está em modo restrito, apenas sessões administrativas podem acessá-la. Isso pode impedir o funcionamento normal de aplicações conectadas a ela.

Esse passo a passo resolve o probelma “Installed in CDB but not in PDB” e “Not installed in CDB but installed in PDB”, restaurando o funcionamento normal da PDB (RESTRICTED NO e OPEN MODE READ WRITE).
Lembre-se, analise este contexto como um todo e compreenda se esta solução é aplicável à sua situação.


😶‍🌫️🚒#20241208 #DBASobrinho #GuinaNãoTinhaDó #BóBó #CaceteDeAgulha #OracleACE  #SueliChegou #BarbaraTomouConta #FestaDoPijama #SolNaCuca #FrangoTaBom 😶‍🌫️🚒


Compartilhe

Facebook
Twitter
LinkedIn
WhatsApp
Email
Print

Pesquisar

Roberto Sobrinho

Sou Roberto Fernandes Sobrinho, também conhecido como Sobrinho DBA , pós graduado em “Architecture and Database Administration”, entusiasta, dedicado e com 20 anos de experiência com Oracle Database e suas diversas distribuições e variações.

Oracle ACE Associate

2025

Specialist

Exadata Database Machine X9M

Professional

Oracle Database Administration

Professional

Oracle Database 19c: RAC, ASM, & Grid Infra Administrator

Professional

Oracle Autonomous Database Cloud

Professional

Oracle Cloud Database Migration and Integration

Professional

Oracle Database PL/SQL Developer

Associate

Oracle Cloud Infrastructure Architect

Associate

Oracle Cloud Infrastructure Foundations

Categorias

Categorias

Tags

Erro “Installed in CDB but not in PDB” e “Not installed in CDB but installed in PDB”: Solução