在 oracle 数据库版本 18.3 中,可以使用 unc 路径作为 Windows 中的目录,并使用 impdp 从该目录中抽取数据库泵。
例子:
C:\>sqlplus system/passwd@exampledb
C:\>create directory DUMPS as '\\storage\dir';
C:\>exit
C:\>impdp system/passwd@exampledb directory=DUMPS dumpfile=example.dmp logfile=example-imp.log
... just works as expected
对于 oracle 数据库 19.3 版,相同的 impdp 指令产生以下输出:
c:\>impdp system/passwd@exampledb directory=DUMPS dumpfile=example.dmp logfile=example-imp.log
Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-39155: error expanding dump file name "\\storage\dir\example.dmp"
ORA-48128: opening of a symbolic link is disallowed
我在 18.3 和 19.3 的示例中使用相同的帐户运行 oracle 数据库服务。因此,我认为网络或凭据问题不能解释我的观察。
这是 Oracle 数据库版本 18.3 和 19.3 之间的更改行为吗?我是否错过了发行说明中对这种更改行为的描述?或者我是否缺少 19.3 中引入的用于在目录中使用 UNC 共享的设置?还是我做错了什么?
我尝试将共享用作驱动器号,如下所示:
C:\>net use p: \\storage\dir /persistent:yes /user:myuser
dir p:
... list of files // network access works well
C:\>sqlplus system/passwd@exampledb
create directory DUMPS as 'P:\';
exit
C:\>impdp system/passwd@exampledb directory=DUMPS dumpfile=example.dmp logfile=example-imp.log
... ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
现在 impdp 抱怨日志文件。不使用 impdp logfile= 参数也会出现问题。