
目次
はじめに
みなさん、こんにちは。
Oracle Cloud Infrastructure検証チームです。
今回は、オンプレミス環境からOracle Cloud Infrastructure(OCI)へ移行を考えている方に向けて、 Autonomous AI Database(ADB)へのDatapumpを利用した移行を検証してみましたので、ご紹介したいと思います。
OCIへの移行を検証してみた その1 Datapumpの続編です!
こちらも併せて読んでいただけるとADBでの相違点がより分かりやすくなります!

ADBの特徴
ADB(Autonomous AI Database)とは、Oracle Cloud上で使用できるデータベース管理を必要としないデータベースサービスです。
日本語に翻訳すると、自律型データベースとなります。
移行に際して、通常のデータベースと異なる点として以下が挙げられます。
ユーザー表領域を追加することが出来ない
ADBでは、システム表領域とユーザー表領域が自動的に作成されますが、ユーザーはCREATE TABLESPACE文を実行することが出来ません。
そのため、ユーザー表領域としてDATA表領域またはDBFS_DATA表領域を使うことになります(基本はDATA表領域を使います。
SQL> SELECT TABLESPACE_NAME FROM DBA_TABLESPACES ORDER BY 1; TABLESPACE_NAME --------------- DATA ★ユーザー表領域 DBFS_DATA ★ADBのファイルシステムとして使われる表領域 SAMPLESCHEMA ★サンプルスキーマが格納される読み取り専用表領域 SYSAUX ★システム表領域 SYSTEM ★システム表領域 TEMP ★一時表領域 UNDOTBS1 ★UNDO表領域 UNDO_8 ★UNDO表領域
OS領域(ファイルシステムなど)を操作できない
ADBではデータベースサービスのみを提供しており、OS領域を操作することが出来ません。
そのため、ファイルシステム上にディレクトリを新規作成してディレクトリオブジェクトとして作成する、といった操作が出来ません。
それでは、Datapumpで使用するdumpファイルはどこに配置すればいいのでしょうか。それに対する解が次となります。
DatapumpでオブジェクトストレージのURLを直接指定可能
ADBでは、DatapumpのDUMPFILE句にてオブジェクトストレージ上のファイルURLを直接指定することが出来ます。
以下のような形でDUMPファイルURLを直接指定するイメージとなります。DIRECTORYとしてDATAPUMP_DIRを指定していますが、DATA_PUMP_DIRで使用しているディレクトリ配下にdumpファイルを配置する必要はありません。
C:\WORK>impdp <ユーザー名>@orcl schemas=<スキーマ名> DIRECTORY=DATA_PUMP_DIR ^
More? DUMPFILE=https://objectstorage.ap-tokyo-1.oraclecloud.com/<DUMPファイルのURL>
DBMS_CLOUDパッケージがデフォルトで導入されている
ADBでは、オブジェクト・ストレージのデータを操作するためのパッケージであるDBMS_CLOUDパッケージがデフォルトで導入されています。
これを使用することで、オブジェクトストレージやADBのディレクトリオブジェクト配下のファイルを操作することが出来ます。
例えば、ADBのDATA_PUMP_DIR配下のファイルには何があるかをDBMS_CLOUD.LIST_FILESを使用して確認が出来ます。
SQL> SELECT * FROM DBMS_CLOUD.LIST_FILES('DATA_PUMP_DIR');
レコードが選択されませんでした。
ADBでDatapumpを使用するときは、オブジェクトストレージを使うことが想定されているんだね!

検証内容
今回検証した内容はこちらです。
1.19c環境でのexpdpの実行(オンプレミス)
Oracle Database 19c環境にて、expdpコマンドを使用してdumpファイルを作成します。
まずは、dumpファイルの出力先を確認します。
SQL> SELECT OWNER,DIRECTORY_NAME,DIRECTORY_PATH FROM DBA_DIRECTORIES; OWNER DIRECTORY_NAME DIRECTORY_PATH ----- -------------- -------------- SYS ORACLECLRDIR C:\app\Administrator\product\19.3.0\dbhome_1\bin\clr SYS SDO_DIR_WORK SYS SDO_DIR_ADMIN C:\app\Administrator\product\19.3.0\dbhome_1/md/admin SYS XMLDIR C:\app\Administrator\product\19.3.0\dbhome_1/rdbms/xml SYS XSDDIR C:\app\Administrator\product\19.3.0\dbhome_1/rdbms/xml/schema SYS OPATCH_INST_DIR C:\app\Administrator\product\19.3.0\dbhome_1\OPatch SYS ORACLE_OCM_CONFIG_DIR2 C:\app\Administrator\product\19.3.0\dbhome_1\ccr\state SYS ORACLE_BASE C:\app\Administrator SYS ORACLE_HOME C:\app\Administrator\product\19.3.0\dbhome_1 SYS ORACLE_OCM_CONFIG_DIR C:\app\Administrator\product\19.3.0\dbhome_1\ccr\state SYS DATA_PUMP_DIR C:\app\Administrator\admin\orcl\dpdump/ SYS DBMS_OPTIM_LOGDIR C:\app\Administrator\product\19.3.0\dbhome_1/cfgtoollogs SYS DBMS_OPTIM_ADMINDIR C:\app\Administrator\product\19.3.0\dbhome_1/rdbms/admin SYS OPATCH_SCRIPT_DIR C:\app\Administrator\product\19.3.0\dbhome_1\QOpatch SYS OPATCH_LOG_DIR C:\app\Administrator\product\19.3.0\dbhome_1\rdbms\log SYS JAVA$JOX$CUJS$DIRECTORY$ C:\APP\ADMINISTRATOR\PRODUCT\19.3.0\DBHOME_1\JAVAVM\ADMIN\ 16行が選択されました。
今回は、DATA_PUMP_DIRをdumpファイルの出力先として利用します。
次に、SCOTTスキーマを移行します。
SCOTTスキーマは表と索引を保有しています。
SQL> SELECT OBJECT_NAME,OBJECT_TYPE FROM USER_OBJECTS;
OBJECT_NAME OBJECT_TYPE
----------- -----------
DEPT TABLE
PK_DEPT INDEX
EMP TABLE
PK_EMP INDEX
BONUS TABLE
SALGRADE TABLE
6行が選択されました。
表と索引はUSERS表領域に作られています。
SQL> SELECT TABLE_NAME,TABLESPACE_NAME FROM USER_TABLES; TABLE_NAME TABLESPACE_NAME ---------- --------------- DEPT USERS EMP USERS BONUS USERS SALGRADE USERS SQL> SELECT INDEX_NAME,TABLESPACE_NAME FROM USER_INDEXES; INDEX_NAME TABLESPACE_NAME ---------- --------------- PK_DEPT USERS PK_EMP USERS
今回はスキーマ全体を移行したいので、EXPDPはSYSTEMユーザーにて実行します。dumpファイル名はscott.dmpとします。
また、SCOTTスキーマだけを移行するため、オプションとしてschemas=scottとしています。
また、統計情報については今回は移行の対象外とするためにオプションとしてexclude=statisticsを設定しています。
C:\>expdp SYSTEM@ORCL directory=DATA_PUMP_DIR dumpfile=scott.dmp schemas=scott logfile=scott_exp.log exclude=statistics
Export: Release 19.0.0.0.0 - Production on 木 11月 16 15:18:39 2025
Version 19.27.0.0.0
Copyright (c) 1982, 2025, Oracle and/or its affiliates. All rights reserved.
パスワード:
接続先: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
"SYSTEM"."SYS_EXPORT_SCHEMA_01"を起動しています: SYSTEM/********@ORCL directory=DATA_PUMP_DIR dumpfile=scott.dmp logfile=scott_exp.log schemas=scott exclude=statistics
オブジェクト型SCHEMA_EXPORT/TABLE/TABLE_DATAの処理中です
オブジェクト型SCHEMA_EXPORT/USERの処理中です
オブジェクト型SCHEMA_EXPORT/SYSTEM_GRANTの処理中です
オブジェクト型SCHEMA_EXPORT/ROLE_GRANTの処理中です
オブジェクト型SCHEMA_EXPORT/DEFAULT_ROLEの処理中です
オブジェクト型SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMAの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/TABLEの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/COMMENTの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/INDEX/INDEXの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です
. . "SCOTT"."BONUS" 0 KB 0行がエクスポートされました
. . "SCOTT"."DEPT" 6.023 KB 4行がエクスポートされました
. . "SCOTT"."EMP" 8.695 KB 12行がエクスポートされました
. . "SCOTT"."SALGRADE" 5.953 KB 5行がエクスポートされました
マスター表"SYSTEM"."SYS_EXPORT_SCHEMA_01"は正常にロード/アンロードされました
******************************************************************************
SCOTT.SYS_EXPORT_SCHEMA_01に設定されたダンプ・ファイルは次のとおりです:
C:\APP\ADMINISTRATOR\ADMIN\ORCL\DPDUMP\SCOTT.DMP
ジョブ"SCOTT"."SYS_EXPORT_SCHEMA_01"が木 11月 16 15:19:40 2025 elapsed 0 00:00:47で正常に完了しました
無事正常にexpdpコマンドが完了しましたね。実際にOS上に出力されていることを確認しましょう。
C:\>dir C:\app\Administrator\admin\orcl\dpdump ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は B43C-E5E1 です C:\app\Administrator\admin\orcl\dpdump のディレクトリ 2025/11/16 15:19 <DIR> . 2025/11/16 15:19 <DIR> .. 2025/11/16 15:19 401,408 SCOTT.DMP 2025/11/16 15:19 1,813 scott_exp.log 3 個のファイル 403,389 バイト 2 個のディレクトリ 31,093,538,816 バイトの空き領域
dumpファイルとしてscott.dmpファイルがきちんと出力されていますね。
このファイルを、OCI上のオブジェクトストレージへアップロードしてあげましょう。
2.オブジェクトストレージへのDUMPファイルのアップロード
dumpファイルのオブジェクトストレージへのアップロードには様々な方法があります。
今回は、「bucket-migration」というオブジェクトストレージにブラウザを利用してdumpファイルをアップロードしてみます。
オブジェクトストレージについては以下の記事で紹介していますので、是非ご覧ください。
OCI オブジェクト・ストレージとは

- 「オブジェクト」の項目から「オブジェクトのアップロード」を選択します。選択すると、オブジェクトのアップロード画面が出てきます。

- 「コンピュータからファイルを選択」の項目にて、dumpファイルを選択し、次へ進みます。

- ファイルの選択が完了したら、画面右下部の「オブジェクトのアップロード」を選択します。

- 無事にdumpファイル「SCOTT.DMP」がアップロード出来ていることを確認します。

3.事前認証済リクエストの作成
アップロードしたdumpファイルをADBがアクセス出来るようにするために、今回は事前認証済リクエストを利用します。
事前認証済みリクエストを利用すると、URLを利用するだけでアクセス認証不要でファイルへのアクセスが可能となります。
- dumpファイルのオプションから、「事前認証済リクエストの作成」を選択します。

- 事前認証済リクエスト・ターゲットは「バケット」、アクセス・タイプは「オブジェクトの読取りと書込みを許可」、有効期限は任意の時間帯を設定して「事前認証済リクエストの作成」を選択します。

- 事前認証済リクエストのURLが発行されるので、「コピー」を選択してURLを保存しておきます。

4.ADBへのdumpファイルのimpdpの実行
では、オブジェクトストレージにアップロードされたdumpファイルをADBに取り込んでいきましょう!
まずは、ADBからオブジェクトストレージ上にアップロードされたdumpファイルが見えるかを確認します。
C:\>sqlplus ADMIN@ORCL SQL*Plus: Release 23.0.0.0.0 - Production on 日 11月 16 14:20:51 2025 Version 23.5.0.24.07 Copyright (c) 1982, 2024, Oracle. All rights reserved. パスワードを入力してください: 最終正常ログイン時間: 日 11月 16 2025 14:04:52 +09:00 Oracle AI Database 26ai Enterprise Edition Release 23.26.0.1.0 - for Oracle Cloud and Engineered Systems Version 23.26.0.1.0 に接続されました。 SQL> show user ユーザーは"ADMIN"です。 SQL> select OBJECT_NAME,BYTES/1024 "BYTES(KB)" from DBMS_CLOUD.LIST_OBJECTS(NULL,'<事前認証済リクエストURL>'); OBJECT_NAM BYTES(KB) ---------- ----------- SCOTT.DMP 392.000
無事dumpファイルがあることが確認できましたね。
ではimpdpを実行していきましょう。
実行ユーザーはADBの管理者であるADMINユーザーで実行します。DIRECTORYはDATA_PUMP_DIRとします。インポートログはDATA_PUMP_DIR配下に出力されます。
C:\>impdp ADMIN@ORCL schemas=SCOTT DIRECTORY=DATA_PUMP_DIR ^ More? DUMPFILE=<事前認証済リクエストURL>/o/SCOTT.DMP LOGFILE=SCOTT_IMP.LOG Import: Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems on 日 11月 16 16:51:21 2025 Version 23.5.0.24.07 Copyright (c) 1982, 2024, Oracle and/or its affiliates. All rights reserved. パスワード: 接続先: Oracle AI Database 26ai Enterprise Edition Release 23.26.0.1.0 - for Oracle Cloud and Engineered Systems マスター表"ADMIN"."SYS_IMPORT_SCHEMA_01"は正常にロード/アンロードされました "ADMIN"."SYS_IMPORT_SCHEMA_01"を起動しています: ADMIN/********@ORCL schemas=SCOTT DIRECTORY=DATA_PUMP_DIR DUMPFILE=<事前認証済リクエストURL>/o/SCOTT.DMP LOGFILE=SCOTT_IMP.LOG オブジェクト型SCHEMA_EXPORT/USERの処理中です オブジェクト型SCHEMA_EXPORT/SYSTEM_GRANTの処理中です オブジェクト型SCHEMA_EXPORT/ROLE_GRANTの処理中です オブジェクト型SCHEMA_EXPORT/DEFAULT_ROLEの処理中です オブジェクト型SCHEMA_EXPORT/TABLE/TABLEの処理中です オブジェクト型SCHEMA_EXPORT/TABLE/TABLE_DATAの処理中です . . "SCOTT"."BONUS" 0 KB 0行がインポートされました . . "SCOTT"."DEPT" 6 KB 4行がインポートされました . . "SCOTT"."EMP" 8.7 KB 12行がインポートされました . . "SCOTT"."SALGRADE" 6 KB 5行がインポートされました オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です ジョブ"ADMIN"."SYS_IMPORT_SCHEMA_01"が日 11月 16 07:51:34 2025 elapsed 0 00:00:06で正常に完了しました
問題なくインポートが出来ましたので、SCOTTユーザーのオブジェクトを確認してみましょう。
SQL> SELECT INDEX_NAME,TABLESPACE_NAME FROM USER_INDEXES; INDEX_NAME TABLESPACE_NAME ---------- --------------- PK_DEPT DATA PK_EMP DATA SQL> SELECT TABLE_NAME,TABLESPACE_NAME FROM USER_TABLES; TABLE_NAME TABLESPACE_NAME ---------- --------------- DEPT DATA EMP DATA SALGRADE DATA BONUS DATA
impdpではremapオプションを使用していませんが、自動的にDATA表領域にオブジェクトが作られています。
自動的にオブジェクトの表領域はDATA表領域へ変換されるんだね!

さいごに
今回は ADBへのDatapumpを利用した移行検証を紹介いたしました。
ADBではオブジェクトストレージを直接指定出来たり、表領域が自動変換されることをご理解頂けましたでしょうか?
最後までご覧いただきありがとうございました!
Oracle Cloudをご検討の際は弊社までお問い合わせください。
投稿者プロフィール

-
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早8年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!
最新技術情報や資格情報をチェックしたいアナタ!毎日遊びに来てください。きっとお役に立てます。
最新の投稿
Oracle2025年12月25日OCIへの移行を検証してみた その2 ADBへの移行(Datapump)
Oracle2025年12月22日AWRレポートで始める性能分析 -Part1 AWRレポートの取得方法-
Oracle2025年12月16日WindowsでマルチテナントのRAC作ってみた! その1
Oracle Cloud2025年12月15日Data Safeの新機能 セキュリティ・ポリシー機能について(2/2)

