DataPump : Disabling the Use of Symbolic Links When Creating a Directory



This content originally appeared on DEV Community and was authored by Vahid Yousefzadeh

One of the changes introduced in Oracle 18c was the inability to use symbolic links when creating a directory for Data Pump. This issue can cause problems when running expdp/impdp commands.

Below, you can see the different behavior between versions 12c and 19c regarding this matter:

[oracle@ol7 ~]$ mkdir /remotedir

[oracle@ol7 ~]$ chown –R oracle.oinstall /remotedir

[oracle@ol7 ~]$ ln –s /remotedir /oracle/dumpdir

SQL> create or replace directory sym as ‘/oracle/dumpdir’;

Directory created.

— Oracle 12c

[oracle@ol7 ~]$ expdp directory=sym dumpfile=mydump tables=usef.mytbl

Export: Release 12.2.0.1.0 – Production on Tue Jun 25 13:01:56 2019

Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.

Starting “SYS”.”SYS_EXPORT_TABLE_01″:  sys/******** AS SYSDBA directory=sym dumpfile=mydump tables=usef.mytbl

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER

Processing object type TABLE_EXPORT/TABLE/TABLE

. . exported “USEF”.”MYTBL”                              22.60 KB      15 rows

Master table “SYS”.”SYS_EXPORT_TABLE_01″ successfully loaded/unloaded

******************************************************************************

Dump file set for SYS.SYS_EXPORT_TABLE_01 is:

  /12c/external_table/mydump.dmp

Job “SYS”.”SYS_EXPORT_TABLE_01″ successfully completed at Tue Jun 25 13:02:43 2019 elapsed 0 00:00:37

— Oracle 19c

[oracle@ol7 ~]$ expdp directory=sym dumpfile=mydump19c tables=usef.mytbl

Export: Release 19.0.0.0.0 – Production on Tue Jun 25 16:25:31 2019

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production

ORA-39002: invalid operation

ORA-39070: Unable to open the log file.

ORA-29283: invalid file operation: path traverses a symlink [29433]

As you can see, in Oracle 19c it is not possible to create a dump file in the specified symbolic link path.
To resolve this issue, you can use the hidden parameters _disable_directory_link_check and _kolfuseslf:

SQL> ALTER SYSTEM SET “_disable_directory_link_check” = TRUE SCOPE=SPFILE;

System altered.

SQL> ALTER SYSTEM SET “_kolfuseslf” = TRUE SCOPE=SPFILE;

System altered.

SQL> startup force;

[oracle@ol7 ~]$ expdp directory=sym dumpfile=mydump19c tables=usef.mytbl

Export: Release 19.0.0.0.0 – Production on Tue Jun 25 16:28:10 2019

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production

Starting “SYS”.”SYS_EXPORT_TABLE_01″:  sys/******** AS SYSDBA directory=sym dumpfile=mydump19c tables=usef.mytbl

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

Processing object type TABLE_EXPORT/TABLE/STATISTICS/MARKER

Processing object type TABLE_EXPORT/TABLE/TABLE

. . exported “USEF”.”MYTBL”                              20.64 KB       7 rows

Master table “SYS”.”SYS_EXPORT_TABLE_01″ successfully loaded/unloaded

******************************************************************************

Dump file set for SYS.SYS_EXPORT_TABLE_01 is:

  /oracle/external_table/mydump19c.dmp

Job “SYS”.”SYS_EXPORT_TABLE_01″ successfully completed at Tue Jun 25 16:28:44 2019 elapsed 0 00:00:27


This content originally appeared on DEV Community and was authored by Vahid Yousefzadeh