はじめに
Oracle Database@GoogleのAutonomous Databaseに、Google FilestoreのNFS共有内にあるdmpファイルをインポートする手順を検証してみました。
注意
こちらの記事の内容はあくまで個人の実験メモ的な内容のため、こちらの内容を利用した場合のトラブルには一切責任を負いません。
また、こちらの記事の内容を元にしたOracleサポートへの問い合わせはご遠慮ください。
1. Filestoreインスタンスの作成
Autonomous Databaseのプライベート・エンドポイントがあるODBネットワークが関連づけられているVPC内にFilestoreインスタンスを作成します。
(詳細の手順は省略)
Filestoreインスタンスのファイル共有名とプライベートIPアドレスを確認し、メモしておきます。
Google Compute EngineのVMインスタンス等からFilestoreインスタンスのNFS共有をマウントし、インポートするdmpファイルをコピーしておきます。
2. OCIのプライベートDNSにプライベート・ゾーンを追加
OCIコンソールで、Autonomous Databaseの詳細画面に移動します。
ネットワーク・セクションの仮想クラウド・ネットワークの名前をクリックします。
適当なゾーン名を入力し、「作成」をクリックします。
ここではゾーン名を「filestore.google」としました。
名前(ホスト名)」を入力し(ここでは「google-filestore)、レコード・タイプとして「A - IPv4アドレス」を選択します。
1.で確認したFilestoreインスタンスのIPアドレスをAddress(アドレス)に入力し、「変更の保存」をクリックします。
Filestoreインスタンスにアクセスするためのプライベート・ゾーンおよびDNSレコードが追加できました。
3. ネットワークACLの設定
SQL*Plus等のクライアントから、adminユーザとしてAutonomous Databaseに接続します。
[zaku@oracle-client ~]$ sqlplus admin@adbatgoogle
SQL*Plus: Release 23.0.0.0.0 - Production on Thu Oct 2 06:07:35 2025
Version 23.9.0.25.07
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Enter password:
Last Successful login time: Thu Oct 02 2025 06:06:39 +00:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.29.0.1.0
SQL>
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACEプロシージャを使用して、Filestoreインスタンスへのアクセスを許可するためのネットワークACLを設定します。
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => 'google-filestore.filestore.googlecloud',
ace => xs$ace_type(
privilege_list => xs$name_list('connect', 'resolve'),
principal_name => 'ADMIN',
principal_type => xs_acl.ptype_db
)
);
END;
/
SQL> BEGIN
2 DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
3 host => 'google-filestore.filestore.googlecloud',
4 ace => xs$ace_type(
5 privilege_list => xs$name_list('connect', 'resolve'),
6 principal_name => 'ADMIN',
7 principal_type => xs_acl.ptype_db
8 )
9 );
10 END;
11 /
PL/SQL procedure successfully completed.
SQL>
4. ディレクトリ・オブジェクトの作成
FilestoreのNFS共有をアタッチするためのディレクトリ・オブジェクトを作成します。
CREATE OR REPLACE DIRECTORY FILESTORE_DIR AS 'filestore';
SQL> CREATE OR REPLACE DIRECTORY FILESTORE_DIR AS 'filestore';
Directory created.
SQL>
5. ディレクトリ・オブジェクトにFilestoreのNFS共有をアタッチ
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMプロシージャを使用して、4.で作成したディレクトリ・オブジェクトにFilestoreインスタンスのNFS共有をアタッチします。
BEGIN
DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM(
file_system_name => 'FilestoreNFS',
file_system_location => 'google-filestore.filestore.googlecloud:/filestore_share',
directory_name => 'FILESTORE_DIR',
description => 'Attach Google Cloud Filestore NFS',
params => JSON_OBJECT('nfs_version' value 3)
);
END;
/
SQL> BEGIN
2 DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM(
3 file_system_name => 'FilestoreNFS',
4 file_system_location => 'google-filestore.filestore.googlecloud:/filestore_share',
5 directory_name => 'FILESTORE_DIR',
6 description => 'Attach Google Cloud Filestore NFS',
7 params => JSON_OBJECT('nfs_version' value 3)
8 );
9 END;
10 /
PL/SQL procedure successfully completed.
SQL>
DBMS_CLOUD.LIST_FILESファンクションを使用してディレクトリ・オブジェクト内のファイルをリストし、FilestoreインスタンスのNFS共有の内容が参照できるか確認してみます。
SELECT object_name FROM DBMS_CLOUD.LIST_FILES('FILESTORE_DIR');
SQL> SELECT object_name FROM DBMS_CLOUD.LIST_FILES('FILESTORE_DIR');
OBJECT_NAME
--------------------------------------------------------------------------------
test.dmp
SQL>
ディレクトリ・オブジェクトを経由して、FilestoreインスタンスのNFS共有内のファイルが参照できました。
FilestoreインスタンスのNFS共有が正しくディレクトリ・オブジェクトにアタッチできたことが確認できました。
SQL*Plusを終了します。
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.29.0.1.0
[zaku@oracle-client ~]$
6. impdpの実行
DIRECTORYとして、FilestoreインスタンスのNFS共有をアタッチしたディレクトリ・オブジェクトを指定してimpdpを実行します。
impdp admin@adbatgoogle DIRECTORY=FILESTORE_DIR DUMPFILE=test.dmp LOGFILE=impdp.log exclude=cluster,indextype,db_link
[zaku@oracle-client ~]$ impdp admin@adbatgoogle DIRECTORY=FILESTORE_DIR DUMPFILE=test.dmp LOGFILE=impdp.log exclude=cluster,indextype,db_link
Import: Release 23.0.0.0.0 - Production on Thu Oct 2 06:24:56 2025
Version 23.9.0.25.07
Copyright (c) 1982, 2025, Oracle and/or its affiliates. All rights reserved.
Password:
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/********@adbatgoogle DIRECTORY=FILESTORE_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 Thu Oct 2 06:25:11 2025 elapsed 0 00:00:07
[zaku@oracle-client ~]$
Google Filestore(NFS共有)内にあるdmpファイルをAutonomous Databaseにインポートできました。
7. クリーンアップ
SQL*Plus等のクライアントから、adminユーザとしてAutonomous Databaseに接続します。
[zaku@oracle-client ~]$ sqlplus admin@adbatgoogle
SQL*Plus: Release 23.0.0.0.0 - Production on Thu Oct 2 06:26:19 2025
Version 23.9.0.25.07
Copyright (c) 1982, 2025, Oracle. All rights reserved.
Enter password:
Last Successful login time: Thu Oct 02 2025 06:25:01 +00:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.29.0.1.0
SQL>
DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEMプロシージャを使用して、ディレクトリ・オブジェクトにアタッチしたNFS共有をデタッチします。
EXEC DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM( 'FilestoreNFS')
SQL> EXEC DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM( 'FilestoreNFS')
PL/SQL procedure successfully completed.
SQL>
ディレクトリ・オブジェクトを削除します。
DROP DIRECTORY FILESTORE_DIR;
SQL> DROP DIRECTORY FILESTORE_DIR;
Directory dropped.
SQL>