Oracleデータベースリリース18.3では、Windowsのディレクトリとしてuncパスを使用し、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 Databaseリリース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 =パラメータを使用しない場合にも発生します。
また、Oracleデータベースを実行しているユーザーによっても異なります(OracleServiceXXXという名前のWindowsサービスを参照してください-XXXはデータベースのSIDです)。 datapump操作はデータベースのコンテキストで実行されるため、データベースを実行するユーザーは、UNC共有に対するファイルシステムのアクセス許可も必要です。 Windowサービスが「ローカルシステム」として起動される場合がありますが、これはおそらく多くのリモート権限を持っていません。
以下が興味深いかもしれません:
簡単に言えば、私は同じ問題を抱えていましたが、以下のパラメーターを設定してデータベースを再起動した後、Data Pumpはネットワーク共有を使用できました。
ALTER SYSTEM SET "_disable_directory_link_check" = TRUE SCOPE=SPFILE;