Sto cercando di rimuovere un PDB in Oracle 19.3 che non è più necessario. Ottengo il seguente errore:
SQL> alter pluggable database DEV_PDB close immediate instances=all;
Pluggable database altered.
SQL> alter pluggable database DEV_PDB unplug into '/tmp/DEV_PDB.xml';
alter pluggable database DEV_PDB unplug into '/tmp/DEV_PDB.xml'
*
ERROR at line 1:
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5590 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5589 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5588 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5587 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5586 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5585 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5584 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5583 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5582 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5581 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5580 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5579 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5578 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5577 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-01114: IO error writing block to file 5576 (block # 1)
ORA-17500: ODM err:Invalid argument
ORA-17528: A read-only file or a file opened read-only cannot be written to:
/u01/app/oracle/oradata/DEV_PDB/data04/users01.dbf.
Hmm...interessante. Non ho riscontrato questo problema quando ho eseguito lo stesso processo in Oracle 12.1.0.2 (ho saltato 12.2 e 18).
Grazie a MOS Note 2419236.1 e ad alcuni dei miei lavori (la Nota non corrisponde esattamente al mio problema), sono stato in grado di risolvere il problema. Il problema è che questo PDB una volta era la base per i PDB clonati nel mio ambiente. Creiamo un PDB nel nostro ambiente Multitenant e lo cloniamo per creare più database di sviluppo e test per il nostro personale IT. Ho appreso che in Oracle 12.2 e versioni successive, Oracle cambierà i permessi dei file a livello di sistema operativo per qualsiasi PDB di origine clone. I permessi dei file sono impostati per la sola lettura. Quando provo a scollegare il PDB, è necessario scrivere informazioni nelle intestazioni del file di dati e otteniamo gli errori di cui sopra.
La soluzione alternativa consiste semplicemente nel modificare i permessi dei file dei file di dati su 640 e provare nuovamente l'operazione di scollegamento. La soluzione nella nota 2419236.1 richiede tempi di inattività, ma la mia soluzione non lo fa.