
・Oracle19cからOracle23aiへdatapumpでデータ移行する方法を知りたい。 こういった疑問に答えます。 この記事を書いている私は、某SIerに勤務しながら、本記事の内容

WEB系エンジニア・インフラエンジニアに憧れて、プログラミングおよびインフラ技術の勉強をしています。
こういった私が、解説していきます。
私が実機で試したコマンドや画像を載せて書いています。
記事の信頼性担保に繋がると思います。
Oracle19cからOracle23aiへdatapumpでデータ移行する手順
[Oracle19c側]datapump用ディレクトリの確認
select OWNER, DIRECTORY_NAME, DIRECTORY_PATH from SYS.DBA_DIRECTORIES;
| OWNER | DIRECTORY_NAME | DIRECTORY_PATH |
|---|---|---|
| SYS | DATA_PUMP_DIR | /opt/oracle/admin/ORCLCDB/dpdump/9CEEFEB21FA30422E0536A01A8C0BE10 |
[Oracle19c側]管理者ユーザーでexpdpやろうとすると権限エラー
[oracle@SV-PLUTO ~]$ expdp findtadm/★★パスワード@FINDTPDB directory=DATA_PUMP_DIR schemas=findtuser01 dumpfile=findtuser01_expdp.dmp exclude=statistics logfile=findtuser01_expdp_20250904.log Export: Release 19.0.0.0.0 - Production on 木 9月 4 15:41:58 2025 Version 19.3.0.0.0 Copyright (c) 1982 接続先: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production ORA-31626: ジョブが存在しません ORA-31633: マスター表"FINDTADM.SYS_EXPORT_SCHEMA_05"を作成できません ORA-06512: "SYS.DBMS_SYS_ERROR" ORA-06512: "SYS.KUPV$FT" ORA-01950: 表領域'SYSTEM'に対する権限がありません ORA-06512: "SYS.KUPV$FT" ORA-06512: "SYS.KUPV$FT"
[Oracle19c側]SYSTEMユーザーでexpdp実施
expdp system/★★パスワード@FINDTPDB directory=DATA_PUMP_DIR schemas=findtuser01 dumpfile=findtuser01_expdp.dmp exclude=statistics logfile=findtuser01_expdp_20250904.log
[oracle@SV-PLUTO ~]$ expdp system/★★パスワード@FINDTPDB directory=DATA_PUMP_DIR schemas=findtuser01 dumpfile=findtuser01_expdp.dmp exclude=statistics logfile=findtuser01_expdp_20250904.log Export: Release 19.0.0.0.0 - Production on 木 9月 4 15:45:40 2025 Version 19.3.0.0.0 Copyright (c) 1982 接続先: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production SYSTEM."SYS_EXPORT_SCHEMA_01"を起動しています: system/********@FINDTPDB directory=DATA_PUMP_DIR schemas=findtuser01 dumpfile=findtuser01_expdp.dmp exclude=statistics logfile=findtuser01_expdp_20250904.log オブジェクト型SCHEMA_EXPORT/TABLE/TABLE_DATAの処理中です オブジェクト型SCHEMA_EXPORT/USERの処理中です オブジェクト型SCHEMA_EXPORT/SYSTEM_GRANTの処理中です オブジェクト型SCHEMA_EXPORT/ROLE_GRANTの処理中です オブジェクト型SCHEMA_EXPORT/DEFAULT_ROLEの処理中です オブジェクト型SCHEMA_EXPORT/TABLESPACE_QUOTAの処理中です オブジェクト型SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMAの処理中です オブジェクト型SCHEMA_EXPORT/TABLE/TABLEの処理中です オブジェクト型SCHEMA_EXPORT/VIEW/VIEWの処理中です . . "FINDTUSER01"."T1" 1.324 MB 3338行がエクスポートされました . . "FINDTUSER01"."T2" 534.1 KB 1446行がエクスポートされました . . "FINDTUSER01"."T3" 99.18 KB 237行がエクスポートされました . . "FINDTUSER01"."T4" 72.17 KB 176行がエクスポートされました . . "FINDTUSER01"."T5" 40.04 KB 124行がエクスポートされました (中略) マスター表"SYSTEM"."SYS_EXPORT_SCHEMA_01"は正常にロード/アンロードされました ****************************************************************************** SYSTEM.SYS_EXPORT_SCHEMA_01に設定されたダンプ・ファイルは次のとおりです: /opt/oracle/admin/ORCLCDB/dpdump/9CEEFEB21FA30422E0536A01A8C0BE10/findtuser01_expdp.dmp ジョブ"SYSTEM"."SYS_EXPORT_SCHEMA_01"が木 9月 4 15:46:14 2025 elapsed 0 00:00:31で正常に完了しました

[Oracle23ai側]datapump用ディレクトリの確認
select OWNER, DIRECTORY_NAME, DIRECTORY_PATH from SYS.DBA_DIRECTORIES;
| OWNER | DIRECTORY_NAME | DIRECTORY_PATH |
|---|---|---|
| SYS | DATA_PUMP_DIR | /opt/oracle/admin/FREE/dpdump/3DF3A83B074C3E2AE0637C64A8C0CDEA |
[Oracle23ai側]dmpファイルを配置

[Oracle23ai側]SYSTEMユーザーでimpdpを実施
impdp system/★★★パスワード@FINDTPDB directory=DATA_PUMP_DIR schemas=findtuser01 dumpfile=findtuser01_expdp.dmp table_exists_action=truncate logfile=findtuser01_impdp_20250904.log
[oracle@a-oracl01 ~]$ impdp system/★★★パスワード@FINDTPDB directory=DATA_PUMP_DIR schemas=findtuser01 dumpfile=findtuser01_expdp.dmp table_exists_action=truncate logfile=findtuser01_impdp_20250904.log Import: Release 23.0.0.0.0 - Production on 木 9月 4 16:00:50 2025 Version 23.9.0.25.07 Copyright (c) 1982 2025 Oracle and/or its affiliates. All rights reserved. 接続先: Oracle Database 23ai Free Release 23.0.0.0.0 - Develop Learn and Run for Free マスター表"SYSTEM"."SYS_IMPORT_SCHEMA_01"は正常にロード/アンロードされました SYSTEM."SYS_IMPORT_SCHEMA_01"を起動しています: system/********@FINDTPDB directory=DATA_PUMP_DIR schemas=findtuser01 dumpfile=findtuser01_expdp.dmp table_exists_action=truncate logfile=findtuser01_impdp_20250904.log オブジェクト型SCHEMA_EXPORT/USERの処理中です ORA-31684: オブジェクト型USER:"FINDTUSER01"はすでに存在します オブジェクト型SCHEMA_EXPORT/SYSTEM_GRANTの処理中です オブジェクト型SCHEMA_EXPORT/ROLE_GRANTの処理中です オブジェクト型SCHEMA_EXPORT/DEFAULT_ROLEの処理中です オブジェクト型SCHEMA_EXPORT/TABLESPACE_QUOTAの処理中です オブジェクト型SCHEMA_EXPORT/TABLE/TABLEの処理中です オブジェクト型SCHEMA_EXPORT/TABLE/TABLE_DATAの処理中です . . "FINDTUSER01"."TDT001CREDITCARD" 1.3 MB 3338行がインポートされました . . "FINDTUSER01"."TDT002CASHOUT" 534.1 KB 1446行がインポートされました . . "FINDTUSER01"."TWK018SMBC_IN" 99.2 KB 237行がインポートされました . . "FINDTUSER01"."T1" 72.2 KB 176行がインポートされました . . "FINDTUSER01"."T2" 40 KB 124行がインポートされました . . "FINDTUSER01"."T3" 19.5 KB 14行がインポートされました . . "FINDTUSER01"."T4" 18.6 KB 14行がインポートされました . . "FINDTUSER01"."T5" 16.7 KB 10行がインポートされました (中略) オブジェクト型SCHEMA_EXPORT/VIEW/VIEWの処理中です ジョブ"SYSTEM"."SYS_IMPORT_SCHEMA_01"が完了しましたが、1エラーが木 9月 4 16:01:04 2025 elapsed 0 00:00:09で発生しています
