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