J'essaie de supprimer un PDB dans Oracle 19.3 qui n'est plus nécessaire. J'obtiens l'erreur suivante :
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.
Hum ... intéressant. Je n'ai pas eu ce problème lorsque j'ai fait le même processus dans Oracle 12.1.0.2 (j'ai sauté 12.2 et 18).
Grâce à la note MOS 2419236.1 et à certains de mes propres travaux (la note ne correspond pas exactement à mon problème), j'ai pu résoudre le problème. Le problème est que ce PDB était autrefois la base des PDB clonés dans mon environnement. Nous créons une PDB dans notre environnement multi-locataire et la clonons pour créer plusieurs bases de données de développement et de test pour notre personnel informatique. J'ai appris que dans Oracle 12.2 et supérieur, Oracle modifiera les autorisations de fichiers au niveau du système d'exploitation pour tout PDB source de clone. Les autorisations de fichier sont définies en lecture seule. Lorsque j'essaie de débrancher le PDB, il doit écrire des informations dans les en-têtes du fichier de données et nous obtenons les erreurs ci-dessus.
La solution de contournement consiste simplement à modifier les autorisations de fichier des fichiers de données sur 640 et à réessayer l'opération de déconnexion. La solution de contournement dans la note 2419236.1 nécessite un temps d'arrêt, mais pas ma solution de contournement.