私はOracleのIMPDPツールを使用してSCHEMAをそのエンティティ内でコピーしようとしています。データベースリンクを自分自身に設定しましたが、リンクは正常に機能します。次に、これを実行しています:
impdp username/password@instancename schemas=TARGET_SCHEMA
network_link=LINK_BACK_TO_TARGET
directory=HOME_DIR logfile=IMPDP_COPY_BACKUP.log
remap_schema=TARGET_SCHEMA:SOURCE_SCHEMA
TRANSFORM=STORAGE:n:table;
私の2つのテストシステムではすべてが正常に機能しますが、Oracle 11gR2の本番環境では、テーブルの移動に到達し、これを生成します。
Processing object type SCHEMA_EXPORT/TABLE/TABLE
ORA-39126: Worker unexpected fatal error in
KUPW$WORKER.UPDATE_TD_BASE_PO_INFO [UPDATE
"ADMIN"."SYS_IMPORT_SCHEMA_04" mtu SET
mtu.base_process_order = NVL((SELECT mts1.process_order
FROM "ADMIN"."SYS_IMPORT_SCHEMA_04" mts1 WHERE
mts1.process_order > 0 AND mts1.duplicate = 0
AND mts1.object_schema = mtu.base_object_schema
AND mts1.object_name = mtu.base_object_name AND
mts1.object_type = mtu.base_object_type AND
mts1.processing_state != :1 ),
(-1000 - (SELECT MIN(mts2.process_order) FROM
"ADMIN"."SYS_IMPORT_SCHEMA_04" mts2 WHERE
mts2.process_order > 0 AND mts2.duplicate = 0
AND mts2.object_schema = mtu.base_object_schema
AND mts2.object_name = mtu.base_object_name
AND mts2.object_type = mtu.object_type)))
WHERE mtu.process_order > 0 AND mtu.duplicate = 0
AND mtu.object_type = 'TABLE_DATA'
AND mtu.processing_status = :2]
ORA-01427: single-row subquery returns more than one row
何度か試しましたが、何が起こっているのか無知です。
また、スキーマを複製する他の方法も利用できます。
仕事を終わらせたいだけで、テストでは機能するが本番では機能しない理由を気にしない場合は、古いエクスポート/インポートメソッドが機能します。オペレーティングシステムについては触れていないので、私はWindowsを想定しています。何かのようなもの:
REM from a DOS .bat script located on the server
SET Oracle_sid=YourDatabaseName
REM export the schema
C:\app\YourOraclePath\bin\exp SchemaOwner/SchemaPass@SchemaName \
file=(C:\Dump\SchemaName01,C:\Dump\SchemaName02,C:\dump\SchemaName03) \
filesize=1GB log=C:\dump\Logs\SchemaName.log
REM drop and recreate the new user if they have existing objects
REM otherwise comment out this line
sqlplus /nolog @C:\Dump\DropRecreateUsers.sql
imp NewSchemaOwner/NewSchemaOwnerPassword \
LOG=C:\dump\logs\importNewSchemaOwner.log file=SchemaOwner01.dmp \
fromuser=SchemaOwner touser=NewSchemaOwner
これは、テストと本番環境の違いに関連している可能性が高いデータポンプを使用したエラーには対応していません。また、データセットを本番から本番にインポートする際の知恵についても触れていません。この操作が失敗した場合、結果はどうなりますか?