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.