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サブプログラム
サブプログラム | 説明 |
---|---|
|
|
|
|
指定されたマウント・ポイントにOracle File Systemをマウントします。 |
|
指定されたマウント・ポイントの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のパラメータ
パラメータ | 説明 |
---|---|
|
ファイル・システム・タイプ。有効なオプションは次のとおりです。
|
|
ファイル・システムの名前。 |
使用上のノート
-
現在マウントされているファイル・システムの情報を取得するには、
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のパラメータ
パラメータ | 説明 |
---|---|
|
ファイル・システム・タイプ。 |
|
ファイル・システムの名前。英数字を使用して、256文字以下の文字列を入力します。 |
|
次の形式を使用して、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プロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ファイル・システム・タイプ。有効なオプションは次のとおりです。
|
|
ファイル・システムの名前。英数字を使用して、256文字以下の文字列を入力します。 |
|
ファイル・システムをマウントするローカル・ディレクトリ。このディレクトリはすでに存在している必要があります。絶対パスを入力します。作成できるマウント・ポイントの最大数は、64です。 |
|
表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プロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
ファイル・システムの名前。 |
|
ファイル・システムがマウントされたローカル・ディレクトリ。絶対パスを入力します。 |
|
オプションで、 この設定を省略した場合、ビジー状態のファイル・システムをアンマウントしようとすると、 |
使用上のノート
-
ファイル・システムをアンマウントする前に、このファイル・システムを使用するすべてのアプリケーションが停止していることを確認してください。また、マウント中のファイル・システムを参照するプロセスがないことも確認してください。
-
現在マウントされているファイル・システムの情報を取得するには、
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;