Wallet Key Needed - PDB needs to import keys from source

Ingeniero informático, Oracle ACE, DBA y Arquitecto OCI, con más de 15 años de experiencia en plataformas Oracle. Certificado en OCI Certified Architect Professional y OCI Migration and Integration Certified Professional.
A la hora de abrir una PDB, nos encontramos que la PDB estaba abierta pero en modo RESTRICTED=YES
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
4 XXXXXX READ ONLY YES
¿Por qué sucede esto? Para poder tener una pista del porqué sucede esto, tenemos que mirar PDB_PLUG_IN_VIOLATIONS.
SQL> set linesize 1000 pages 100
SQL> column message format a100
SQL> column cause format a40
SQL> column name format a20
SQL> Select Name, Cause, Type, Message, Status From Pdb_Plug_In_Violations Where TYPE='ERROR' Order By Name;
NAME CAUSE TYPE MESSAGE STATUS
-------- --------------------- ------ --------------------------------------
XXXXXX Wallet Key Needed ERROR PDB needs to import keys from source. PENDING
A la hora de migrar la PDB, parece que la parte de la Wallet no se ha cargado bien. Vamos a tener que exportarla de origen e importar/generar de nuevo en OCI.
Lo primero que vamos hacer es exportarla de origen
SQL> administer key management export encryption keys with secret "pass" to '/tmp/origen.exp' identified by "pass";
Una vez exportada la subimos a OCI vía scp y la cargamos en nuestra base de datos. Un consejo, siempre que trabajemos con wallet, hacemos una backup.
A nivel de CDB$Root
SQL> !mv /opt/oracle/dcs/commonstore/wallets/$ORACLE_UNQNAME/tde/cwallet.sso /opt/oracle/dcs/commonstore/wallets/$ORACLE_UNQNAME/tde/cwallet.sso.bck
SQL> administer key management set keystore close;
SQL> administer key management set keystore open identified by "pass";
SQL> administer key management set key identified by "pass" with backup;
SQL> administer key management create AUTO_LOGIN keystore from keystore '/opt/oracle/dcs/commonstore/wallets/$ORACLE_UNQNAME/tde' identified by "pass";
A nivel de PDB
SQL> administer key management set keystore open identified by "pass";
SQL> administer key management import keys with secret "pass" from '/tmp/origen.exp' identified by "pass" with backup;
Cerramos y abrimos la PDB
SQL> ALTER PLUGGABLE DATABASE CLOSE;
SQL> ALTER PLUGGABLE DATABASE OPEN;
Revisamos como se ha abierto la PDB
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
4 XXXXXX READ WRITE NO
Perfecto, se ha podido abrir la BBDD sin restricciones. Espero que os sirva.
![[26ai] Limpieza de objetos obsoletos en desuso](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F93181086-1008-4184-8454-33b7367ebedb.png&w=3840&q=75)
![[26ai] Hybrid Read-Only Mode PDB](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2Fde208bd2-5e24-4fd3-acf7-8e5394d95283.png&w=3840&q=75)
![[26ai] ALERT_LOG_MAX_SIZE](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2Fcbb365d0-4428-4a41-930d-516ce59e3355.jpg&w=3840&q=75)
![[26ai] ConnStr Tool](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F5005f06e-946c-49ba-bfe8-7fe18d1075d9.png&w=3840&q=75)
![[26ai] Instalación de Oracle26ai en Linux 9](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2Fd9a6ba10-eb2d-4fee-8a0c-f4957cbdc676.png&w=3840&q=75)