71 DBMS_FS

OracleデータベースでOracle File Systemに対する操作(make、mount、unmountおよびdestroy操作)を実行するためのDBMS_FSパッケージ。

71.1 DBMS_FSの概要

DBMS_FSパッケージには、Oracle File Systemの作成、マウント、アンマウントおよび破棄に使用できるOracle File System (OFS)のプロシージャが含まれています。

DBMS_FSパッケージによって、アプリケーションはNFSサーバーなどのユニバーサル・クライアントからデータベース・オブジェクトにアクセスできます。この機能はOracle SecureFilesとのインタフェースとなって、ファイル・システム・アクセスを提供します。

参照:

Oracle DatabaseでのNFSサーバーの管理の詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。

71.2 DBMS_FSのセキュリティ・モデル

DBMS_FSパッケージを使用するには、SYSDBA管理権限が必要です。

DBMS_FSパッケージを使用して実行する操作は、ルート・ユーザーがオペレーティング・システムで実行するファイル・システム操作と同じです。このパッケージにより作成およびマウントされた個々のファイル・システムへのアクセスは、アクセス制御リスト(ACL)と、オペレーティング・システム・ユーザーへのマウント済ディレクトリに対する権限を使用して適用されます。

71.3 DBMS_FSサブプログラムの要約

この表は、DBMS_FSサブプログラムを示し、簡単に説明しています。

表71-1 DBMS_FSサブプログラム

サブプログラム 説明

DESTROY_ORACLE_FSプロシージャ

fstypeを使用して、fsnameという名前のOracle File Systemを破棄します。

MAKE_ORACLE_FSプロシージャ

fstypeで指定されたタイプで、fsnameという名前のファイル・システムを作成します。

MOUNT_ORACLE_FSプロシージャ

指定されたマウント・ポイントにOracle File Systemをマウントします。

UNMOUNT_ORACLE_FSプロシージャ

指定されたマウント・ポイントのOracle File Systemをアンマウントします。

71.3.1 DESTROY_ORACLE_FSプロシージャ

このプロシージャは、Oracle File Systemを破棄してから、それに関連付けられたリソースを解放します。

構文

DBMS_FS.DESTROY_ORACLE_FS (
   fstype      IN VARCHAR2,
   fsname      IN VARCHAR2);

パラメータ

表71-2 DBMS_FSのパラメータ

パラメータ 説明

fstype

ファイル・システム・タイプ。有効なオプションは次のとおりです。

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

  • OFS (Oracle File System)

fsname

ファイル・システムの名前。

使用上のノート

  • 現在マウントされているファイル・システムの情報を取得するには、V$OFSMOUNT動的ビューを問い合せます。

  • ファイル・システム・タイプの詳細は、「MAKE_ORACLE_FSプロシージャ」fstypeに関する項を参照してください。

  • DBMS_FS.DESTROY_ORACLE_FSプロシージャを実行する前に、DBMS_FS.UNMOUNT_ORACLE_FSプロシージャを使用してファイル・システムをアンマウントする必要があります。

  • DBMS_FS.DESTROY_ORACLE_FSを実行した後、Oracle Databaseはファイル・システムを破棄して、関連付けられたリソースを解放します。

次の例は、OFSファイル・システムを破棄する方法を示しています。

BEGIN
 DBMS_FS.DESTROY_ORACLE_FS (
  fstype           => 'ofs',
  fsname           => 'dbfs_fs1');
END;
/

71.3.2 MAKE_ORACLE_FSプロシージャ

このプロシージャは、タイプOFSの新しいファイル・システムを、既存のOracle表領域またはその他のデータベース・オブジェクトの上に作成します。

構文

DBMS_FS.MAKE_ORACLE_FS (
   fstype      IN VARCHAR2,                             
   fsname      IN VARCHAR2,                             
   fsoptions   IN VARCHAR2);

パラメータ

表71-3 DBMS_FSのパラメータ

パラメータ 説明

fstype 

ファイル・システム・タイプ。ofsを入力して、Oracle File Systemを作成します。

fsname 

ファイル・システムの名前。英数字を使用して、256文字以下の文字列を入力します。

fsoptions

次の形式を使用して、Oracle File Systemに使用する既存の表領域を指定します。

"tablespace=tablespace_name"

使用上のノート

  • データベース・ファイル・システム(DBFS)を作成する場合は、dbfs_create_filesystem.sqlスクリプトを実行する必要があります。このスクリプトによって、dbfs_create_filesystem_advanced.sqlスクリプトがコールされます。デフォルトでは、このスクリプトは$ORACLE_HOME/rdbms/adminディレクトリ内にあります。このスクリプトを実行する場合、既存の表領域の名前と、データベースに格納されるファイル・システムの名前を指定します。ファイル・システムのサイズは、表のサイズと同じです。たとえば、dbfs_ts表領域にファイル・システムdbfs_tabを作成する場合は、次のようにします。

    @/$ORACLE_HOME/rdbms/admin/dbfs_create_filesystem.sql dbfs_ts dbfs_tab 

    このスクリプトを実行した後、DBMS_FSパッケージ内の他のプロシージャを使用して、ファイル・システムをマウント、アンマウントおよび破棄できます。

  • データベース・インスタンスに対してDBMS_FS.MAKE_ORACLE_FSプロシージャを実行することは、オペレーティング・システムでルートとしてmkfsコマンドを実行することと同じです。

  • DBMS_FS.MAKE_ORACLE_FSプロシージャを実行するには、fsoptionsパラメータで指定した表領域がすでに存在している必要があります。既存の表領域を検索するには、DBA_TABLESPACESデータ・ディクショナリ・ビューを問い合せます。

  • ファイル・システムのサイズは、この表領域のサイズと同じです。

次の例は、OFSファイル・システムを作成する方法を示しています。

BEGIN
 DBMS_FS.MAKE_ORACLE_FS (
  fstype           => 'ofs',
  fsname           => 'ofs_fs1',
  mount_options    => 'TABLESPACE=ofs_fs1_tbspc');
END;
/

71.3.3 MOUNT_ORACLE_FSプロシージャ

このプロシージャは、指定されたマウント・ポイントにOracle File Systemをマウントします。

構文

DBMS_FS.MOUNT_ORACLE_FS (
  fstype           IN VARCHAR2,                              
  fsname           IN VARCHAR2,                              
  mount_point      IN VARCHAR2,                              
  mount_options    IN VARCHAR2); 

パラメータ

表71-4 MOUNT_ORACLE_FSプロシージャのパラメータ

パラメータ 説明

fstype

ファイル・システム・タイプ。有効なオプションは次のとおりです。
  • DBFS (データベース・ファイル・システム)

  • OFS (Oracle File System)

fsname

ファイル・システムの名前。英数字を使用して、256文字以下の文字列を入力します。

mount_point

ファイル・システムをマウントするローカル・ディレクトリ。このディレクトリはすでに存在している必要があります。絶対パスを入力します。作成できるマウント・ポイントの最大数は、64です。

mount_options

表71-5に示されたカンマ区切りのマウント・オプション。

使用上のノート

表71-5 MOUNT_ORACLE_FSプロシージャでサポートされているマウント・オプション

マウント・オプション 使用方法の説明
default_permissions 権限チェックを有効にし、ファイル・モードに基づいてアクセスを制限します。このオプションは、allow_otherマウント・オプションとともに使用できます。
allow_other マウントを実行したオペレーティング・システム・ユーザー以外のユーザーがファイルにアクセスできるようにします。これは、ファイル・アクセスの決定時に権限チェックと組み合せて使用されます。Linuxでは、このオプションを使用する場合、/etc/fuse.conf構成ファイルにuser_allow_otherパラメータを設定する必要があります。
max_read 読取り操作の最大サイズ。デフォルトでは、最大サイズは設定されません。
max_write 1つのリクエストにおける最大書込みサイズ。デフォルトは128KBです。
direct_io オペレーティング・システム・カーネルに対してファイル・システム・キャッシュを使用しないように指示します。
nopersist マウント・オプションを次回のインスタンス起動で使用するために格納しません。
persist マウント・エントリを、以降のインスタンス起動時に再度自動マウントされるように永続的に格納します。
ro 読取り専用モードでファイル・システムをマウントします。ファイルを変更することはできません。
rw ファイル・システムを読取り/書込みとしてマウントします。これはデフォルトです。
nosuid ファイル・システムに設定ユーザーIDファイルを含められないことを指定します。
suid ファイル・システムに設定ユーザーIDファイルを含められることを指定します。これはデフォルトです。

使用上のノート

  • このプロシージャは、ローカル・データベース・インスタンスでファイル・システムを参照可能にします。

  • ファイル・システム・タイプの詳細は、「MAKE_ORACLE_FSプロシージャ」fstypeに関する項を参照してください。

  • 現在マウントされているファイル・システムの情報を取得するには、V$OFSMOUNT動的ビューを問い合せます。

  • Oracleデータベース・インスタンスが実行されているローカル・コンピュータ・ノードで、DBMS_FS.MAKE_ORACLE_FSを使用してすでに作成されたファイル・システムに対してDBMS_FS.MOUNT_ORACLE_FSプロシージャを実行します。Oracle Database外部で作成されたファイル・システムに対してこのプロシージャを実行することはできません。

BEGIN
 DBMS_FS.MOUNT_ORACLE_FS (
  fstype           => 'dbfs',                              
  fsname           => 'dbfs_fs1',                              
  mount_point      => '/oracle/dbfs/testfs',                              
  mount_options    => 'default_permissions, allow_other, persist'); 
END;

71.3.4 UNMOUNT_ORACLE_FSプロシージャ

このプロシージャは、指定されたマウント・ポイントのOracle File Systemをアンマウントします。

構文

DBMS_FS.UNMOUNT_ORACLE_FS (
  fsname             IN VARCHAR2,                              
  mount_point        IN VARCHAR2,                              
  unmount_options    IN VARCHAR2); 

表71-6 UNMOUNT_ORACLE_FSプロシージャのパラメータ

パラメータ 説明

fsname

ファイル・システムの名前。

mount_point

ファイル・システムがマウントされたローカル・ディレクトリ。絶対パスを入力します。

unmount_options

オプションで、forceを入力して、ファイル・システムを強制的にアンマウントします。これを設定すると、新しいリクエストはファイル・システムに送信されません。ファイル・システム上のすべての保留中のリクエストは、完了するか取り消されるかのどちらかです。

この設定を省略した場合、ビジー状態のファイル・システムをアンマウントしようとすると、EBUSYエラーが発生します。

使用上のノート

  • ファイル・システムをアンマウントする前に、このファイル・システムを使用するすべてのアプリケーションが停止していることを確認してください。また、マウント中のファイル・システムを参照するプロセスがないことも確認してください。

  • 現在マウントされているファイル・システムの情報を取得するには、V$OFSMOUNT動的ビューを問い合せます。

  • ファイル・システム・タイプの詳細は、「MAKE_ORACLE_FSプロシージャ」fstypeに関する項を参照してください。

  • Oracleインスタンスが通常の即時モードで停止された場合、マウントされているすべてのファイル・システムは自動的にアンマウントされます。

  • mountコマンドのpersistオプションを使用してファイル・システムがオペレーティング・システム・レベルからマウントされた場合、そのファイル・システムはデータベース・インスタンスの起動時に自動的に再度マウントされます。DBMS_FS.UNMOUNT_ORACLE_FSを実行してこのファイル・システムがアンマウントされた場合、ファイル・システムはデータベース・インスタンスの起動時に自動的にマウントされません。

  • SHUTDOWN ABORTを実行した後も、ファイル・システムにマウントされているがアクセスできないと示される場合があります。この場合、オペレーティング・システム・レベルでunmountコマンド(Linuxシステムではfusermountプロシージャ)をコールして、手動でシステムをアンマウントする必要があります。

  • Oracle File Systemのローカル・マウント・ポイントをリモート・システムを指すようにエクスポートし、次にオペレーティング・システムのmountコマンドを使用してリモート・システムからファイル・システムのNFSマウントを実行できます。DBMS_FS.MOUNT_ORACLE_FSプロシージャは、他のローカル・ファイル・システムで使用されるmountコマンドに類似しています。

  • セキュリティを強化するため、アクセス制御リスト(ACL)およびKerberosを使用して、機密性の高いデータへのアクセスを制御することをお薦めします。

  • オペレーティング・システム・レベルからファイル・システムをアンマウントしないでください。これを行うと、Oracle Databaseで作成されたファイル・システム内部表が一貫性のない状態のまま残ることがあります。

BEGIN
 DBMS_FS.UNMOUNT_ORACLE_FS (
  fsname           => 'dbfs_fs1',                              
  mount_point      => '/oracle/dbfs/testfs',
  mount_options    => 'force'); 
END;