今回の記事では Oracle Database@Azure の Autonomous Database(ADB) で Datapump を使い、データのエクスポート、インポートを行います。
ADBからエクスポートしたダンプファイルを Azure の BLOBストレージ経由で取り出してみます。
Oracle Datapumpとは
Oracle Databaseのデータやメタデータを高速に移動するためのツールです。主にデータベース間の移行や論理バックアップに使用されます。
エクスポートを実行すると、Oracleデータベースが稼働するサーバー上の指定のディレクトリにダンプファイルが作成されます。データをインポートするには、サーバー上の特定のディレクトリにダンプファイルを配置してインポートを実行します。
ADB におけるエクスポート・インポート
まずは ADB でエクスポート、インポートを実行する前に、Datapumpで実行されるディレクトリを確認します。デフォルトで用意される DATA_PUMP_DIRディレクトリ のパスを確認します。
テスト用のデータベース db201 に、デフォルトで作成されるADMINユーザーでログインして確認します。
$ sqlplus admin@db201 SQL*Plus: Release 23.0.0.0.0 - Production on Sun Sep 28 16:06:29 2025 Version 23.8.0.25.04 Copyright (c) 1982, 2025, Oracle. All rights reserved. Enter password: Last Successful login time: Sun Sep 28 2025 15:26:34 +09:00 Connected to: Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems Version 23.10.0.25.10 SQL> select DIRECTORY_NAME,DIRECTORY_PATH from dba_directories where directory_name = 'DATA_PUMP_DIR'; DIRECTORY_NAME DIRECTORY_PATH -------------------- ---------------------------------------------------------------------------------------------------- DATA_PUMP_DIR /u03/dbfs/390000AAAABBBBCCCCDDDDEEEE123456/data/dpdump SQL>
今回利用している環境では 「/u03/dbfs/390000AAAABBBBCCCCDDDDEEEE123456/data/dpdump」と表示されました。
※「390000AAAABBBBCCCCDDDDEEEE123456」の部分はダミーです。実際には各環境により異なります。
実際にexpdpコマンドでエクスポートを実行します。
$ expdp admin@db201 schemas=user01 dumpfile=user01.dmp Export: Release 23.0.0.0.0 - Production on Sun Sep 28 00:42:48 2025 Version 23.8.0.25.04 Copyright (c) 1982, 2025, Oracle and/or its affiliates. All rights reserved. Password: Connected to: Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems Starting "ADMIN"."SYS_EXPORT_SCHEMA_01": admin/********@db201 schemas=user01 dumpfile=user01.dmp Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type SCHEMA_EXPORT/USER Processing object type SCHEMA_EXPORT/ROLE_GRANT Processing object type SCHEMA_EXPORT/DEFAULT_ROLE Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA Processing object type SCHEMA_EXPORT/PASSWORD_HISTORY Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA/LOGREP Processing object type SCHEMA_EXPORT/TABLE/TABLE Processing object type SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA/LBAC_EXP . . exported "USER01"."TBL01" 5.6 KB 4 rows ORA-39173: Encrypted data has been stored unencrypted in dump file set. Master table "ADMIN"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded ****************************************************************************** Dump file set for ADMIN.SYS_EXPORT_SCHEMA_01 is: /u03/dbfs/390000AAAABBBBCCCCDDDDEEEE123456/data/dpdump/user01.dmp Job "ADMIN"."SYS_EXPORT_SCHEMA_01" successfully completed at Sat Sep 27 15:44:32 2025 elapsed 0 00:01:08
エクスポートが正常に完了し、ダンプファイルが「/u03/dbfs/390000AAAABBBBCCCCDDDDEEEE123456/data/dpdump/user01.dmp」に作成されたことがわかります。
続いて、このダンプファイルを使ってユーザーuser02にデータをインポートします。
$ impdp admin@db201 dumpfile=user01.dmp remap_schema=user01:user02 Import: Release 23.0.0.0.0 - Production on Sun Sep 28 02:11:25 2025 Version 23.8.0.25.04 Copyright (c) 1982, 2025, Oracle and/or its affiliates. All rights reserved. Password: Connected to: Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems Master table "ADMIN"."SYS_IMPORT_FULL_01" successfully loaded/unloaded Starting "ADMIN"."SYS_IMPORT_FULL_01": admin/********@db201 dumpfile=user01.dmp remap_schema=user01:user02 Processing object type SCHEMA_EXPORT/USER Processing object type SCHEMA_EXPORT/ROLE_GRANT Processing object type SCHEMA_EXPORT/DEFAULT_ROLE Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA Processing object type SCHEMA_EXPORT/PASSWORD_HISTORY Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA/LOGREP Processing object type SCHEMA_EXPORT/TABLE/TABLE Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA . . imported "USER02"."TBL01" 5.6 KB 4 rows Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA/LBAC_EXP Job "ADMIN"."SYS_IMPORT_FULL_01" successfully completed at Sat Sep 27 17:11:40 2025 elapsed 0 00:00:09
正常にインポートできました。この操作はオンプレミスのOracleデータベースと変わりありません。
データベース内部でエクスポート・インポートを行う分には問題ありませんが、他のデータベースへデータを移行したい場合はどうすればいいのでしょうか。
オンプレミス環境であればサーバーからダンプファイルをダウンロードしてほかのサーバにアップロードすればインポート可能です。
※ ADB はOracleデータベースのマネージドサービスなので、OSのファイルにアクセスすることはできません。
ダンプファイルを外部に持ち出す
ADBでダンプファイルを外部に持ち出すには、ADBでサポートされているオブジェクトストレージにダンプファイルを出力します。以下のオブジェクトストレージがサポートされています。
- Oracle Cloud Infrastructure Object Storage
- Oracle Cloud Infrastructure Object Storage Classic
- Azure Blob StorageまたはAzure Data Lake Storage
- Amazon S3
今回は、Azure上のデータベースなので Azure BLOB Storage にダンプファイルを出力します。

ストレージアカウント作成
Azure BLOB Strageを利用するためにストレージアカウントを作成します。
テスト用にストレージアカウントを作成します。
| 項目 | 指定値 |
|---|---|
| ストレージアカウント名 | (ストレージアカウント名) |
| リージョン | (ADBと同じリージョン) |
| 優先ストレージの種類 | Azure BLOB Storage または Azure Data Lake Storage Gen 2 |
| パフォーマンス | Standard |
| 冗長性 | ローカル冗長ストレージ(LRS) |

基本情報以外のタブはそのままでストーレジアカウントを作成します。
コンテナーの作成
実際にファイルを格納するコンテナーを作成します。
作成したストレージアカウント に コンテナー adb-dumpfiles を作成します。

資格情報作成
コンテナーにアクセスするために必要な資格情報を作成します。
アクセスキーの確認
ストレージアカウントのセキュリティーとネットワークからアクセスキーを確認します。

資格情報作成
データベースにログインして dbms_cloud.create_credential プロシージャで資格情報を作成します。 exec dbms_cloud.create_credential('資格情報名','ストレージアカウント名','(アクセスキー)');
SQL> exec dbms_cloud.create_credential('BLOBCRED','(ストレージアカウント名)','(アクセスキー)'); PL/SQL procedure successfully completed. SQL>
BLOB ストレージへエクスポート
コンテナーのURL確認
コンテナーのプロパティからURLを確認します。

エクスポート
作成した資格情報とコンテナーURLを指定して expdpを実行します。 dumpfileに「コンテナURL/ファイル名.dmp」と指定します。
$ expdp admin@db201_medium schemas=user02 dumpfile=https://xxxxxx.xxxx.xxxx.xxxxxxxxx.xxx/yyyyy-yyyy/user02.dmp credential=BLOBCRED Export: Release 23.0.0.0.0 - Production on Sun Sep 28 17:21:46 2025 Version 23.8.0.25.04 Copyright (c) 1982, 2025, Oracle and/or its affiliates. All rights reserved. Password: Connected to: Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems Starting "ADMIN"."SYS_EXPORT_SCHEMA_01": admin/********@db201_medium schemas=user02 dumpfile=https://xxxxxx.xxxx.xxxx.xxxxxxxxx.xxx/yyyyy-yyyy/user02.dmp credential=BLOBCRED Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type SCHEMA_EXPORT/USER Processing object type SCHEMA_EXPORT/ROLE_GRANT Processing object type SCHEMA_EXPORT/DEFAULT_ROLE Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA Processing object type SCHEMA_EXPORT/PASSWORD_HISTORY Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA/LOGREP Processing object type SCHEMA_EXPORT/TABLE/TABLE Processing object type SCHEMA_EXPORT/POST_SCHEMA/PROCACT_SCHEMA/LBAC_EXP . . exported "USER02"."TBL01" 5.6 KB 4 rows ORA-39173: Encrypted data has been stored unencrypted in dump file set. Master table "ADMIN"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded ****************************************************************************** Dump file set for ADMIN.SYS_EXPORT_SCHEMA_01 is: https://xxxxxx.xxxx.xxxx.xxxxxxxxx.xxx/yyyyy-yyyy/user02.dmp Job "ADMIN"."SYS_EXPORT_SCHEMA_01" successfully completed at Sun Sep 28 08:22:39 2025 elapsed 0 00:00:46
expdp コマンドが完了したのでコンテナーにファイルuser02.dmpができていることを確認します。

外部からコンテナーにファイルをアップロードすればインポートも可能です。
おわりに
ADBはOSにアクセスしてファイル操作ができない不便な面もありますが、BLOBストレージを活用することでオンプレミスと同様にエクスポート・インポートできます。
今回はその方法として、Azure BLOB Storage にエクスポートする手順を紹介しました。