یکی از تغییراتی که در اوراکل 18c ایجاد شد، عدم امکان استفاده از symbolic linkها در زمان ساخت دایرکتوری برای دیتاپامپ می باشد. این مسئله می تواند در زمان اجرای دستور expdp/impdp مشکلاتی را ایجاد کند.
در قسمت زیر، رفتار متفاوت نسخه های 12c و 19c را در مورد این مسئله مشاهده می کنید.
[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]
همانطور که می بینید، در اوراکل 19c، ایجاد فایل دامپ در آدرس symbolic link تعیین شده، امکان پذیر نیست برای رفع این مسئله، می توان از پارامترهای مخفی disable_directory_link_check_ و 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