Wallet Key Needed - PDB needs to import keys from source
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.
Subscribe to my newsletter
Read articles from David Sanz directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
David Sanz
David Sanz
Soy desarrollador, Analista, DBA Oracle y Arquitecto OCI, certificado en OCI Migration and Integration Certified Professional y Certified Architect Associate con más de 15 años de experiencia en plataformas Oracle además de especialista en temas de rendimiento.