3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Oracle Database@Google:Google Filestore(NFS共有)内にあるdmpファイルをAutonomous Databaseにインポートしてみた

Posted at

はじめに

Oracle Database@GoogleのAutonomous Databaseに、Google FilestoreのNFS共有内にあるdmpファイルをインポートする手順を検証してみました。

注意
こちらの記事の内容はあくまで個人の実験メモ的な内容のため、こちらの内容を利用した場合のトラブルには一切責任を負いません。
また、こちらの記事の内容を元にしたOracleサポートへの問い合わせはご遠慮ください。

1. Filestoreインスタンスの作成

Autonomous Databaseのプライベート・エンドポイントがあるODBネットワークが関連づけられているVPC内にFilestoreインスタンスを作成します。
(詳細の手順は省略)

Filestoreインスタンスのファイル共有名とプライベートIPアドレスを確認し、メモしておきます。
スクリーンショット 2025-10-02 15.32.08.png

Google Compute EngineのVMインスタンス等からFilestoreインスタンスのNFS共有をマウントし、インポートするdmpファイルをコピーしておきます。

2. OCIのプライベートDNSにプライベート・ゾーンを追加

OCIコンソールで、Autonomous Databaseの詳細画面に移動します。
スクリーンショット 2025-10-02 14.53.36.png

ネットワーク・セクションの仮想クラウド・ネットワークの名前をクリックします。
スクリーンショット 2025-10-02 14.54.29.png

DNSリゾルバの名前をクリックします。
スクリーンショット 2025-10-02 14.54.40.png

デフォルト・プライベート・ビューの名前をクリックします。
スクリーンショット 2025-10-02 14.55.28.png

「プライベート・ゾーン」タブに移動します。
スクリーンショット 2025-10-02 14.55.41.png

「ゾーンの作成」をクリックします。
スクリーンショット 2025-10-02 14.56.09.png

適当なゾーン名を入力し、「作成」をクリックします。
ここではゾーン名を「filestore.google」としました。
スクリーンショット 2025-10-02 14.57.36.png

ゾーンが作成されました。
スクリーンショット 2025-10-02 14.58.46.png

作成したゾーンの名前をクリックします。
スクリーンショット 2025-10-02 14.58.46.png

「レコード」タブに移動します。
スクリーンショット 2025-10-02 14.59.24.png

「レコードの管理」をクリックします。
スクリーンショット 2025-10-02 14.59.50.png

「レコードの追加」をクリックします。
スクリーンショット 2025-10-02 15.00.06.png

名前(ホスト名)」を入力し(ここでは「google-filestore)、レコード・タイプとして「A - IPv4アドレス」を選択します。
1.で確認したFilestoreインスタンスのIPアドレスをAddress(アドレス)に入力し、「変更の保存」をクリックします。
スクリーンショット 2025-10-02 15.02.04.png

「変更の確認」をクリックします。
スクリーンショット 2025-10-02 15.02.18.png

「変更の公開」をクリックします。
スクリーンショット 2025-10-02 15.02.31.png

Filestoreインスタンスにアクセスするためのプライベート・ゾーンおよびDNSレコードが追加できました。
スクリーンショット 2025-10-02 15.55.35.png

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>
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?