テーブルが1つしかないスキーマを実装しようとしています。 impdp parfileは次のようになります。
LOGFILE=scott_impdp.log
DUMPFILE=scott.dmp
SCHEMAS=scott
REMAP_SCHEMA=scott:scott2
REMAP_TABLESPACE=scott:scott2
EXCLUDE=grant
PARALLEL=8
CLUSTER=N
TRANSFORM=disable_archive_logging:Y
ただし、次のエラーが発生します。
ORA-39002: invalid operation
ORA-39168: Object path GRANT was not found.
私が間違っていない場合、EXCLUDE = grantは https://docs.Oracle.com/database/121/SUTIL/GUID-DC7668E1-C846-48C5-A0D5-F4659EC119BB.htm#SUTIL911に従って有効な構文です
そのリンクから:Specifying EXCLUDE=GRANT excludes object grants on all object types and system privilege grants.
EXCLUDE=grant
の削除は機能しているようですが、そもそもなぜそれがimpdpを壊すのでしょうか?
編集:私のexpdp parfileは次のようになります:
LOGFILE=scott_expdp.log
DUMPFILE=scott.dmp
SCHEMAS=scott
PARALLEL=8
CLUSTER=N
COMPRESSION=ALL
FLASHBACK_TIME=systimestamp
REUSE_DUMPFILES=Y
EXCLUDE=statistics
これは、EXCLUDE=GRANT
エクスポート時も同様です。
Oracleによると、これは予想される動作です。
回避策は、EXCLUDE
とexpdp
に同じimpdp
を指定しないことです。
以下を参照してください(サポートアクセスあり):
DataPump Import(IMPDP)Faileds With ORA-39168(Doc ID 430702.1)
これをバージョン18cと19cでもテストしたところ、新しいバージョンではエラーなしで問題なく動作しました。