プライマリ・コンテンツに移動
Oracle® Database SecureFilesおよびラージ・オブジェクト開発者ガイド
12cリリース1 (12.1)
B71284-05
目次へ移動
目次
索引へ移動
索引

前
次

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

ここでは、次の項目について説明します。

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

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

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

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

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

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

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

DBFSについて

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

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

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

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

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

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

DBFSサーバー

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

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

関連項目:

コンテンツ・ストアの詳細は、「DBFSコンテンツAPI」を参照してください

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

  • DBFS SecureFilesストア: SecureFiles LOB列とともに表を使用してファイルシステム・データを格納するDBFSコンテンツ・ストア。これは、POSIXに類似したファイルシステム機能を実装します。「独自のDBFSストアの作成」を参照してください。

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

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

DBFSコンテンツSPIの詳細は、「独自のDBFSストアの作成」を参照してください。

DBFSクライアント

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

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

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

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

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

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

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

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

  • DBFSリンク

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

    DBFSリンクを使用して、既存の表から他のストレージにSecureFilesを移行できます。DBFSリンクの使用の詳細はデータベース・ファイルシステム・リンク、および有用なDBMS_LOB定数およびメソッドのリストの詳細は、LOBおよびDBFS用のPL/SQLパッケージを参照してください。

コンテンツ・ストアとは

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

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

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