Search code examples
oracle11gdata-dump

Why Oracle DataDump creates N-1 files if parallelism is set to N?


What am I doing wrong?

I set PARALLEL=4 but number of files created are 3.

time expdp data DIRECTORY=EXT_DIR  TABLES=DATA.ST_EURKMORDER:P108 LOGFILE=log.txt CONTENT=DATA_ONLY COMPRESSION=DATA_ONLY DUMPFILE=DATA.ST_EURKMORDER_P108_compr_%U_out_of_4.dmp PARALLEL=4

Expected 4 files, but got 3:

ls -alh /data/DATA.ST_EURKMORDER_P108_compr_1*
-rw-r----- 1 oracle oinstall 170M Apr 11 13:38 /data/DATA.ST_EURKMORDER_P108_compr_01_out_of_4.dmp
-rw-r----- 1 oracle oinstall 159M Apr 11 13:38 /data/DATA.ST_EURKMORDER_P108_compr_02_out_of_4.dmp
-rw-r----- 1 oracle oinstall 151M Apr 11 13:38 /data/DATA.ST_EURKMORDER_P108_compr_03_out_of_4.dmp

Solution

  • According to the documentation, the PARALLEL setting (emphasis added):

    Specifies the maximum number of processes of active execution operating on behalf of the export job.

    It also shows an example similar to yours with PARALLEL set to four, which it says results in an export

    ... in which up to four files could be created ...

    There are various other examples that refer to 'up to' as well. So, this is the expected behaviour. It could create four files, it could create fewer than that.