はじめに
Oracle Database@AzureのAutonomous DatabaseにAzure FilesのNFS共有内にあるdmpファイルをインポートする手順を検証してみました。
注意
こちらの記事の内容はあくまで個人の実験メモ的な内容のため、こちらの内容を利用した場合のトラブルには一切責任を負いません。
また、こちらの記事の内容を元にしたOracleサポートへの問い合わせはご遠慮ください。
0. 事前準備
・高度なネットワーク機能(Advanced Network features)の有効化
こちらのマニュアルを参考にして、Azureの「高度なネットワーク機能(Advanced Network features)」を有効化します。
なお、マニュアルに記載のある以下のコマンドを実行するには、Cloud ShellをPowerShellモードにして実行します。
Register-AzProviderFeature -FeatureName "EnableRotterdamSdnApplianceForOracle" -ProviderNamespace "Microsoft.Baremetal"
Register-AzProviderFeature -FeatureName "EnableRotterdamSdnApplianceForOracle" -ProviderNamespace "Microsoft.Network"
・VNetの作成
Azure PortalからVNetを作成します。
ここでは、「VNet4ADB」という名前のVNetをJapan Eastリージョンに作成します。
IP addressesのタブで、Autonomous Databaseのプライベート・エンドポイントを配置するサブネットを追加します。
ここでは、サブネット名を「Subnet4ADB」とし、CIDRが10.0.1.0/24のサブネットを作成します。
Subnet Delegation欄のDelegate subnet to a serviceに「Oracle.Database/networkAttachments」を設定し、「Add」をクリックします。
Defaultサブネットを編集ボタン(鉛筆マーク)をクリックします。
サブネットの名前を「Subnet4StorageEndpoint」に変更し、「Save」をクリックします。
Vnet「Vnet4ADB」が作成できました。
「Go to resource」をクリックします。
・Autonomous Databaseの作成
Autonomous Databaseを作成します。
Autonomous Databaseを作成するサブスクリプション、リソース・グループを選択します。
Autonomous Databaseの名前を入力し、作成するリージョンを選択します。
今回はJapan East(東京)リージョンに作成します。
ネットワークのアクセスタイプとして「管理対象プライベート仮想ネットワークIPのみ」を選択し、仮想ネットワークとして、作成したVNet(Vnet4ADB)および作成したDelegated Subnet(Subnet4ADB)を選択します。
メンテナンス・パッチ・レベルを選択し、メンテナンス通知先のメールアドレスを入力します。
しばらく待つと、Autonomous Databaseが作成されます。
1. ストレージ・アカウントの作成
ストレージ・アカウントを作成します。
「+作成」をクリックします。
Azure FilesのNFS共有が利用可能なストレージ・アカウントを作成します。
NFS共有が利用するためのストレージ・アカウントの条件は、こちらのマニュアルに記載があります。
Autonomous Databaseのディレクトリ・オブジェクトにAzure FilesのNFS共有をアタッチするために、「REST API操作の安全な転送を必須にする」のチェックをオフにします。
ネットワークの設定で、パブリック・ネットワーク・アクセスを無効にします。
VNetに「VNet4ADB」、サブネットに「Subnet4StorageEndpoint」を指定し、OKをクリックします。
ストレージ・アカウントstorageaccount4filesが作成できました。
「セキュリティとネットワーク」内の「ネットワーク」を選択し、「プライベート・エンドポイント」をクリックします。
表示されたストレージ・アカウントのプライベート・エンドポイント名をクリックします。
カスタムDNSレコードに表示されたFQDNとIPアドレスをメモしておきます。
2. ファイル共有の作成
ここでは、「azurefilesshare」という名前のファイル共有を作成します。
プロトコルはNFSを選択し、「レビューと作成」をクリックします。
ファイル共有「azurefilesshare」が作成できました。
3. dmpファイルをAzure FilesのNFS共有に格納
Azure VM等からファイル共有azurefilesshareをマウントし、dmpファイルを配置します。
今回はtest.dmpというdmpファイルを配置し、パーミッションを644に設定しました。
4. プライベートDNSの設定(OCI側)
Oracle Database@AzureのAutonomous Databaseは、アウトバウンド通信の際にOCI側のプライベートDNSを参照しますので、Azure Filesのプライベート・エンドポイントのDNS情報をOCI側のプライベートDNSに追加します。
OCIコンソールでAutonomous Databaseの詳細画面にアクセスします。
ネットワーク・セクションの仮想クラウド・ネットワークのリンクをクリックします。
ゾーン名に「file.core.windows.net」と入力し、作成をクリックします。
作成したゾーンの名前「file.core.windows.net」をクリックします。
Azure Filesのストレージ・アカウント名(ここではstorageaccount4files)を名前に入力し、
レコード・タイプは「A - IPv4アドレス」を選択します。
Address(アドレス)にストレージ・アカウントのプライベート・エンドポイントのIPアドレス(ここでは10.0.0.6)を入力し、「変更の保存」をクリックします。
プライベート・ゾーンおよびストレージ・アカウントのエンドポイントのDNSレコードが追加できました。
5. NFS共有のAutonomous Databaseへのアタッチ
SQL*Plusからadminユーザとして、Autonomous Databaseに接続します。
[opc@NewClient ~]$ sqlplus admin/Demo#1Demo#1@adbatazure
SQL*Plus: Release 23.0.0.0.0 - Production on Thu Sep 11 23:24:52 2025
Version 23.9.0.25.07
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.28.0.1.0
SQL>
ストレージ・アカウントのプライベート・エンドポイントstorageaccount4files.files.core.windows.netへのアクセスを許可するためのネットワークACLを設定します。
SQL> BEGIN
2 DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
3 host =>'storageaccount4files.file.core.windows.net',
4 ace => xs$ace_type(privilege_list => xs$name_list('connect', 'resolve'),
5 principal_name => 'ADMIN',
6 principal_type =>xs_acl.ptype_db));
7 END;
8 /
PL/SQL procedure successfully completed.
SQL>
Azure FilesのNFS共有をアタッチするためのディレクトリ・オブジェクトを作成します。
ここではAZURE_FILES_DIRという名前のディレクトリ・オブジェクトを作成しました。
SQL> CREATE OR REPLACE DIRECTORY AZURE_FILES_DIR AS 'azurefiles';
Directory created.
SQL>
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMプロシージャを使用して、Azure FilesのNFS共有をディレクトリ・オブジェクトAZURE_FILES_DIRにアタッチします。
SQL> BEGIN
2 DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM(
3 file_system_name => 'AZUREFILES',
4 file_system_location =>'sstorageaccount4files.files.core.windows.net:/storageaccount4adb/container4adb',
5 directory_name => 'AZURE_FILES_DIR',
6 description => 'Attach Azure Files',
7 params => JSON_OBJECT('nfs_version' value 4)
8 );
9 END;
10 /
PL/SQL procedure successfully completed.
SQL>
ディレクトリ・オブジェクト内(=Azure FilesのNFS共有内)のファイルが参照できるか確認します。
SQL> col object_name for a20
SQL> SELECT object_name, bytes FROM DBMS_CLOUD.LIST_FILES('AZURE_FILES_DIR');
OBJECT_NAME BYTES
-------------------- ----------
test.dmp 446464
SQL>
6. インポートの実行
impdpコマンドを実行して、ディレクトリ・オブジェクトAZURE_FILE_DIR(=ファイル共有azurefilesshare)内にあるdmpファイルtest.dmpをインポートします。
[opc@NewClient ~]$ impdp admin/Demo#1Demo#1@azureadb DIRECTORY=AZURE_FILES_DIR DUMPFILE=test.dmp LOGFILE=impdp.log exclude=cluster,indextype,db_link
Import: Release 23.0.0.0.0 - Production on Fri Sep 19 00:32:01 2025
Version 23.9.0.25.07
Copyright (c) 1982, 2025, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Master table "ADMIN"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "ADMIN"."SYS_IMPORT_FULL_01": admin/********@azureadb DIRECTORY=AZURE_FILES_DIR DUMPFILE=test.dmp LOGFILE=impdp.log exclude=cluster,indextype,db_link
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PASSWORD_HISTORY
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
. . imported "SCOTT"."BONUS" 0 KB 0 rows
. . imported "SCOTT"."DEPT" 6.023 KB 4 rows
. . imported "SCOTT"."EMP" 8.773 KB 14 rows
. . imported "SCOTT"."SALGRADE" 5.953 KB 5 rows
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Processing object type SCHEMA_EXPORT/STATISTICS/MARKER
Job "ADMIN"."SYS_IMPORT_FULL_01" successfully completed at Fri Sep 19 04:33:13 2025 elapsed 0 00:01:10
[opc@NewClient ~]$
Azure FilesのNFS共有にあるdmpファイルをAutonomous Databaseにインポートできました。
参考情報
・AzureでのAutonomous Databaseリソースの管理
・Oracle Database@Azure のネットワーク計画
・Azure クラシック ファイル共有を作成する
・プライベートDNSゾーンの作成
・DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACEプロシージャ
・DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMプロシージャ