17.2 データベース・ファイル・システム(DBFS)とは

データベース・ファイル・システム(DBFS)により、サーバーおよびクライアントを使用して標準ファイル・システム・インタフェースが作成されます。

17.2.1 DBFSについて

DBFSは、ローカル・ファイル・システムと類似した共有ネットワーク・ファイル・システムを提供し、サーバー・コンポーネントとクライアント・コンポーネントの両方を持つ点で、NFSプロトコルと類似しています。

DBFSのコアには、Oracle Database内のPL/SQLインタフェースであるDBFSコンテンツAPIがあります。これは、様々なタイプのストレージのサポートを可能にするプログラム・インタフェースであるDBFSコンテンツSPIに接続します。

プログラミング・レベルでは、クライアントはDBFSコンテンツAPIをコールして、ファイルの削除などの特定の機能を実行します。DBFSコンテンツAPIのdeletefile機能は、DBFSコンテンツSPIをコールしてその機能を実行します。

図17-1 データベース・ファイル・システム(DBFS)

図17-1の説明が続きます
「図17-1 データベース・ファイル・システム(DBFS)」の説明

17.2.2 DBFSサーバー

データベース内のファイル・システムの実装は、DBFSコンテンツ・ストア(DBFS SecureFilesストアなど)と呼ばれます。DBFSコンテンツ・ストアにより、すべてのデータベース・ユーザーは、クライアントによってマウント可能な1つ以上のファイル・システムを作成できます。各ファイル・システムには、ファイル・システム・コンテンツが保持されるシステム専用の表があります。DBFSの場合、ファイル・サーバーはOracle Databaseです。

DBFSのコアには、Oracle Database内のPL/SQLインタフェースであるDBFSコンテンツAPIがあります。DBFSコンテンツ・ストア・プロバイダ・インタフェースに接続します。DBFSコンテンツ・ストア・プロバイダ・インタフェースは、様々なタイプの記憶域をサポートできるプログラム・インタフェースです。

DBFSコンテンツSPIでサポートされている様々なタイプのストアを次に示します。

  • DBFS SecureFilesストア: SecureFiles LOB列とともに表を使用してファイル・システム・データを格納するDBFSコンテンツ・ストア。POSIXに類似したファイル・システム機能を実装します。

  • DBFS階層ストア: Oracle Recovery Manager (RMAN)でサポートされている任意のテープ・ストレージ単位やクラウド・ストレージ・システムへのファイルの書込みが可能なDBFSコンテンツ・ストア。

  • ユーザー定義ストア: ユーザーによって定義されるコンテンツ・ストア。これにより、ユーザーは、OSコードを作成しなくてもOracle Database内で独自のファイルシステムをプログラムできます。

17.2.3 DBFSクライアント・アクセス方法

この項では、DBFSにアクセスする様々な方法について学習します。

データベース・ファイル・システムは複数のアクセス方法を提供します。

  • PL/SQLクライアント・インタフェース

    データベース・アプリケーションはDBFSコンテンツAPI PL/SQLインタフェースを介してDBFSストア内のファイルに直接アクセスできます。PL/SQLインタフェースにより、データベース・トランザクションと読取り一貫性が、リレーショナルおよびファイル・データをまたいで可能になります。

  • DBFSクライアント・コマンドライン・インタフェース

    dbfs_clientというクライアント・コマンドライン・インタフェースは、各ファイル・システム・クライアント・コンピュータで実行します。dbfs_clientを使用すると、ネットワーク上の任意のホストのデータベースに対してユーザーがファイルのコピーを行うことができます。これは、シェル・ユーティリティlsおよびcpと類似する方法で、リストやコピーなどの簡単なファイル・システム・コマンドを実装します。コマンド・インタフェースにより、DBFSのOSマウントを必要とせずにデータベースへの直接接続が確立されます。

  • ファイル・システム・マウント・インタフェース

    LinuxおよびSolarisの場合、dbfs_clientには、データベースに格納されたファイルへの透過的なアクセスを使用してファイルシステムのマウント・ポイントを実装するFUSE (Filesystem in User Space)カーネル・モジュールを使用するマウント・インタフェースも含まれます。この場合、LinuxまたはSolarisカーネルへの変更は必要ありません。FUSEカーネル・モジュールからの標準のファイル・システム・コールを受信し、それをDBFSコンテンツ・ストア内のPL/SQLプロシージャに対するOCIコールに変換します。

  • DBFSリンク

    DBFSリンク、データベース・ファイル・システム・リンクは、データベースの外部に格納されたファイルに対するSecureFiles LOBロケータからの参照です。

    DBFSリンクを使用して、既存の表から他のストレージにSecureFilesを移行できます。

関連項目: