専用Exadataインフラストラクチャ上のAutonomous Databaseへの外部ファイル・ストレージのアタッチ

データベースとファイル・システムが同じプライベート・ネットワークにある場合、Oracle Cloud Infrastructureまたはオンプレミスにデプロイされた外部ファイル・ストレージをAutonomous Databaseにアタッチできます。アクセスするファイル・システムのバージョンに応じて、NFSv3とNFSv4の両方がサポートされます。

これにより、オンプレミス・データ・センター内のVirtual Cloud Network (VCN)または他のネットワーク・ファイル・システムのOCI File Storageからデータをロードできます。

外部ファイル・ストレージをサポートすると、次のことができます。
  • レガシー・アプリケーションからAutonomous Databaseインスタンスに接続し、ファイル・システムを使用してデータをロードおよびアンロードします。
  • Autonomous Databaseのさまざまなソースからのデータを分析します。
  • オンプレミス・データ・センターまたはプライベートVCNのファイル・システムからAutonomous Database内のデータへのアクセスを保護します。

外部ファイル記憶域の要件

外部ファイル・ストレージを正常にアタッチするには、NFSv4にNFSv3および19.23以降を使用するAutonomous Databaseのバージョンが19.18以降であることを確認します。

ファイル・システムからAutonomous Database内のデータにアクセスするには:
  • オンプレミス・データ・センター: FastConnectまたはサイト間VPNを設定して、オンプレミス・データ・センターに接続します。詳細は、FastConnectおよびサイト間VPNを参照してください。

  • Oracle Cloud Infrastructure
    • OCI File Storage Service (FSS)アクセス用のVirtual Cloud Network (VCN)セキュリティ・ルールの作成:ファイル・ストレージをマウントする前に、特定のプロトコルとポートを使用してマウント・ターゲットのVNICへのトラフィックを許可するように、セキュリティ・ルールを構成する必要があります。セキュリティ・ルールによって次のトラフィックが有効になります:
      • オープン・ネットワーク・コンピューティング・リモート・プロシージャ・コール(ONC RPC) rpcbindユーティリティ・プロトコル
      • ネットワーク・ファイル・システム(NFS)プロトコル
      • ネットワーク・ファイル・システム(MOUNT)プロトコル
      • Network Lock Manager (NLM)プロトコル

      詳細は、ファイル・ストレージに対するVCNセキュリティ・ルールの構成を参照してください。

    • OCI FSSでのファイル・システムの作成: OCIコンソールを使用してファイル・システムを作成します。ファイル・システムのマウント・ターゲットの詳細を構成する場合は、データベースがデプロイされているVCNのVCNおよびプライベート・サブネットを選択し、完全修飾ドメイン名(FQDN)を自動的に生成するホスト名を指定します。詳細は、ファイル・システムの作成を参照してください。
    • マウント・ターゲットのFQDNを取得します: マウント・ターゲットの詳細を表示するにはの説明に従って、OCIコンソールからファイル・システムのマウント・ターゲットの詳細を表示し、FQDNを取得します。

外部ファイル・システムの添付

DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMを使用して、Autonomous Database内のディレクトリにファイル・システムをアタッチします。
ノート

DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMプロシージャは、プライベート・エンドポイントにあるデータベースにのみプライベート・ファイル・ストレージ・サービスをアタッチできます。
  1. ディレクトリを作成するか、既存のディレクトリを使用して、Autonomous Databaseに外部ファイル・システムをアタッチします。ファイル・システムをデータベース内のディレクトリの場所にアタッチするには、Autonomous Databaseインスタンスのディレクトリ・オブジェクトに対するWRITE権限が必要です。

    たとえば、次のコマンドは、FSS_DIRという名前のデータベース・ディレクトリを作成し、ファイル・システム・ディレクトリのfssを作成します:
    CREATE DIRECTORY FSS_DIR AS ‘fss’;

    詳細は、ディレクトリの作成を参照してください。

  2. DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMを実行して、Autonomous Database内のディレクトリにファイル・システムをアタッチします。このプロシージャを実行するには、ADMINユーザーとしてログインするか、DBMS_CLOUD_ADMINに対するEXECUTE権限を持っている必要があります。

    • デフォルトでは、DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMはNFSv3を使用します。ただし、paramsパラメータを明示的に使用し、値3でnfs_versionを指定してNFSv3を指定することもできます。

      BEGIN
      DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
          file_system_name      => 'FSS',
          file_system_location  => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
          directory_name        => 'FSS_DIR',  
          description           => 'Source FSS for sales data'                                   
      );END;                                                                          
      /
    • NFSv4を使用するには、DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMparamsパラメータを含めて、値4でnfs_versionを指定してNFSv4を指定します。

      BEGIN
        DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
          file_system_name => 'FSS',
          file_system_location => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
          directory_name => 'FSS_DIR',
          description => 'Source FSS for sales data',
          params => JSON_OBJECT('nfs_version' value 4)
        );
      END;
      /

    この例では、file_system_nameパラメータで指定されたネットワーク・ファイル・システムをAutonomous Databaseにアタッチします。

    file_system_locationパラメータは、ファイル・システムの場所を指定します。file_system_locationで指定する値は、完全修飾ドメイン名(FQDN)とファイル・パス(FQDN:file_path)で構成されます。例:

      • FQDN: myhost.sub000445.myvcn.oraclevcn.com
      • ファイル・パス: /results

    directory_nameパラメータは、ファイル・システムをアタッチするAutonomous Database内のディレクトリ名を指定します。これは、ステップ1で作成したディレクトリ、または以前に作成した別のディレクトリです。

    descriptionパラメータは、タスクの説明を指定します。

DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMの使用に関するノート:
  • Oracle Cloud Infrastructure File Storageでは、NFSバージョン3を使用して共有します。詳細は、ファイル・ストレージの概要を参照してください。

  • Oracle Cloud Infrastructure File Storage以外のシステムにアタッチする場合、このプロシージャではNFSv3およびNFSv4がサポートされます。
  • NFSv3を使用する接続されたNFSサーバーがあり、NFSサーバーでNFSバージョンがNFSv4に更新されている場合は、(nfs_versionを4に設定したparamsパラメータを使用して)DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEMDBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMを実行する必要があります。これにより、Autonomous DatabaseがNFSv4サーバーにアクセスできるように、一致するプロトコルでNFSがアタッチされます。デタッチしてから再アタッチしないと、NFSサーバーにアクセスできなくなり、"Protocol not supported"などのエラーが表示される場合があります。

詳細は、ATTACH_FILE_SYSTEMプロシージャを参照してください。

問合せDBA_CLOUD_FILE_SYSTEMS

ファイル・システムをアタッチした後、DBA_CLOUD_FILE_SYSTEMSビューを問い合せて、アタッチされたファイル・システムに関する情報を取得できます。

例:
SELECT file_system_name, file_system_location, directory_path                      
   FROM dba_cloud_file_systems
   WHERE file_system_name = 'FSS';

この問合せは、FSSファイル・システム名の詳細を返します。詳細は、DBMS_CLOUD_FILE_SYSTEMSビューを参照してください。

アタッチされたファイル・システムでは、ディレクトリ名を受け入れる任意のPL/SQL APIを使用して、アタッチされたファイル・システム上のファイルの読取りおよび書込みを行うことができます。たとえば、次のいずれかの方法を使用して、アタッチされたFSSディレクトリを操作できます。

  • UTL_FILEパッケージ。

  • Data Pump ExportおよびImportユーティリティ。

  • DBMS_CLOUD.LIST_FILESDBMS_CLOUD.PUT_OBJECTなどのディレクトリを操作するDBMS_CLOUD API。

UTL_FILEを使用した、アタッチされたファイル・システム上のファイルの書込みを示す例:
DECLARE
  l_file         UTL_FILE.FILE_TYPE;
  l_location     VARCHAR2(100) := 'FSS_DIR';
  l_filename     VARCHAR2(100) := 'test.csv';
BEGIN
  -- Open the file.
  l_file := UTL_FILE.FOPEN(l_location, l_filename, 'w');
   
  UTL_FILE.PUT(l_file, 'Scott, male, 1000');
 
  -- Close the file.
  UTL_FILE.FCLOSE(l_file);
END;
/
UTL_FILEを使用した、アタッチされたファイル・システム上のファイルの読取りを示す例:
DECLARE
  l_file         UTL_FILE.FILE_TYPE;
  l_location     VARCHAR2(100) := 'FSS_DIR';
  l_filename     VARCHAR2(100) := 'test.csv';
  l_text         VARCHAR2(32767);
BEGIN
  -- Open the file.
  l_file := UTL_FILE.FOPEN(l_location, l_filename, 'r');
 
  UTL_FILE.GET_LINE(l_file, l_text, 32767);
 
  -- Close the file.
  UTL_FILE.FCLOSE(l_file);
END;
/
DBMS_CLOUD.LIST_FILESを使用したアタッチされたファイル・システム上のリスト・ファイルを示す例:
SELECT object_name FROM DBMS_CLOUD.LIST_FILES('FSS_DIR');
詳細は、次を参照してください:

DBMS_CLOUD_FILE_SYSTEMSビュー

DBA_CLOUD_FILE_SYSTEMSビューには、データベース内のディレクトリの場所にアタッチされた外部ファイル・システムに関する情報がリストされます。
データ型 説明
FILE_SYSTEM_NAME VARCHAR2(128) ファイル・システム名
FILE_SYSTEM_LOCATION VARCHAR2(4000) ファイル・システムのロケーション
DIRECTORY_NAME VARCHAR2(128) アタッチされたディレクトリ名
DIRECTORY_PATH VARCHAR2(4000) アタッチされたディレクトリ・パス
NFS_VERSION NUMBER NFSバージョン
DESCRIPTION VARCHAR2(4000) DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEMの実行時に説明パラメータに指定された値
CREATION_TIME TIMESTAMP(6) WITH TIME ZONE 作成タイムスタンプ
UPDATE_TIME TIMESTAMP(6) WITH TIME ZONE 更新タイムスタンプ

外部ファイル・システムのデタッチ

DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEMプロシージャを使用して、Autonomous Databaseのディレクトリからファイル・システムをデタッチします。
ノート

DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEMプロシージャは、プライベート・エンドポイントにあるデータベースからのみプライベート・ファイル・ストレージ・サービスをデタッチできます。

ディレクトリの場所からファイル・システムをデタッチするには、ディレクトリ・オブジェクトに対するWRITE権限が必要です。

DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEMプロシージャを実行して、Autonomous Databaseのディレクトリの場所からファイル・システムをデタッチします。このプロシージャを実行するには、ADMINユーザーとしてログインするか、DBMS_CLOUD_ADMINに対するEXECUTE権限を持っている必要があります。
BEGIN
  DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
    file_system_name      => 'FSS'                                       
  );END;                                                                          
/    

この例では、file_system_nameパラメータで指定されたネットワーク・ファイル・システムをAutonomous Databaseからデタッチします。このパラメータの値を指定する必要があります。このファイル・システムに関する情報は、DBA_CLOUD_FILE_SYSTEMSビューから削除されます。

詳細は、DETACH_FILE_SYSTEMプロシージャを参照してください。