20 データベース・ファイルシステムの概要

内容は次のとおりです。

20.1 データベース・ファイルシステムを使用する理由

概念的には、データベース・ファイルシステムは、データベース表に格納されているファイルおよびディレクトリの最上部に配置されたファイルシステム・インタフェースです。

通常、アプリケーションは、標準SQLデータ型であるBLOBおよびCLOBを使用して、Oracle Database内のファイル(医療イメージ、請求書イメージ、ドキュメント、ビデオおよび他のファイルなど)を格納および取得します。Oracle Databaseは、従来のファイルシステムより優れたセキュリティ、可用性、堅牢性、トランザクション機能およびスケーラビリティを提供します。リレーショナル・データとともにデータベースに格納されるファイルは、自動的にバックアップされ、Data Guardを使用して障害時リカバリ・サイトと同期され、まとめてリカバリされます。

データベース・ファイルシステム(DBFS)は、データベースに格納されているファイルをユーザーがアクセスおよび管理しやすくするためのOracle Databaseの機能です。このインタフェースを使用すると、BLOBおよびCLOBプログラム・インタフェースを使用するよう特に記述されたプログラムに制限されずに、データベース内のファイルにアクセスできるようになります。これで、ファイルに作用する任意のオペレーティング・システム(OS)プログラムを使用して、データベース内のファイルに透過的にアクセスできるようになります。たとえば、ETL (抽出、変換およびロード)ツールは、データベースにステージング・ファイルを透過的に格納できます。ファイルベースのアプリケーションは、アプリケーションを変更せずに、最大可用性アーキテクチャ(MAA)などのデータベース機能のメリットを享受できます。

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

データベース・ファイルシステム(DBFS)により、データベース表に格納されるファイルおよびディレクトリの上部に、標準ファイルシステム・インタフェースが作成されます。

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

20.2.1 DBFSについて

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

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

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

ユーザー定義DBFSの場合、仕様内の他のファンクションとともにDBFSコンテンツSPIの仕様に基づいて、削除機能を実装する必要があります。

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

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

20.2.2 DBFSサーバー

DBFSの場合、ファイル・サーバーはOracle Databaseです。

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

DBFSコンテンツSPIは、次のような様々なタイプのストアをサポートしています。

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

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

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

20.2.3 DBFSクライアント

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

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

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

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

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

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

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

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

  • DBFSリンク

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

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

関連項目:

20.3 コンテンツ・ストアとは

コンテンツ・ストアは、ドキュメントの集合です。

各コンテンツ・ストアは、スラッシュ(/)として表された一意の絶対パス名の後ろに1つ以上のコンポーネント名がスラッシュでそれぞれ区切られた状態で並ぶ形式によって識別されます。一部のストアではフラットなネームスペースのみが実装されますが、他のストアではディレクトリまたはフォルダが暗黙的に実装され、さらに他のストアではファイルシステムに類似したエンティティのコレクションが包括的に実装される場合があります。これらには、階層ディレクトリ、ファイル、シンボリック・リンク、ハード・リンク、参照などが含まれる場合があります。多くの場合、これらには、ドキュメントに関連付けられた一連の豊富なメタデータや、セキュリティ、アクセス制御、ロック、バージョニング、コンテンツ・アドレッシング、保存制御などに関する一連の豊富な動作が含まれます。

一般に、ストアは別個に設計および展開されるため、特定のストアを使用するアプリケーションは、ストアの開発者によって記述またはパッケージされているか、またはユーザーがストア固有のAPIを使用することが必要です。ストア固有のAPIを作成する設計者は、ストアを実装するために使用されるデータベース表のスキーマに関する詳細な知識が必要です。