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

 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
Vahid Yousefzadeh

Written by Vahid Yousefzadeh

I have been a DBA since 2011 and I work with Oracle technology. Linkdin: linkedin.com/in/vahidusefzadeh telegram channel ID:@oracledb vahidusefzadeh@gmail.com


Comments

Popular posts from this blog

Oracle 23ai — Speed up IMPDP Using NOVALIDATE Constraints

Staging Tables in Oracle 23ai

Boolean Data Type in Oracle ِDatabase 23ai