DATA_PUMP_DIR with pluggable databases can't be used

Seems there is a little 'feature' with datapump in 12c with pluggable databases.

For the container database DATA_PUMP_DIR exists and can be used fine. However in a plugged in database this doesn't exist and cannot be created as 'it already exists'.

So it seems that the dictionary knows it is there but it's not available for plugged in databases.

Just slightly annoying as this is the default if you dont specify a directory yourself.

Sure it will soon be fixed just a simple change i would imagine......

SQL> select DIRECTORY_NAME from dba_directories;

DIRECTORY_NAME
--------------------------------------------------------------------------------
ORACLE_HOME
ORACLE_BASE
OPATCH_LOG_DIR
OPATCH_SCRIPT_DIR
ORACLE_OCM_CONFIG_DIR
ORACLE_OCM_CONFIG_DIR2
XSDDIR
TEST

8 rows selected.

SQL> create directory data_pump_dir as '/tmp';
create directory data_pump_dir as '/tmp'
                 *
ERROR at line 1:
ORA-00955: name is already used by an existing object


SQL>


2 comments:

  1. I've not experienced this issue: when I create a new PDB (from the seed) DATA_PUMP_DIR is shown up in dba_directories with the same path as the CDB. My problem is that if I convert a NON-CDB to a PDB the DATA_PUMP_DIR is shown up twice with different paths.

    ReplyDelete
  2. Hi Johannes,
    It looks like the two issues are likely the result of the same issue. It looks to me that the DBA_DIRECTORIES 'view' (which in multitenant is essentially select * from pdb union select * from cdb) needs some additional logic to handle both my case and yours.

    I assume this gets fixed in 12.1.0.2 or in the next psu......

    Cheers,
    Rich

    ReplyDelete