ここでは、次の項目について説明します。
概念的には、データベース・ファイルシステムは、データベース表に格納されているファイルおよびディレクトリの最上部に配置されたファイルシステム・インタフェースです。
通常、アプリケーションは、標準SQLデータ型であるBLOB
およびCLOB
を使用して、Oracle Database内のファイル(医療イメージ、請求書イメージ、ドキュメント、ビデオおよび他のファイルなど)を格納および取得します。Oracle Databaseは、従来のファイルシステムより優れたセキュリティ、可用性、堅牢性、トランザクション機能およびスケーラビリティを提供します。リレーショナル・データとともにデータベースに格納されるファイルは、自動的にバックアップされ、Data Guardを使用して障害時リカバリ・サイトと同期され、まとめてリカバリされます。
データベース・ファイルシステム(DBFS)は、データベースに格納されているファイルをユーザーがアクセスおよび管理しやすくするためのOracle Databaseの機能です。このインタフェースを使用すると、BLOB
およびCLOB
プログラム・インタフェースを使用するよう特に記述されたプログラムに制限されずに、データベース内のファイルにアクセスできるようになります。これで、ファイルに対して動作する任意のオペレーティング・システム(OS)プログラムを使用して、データベース内のファイルに透過的にアクセスできるようになります。たとえば、ETL (抽出、変換およびロード)ツールは、データベースにステージング・ファイルを透過的に格納できます。ファイルベースのアプリケーションは、アプリケーションを変更せずに、最大可用性アーキテクチャ(MAA)などのデータベース機能のメリットを享受できます。
データベース・ファイルシステム(DBFS)により、データベース表に格納されるファイルおよびディレクトリの上部に、標準ファイルシステム・インタフェースが作成されます。
データベース・ファイルシステム(DBFS)により、サーバーおよびクライアントを使用して標準ファイルシステム・インタフェースが作成されます。
DBFSは、ローカル・ファイルシステムと類似した共有ネットワーク・ファイルシステムを提供し、サーバー・コンポーネントとクライアント・コンポーネントの両方を持つ点で、NFSプロトコルと類似しています。
DBFSのコアには、Oracle Database内のPL/SQLインタフェースであるDBFSコンテンツAPIがあります。これは、様々なタイプのストレージのサポートを可能にするプログラム・インタフェースであるDBFSコンテンツSPIに接続します。
プログラミング・レベルでは、クライアントはDBFSコンテンツAPIをコールして、ファイルの削除などの特定の機能を実行します。これにより、DBFSコンテンツAPIのファイルの削除機能がDBFSコンテンツSPIをコールし、この機能を実行します。
ユーザー定義DBFSの場合、仕様内の他のファンクションとともにDBFSコンテンツSPIの仕様に基づいて、削除機能を実装する必要があります。
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ストアの作成」を参照してください。
クライアント・システムの場合、データベース・ファイルシステムは複数のアクセス方法を提供します。
データベース・ファイルシステムは複数のアクセス方法を提供します。
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を作成する設計者は、ストアを実装するために使用されるデータベース表のスキーマに関する詳細な知識が必要です。