スキーマ全体をエクスポート/インポートするための古いアプローチ:
exp user/pwdp@server FILE=export.dmp OWNER=user ROWS=Y
imp newuser/pwd@server FULL=Y FILE=export.dmp
新しいアプローチ:
expdp user/pwdp@server DUMPFILE=export.dp DIRECTORY=exportfolder
ただし、インポートに問題がありました。
impdp newuser/pwdp@server DUMPFILE=export.dp DIRECTORY=exportfolder
何もインポートしません:
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-31655: no data or metadata objects selected for job
ORA-39154: Objects from foreign schemas have been removed from import
Master table "NEWUSER"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "NEWUSER"."SYS_IMPORT_FULL_01": newuser/********@server
DUMPFILE=export.dp DIRECTORY=exportfolder
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Job "NEWUSER"."SYS_IMPORT_FULL_01" successfully completed at 19:13:04
スキーマオプションを追加しても役に立ちません(結果は同じです。Oracleは所有されていないオブジェクトのインポートを許可していません)。
impdp newuser/pwdp@server DUMPFILE=export.dp DIRECTORY=exportfolder schemas=user
そして、私が見つけた唯一の実用的なアプローチ:
impdp newuser/pwdp@server DUMPFILE=export.dp DIRECTORY=exportfolder remap_schema=newuser:user
では、問題は、どのスキーマがエクスポートされたかを知らずに、スキーマデータポンプダンプをインポートする方法です。
(もちろん、エクスポートファイルの最初の512バイトを調べて、「USER」。「SYS_EXPORT_SCHEMA_01」のような文字列を見つけることができます)が、別のアプローチが存在する可能性がありますか?