66 DBMS_FILE_GROUP
DBMS_FILE_GROUP
パッケージは、Oracle Streamsパッケージの1つで、ファイル・グループ、ファイル・グループのバージョンおよびファイルの管理をするための管理インタフェースを提供します。ファイル・グループ・リポジトリは、1つのデータベース内のすべてのファイル・グループのコレクションで、特定のファイル・グループの複数バージョンを含むことができます。このパッケージは、ファイル・グループ・リポジトリの作成および管理に使用できます。
この章のトピックは、次のとおりです:
66.1 DBMS_FILE_GROUPの概要
DBMS_FILE_GROUPパッケージを使用する前に用語を理解すると役に立ちます。
DBMS_FILE_GROUP
パッケージに関連する用語は、次のとおりです。
ファイル
ファイルは、ハードディスクに格納されているファイルを参照します。ファイルは、ファイル名、ディレクトリ・オブジェクトおよびファイル・タイプで構成されます。ディレクトリ・オブジェクトは、ファイルがハード・ディスク上で格納されているディレクトリです。たとえば、ファイルには、次のコンポーネントが含まれている場合があります。
-
ファイル名:
expdat.dmp
-
このファイルを含むディレクトリ・オブジェクト:
db_files
-
ファイル・タイプ:
DBMS_FILE_GROUP.EXPORT_DUMP_FILE
バージョン
バージョンは、関連するファイルのコレクションです。たとえば、バージョンは、一連のデータ・ファイル、およびデータ・ポンプ・トランスポータブル表領域のエクスポートによって生成されたデータ・ポンプ・エクスポート・ダンプ・ファイルで構成される場合があります。1つのバージョンに含めることができるデータ・ポンプ・エクスポート・ダンプ・ファイルは1つのみです。
ファイル・グループ
ファイル・グループは、バージョンのコレクションです。ファイル・グループでは、一連のバージョンを論理的にグループ化できます。たとえば、financial_quarters
という名前のファイル・グループで、表領域セットに関連する複数バージョンのファイルを論理的にグループ化して、四半期ごとの財務データを追跡することができます。データを含む表領域を各四半期の終了時にエクスポートし、Q1FY04
、Q2FY04
などの名前でバージョン化することができます。
66.2 DBMS_FILE_GROUPのセキュリティ・モデル
DBMS_FILE_GROUPパッケージで制御を定義する方法は2つあります。
-
選択したユーザーまたはロールに、このパッケージの
EXECUTE
を付与する方法 -
選択したユーザーまたはロールに、
EXECUTE_CATALOG_ROLE
を付与する方法
パッケージのサブプログラムをストアド・プロシージャ内から実行する場合、そのサブプログラムを実行するユーザーには、パッケージのEXECUTE
権限を直接付与する必要があります。ロールを通して付与することはできません。
66.3 DBMS_FILE_GROUPの定数
DBMS_FILE_GROUP
パッケージは、パラメータ値の指定に使用するいくつかの列挙定数を定義します。列挙定数にはパッケージ名を接頭辞として付加する必要があります。たとえば、DBMS_FILE_GROUP.EXPORT_DUMP_FILE
などです。
次の表に、パラメータおよび列挙定数の一覧を示します。
表66-1 DBMS_FILE_GROUPパラメータおよび列挙定数
パラメータ | オプション | タイプ | 説明 |
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
66.4 DBMS_FILE_GROUPの例
DBMS_FILE_GROUP
の例は別のブックにあります。
『Oracle Streams概要および管理』には、インターネットで書籍や音楽を販売するビジネスの例が記載されています。企業は、inst1.example.com
データベース内の売上データに関する週次レポートを実行し、これらのレポートをコンピュータ・ファイル・システムに2つのHTMLファイルで格納します。book_sales.htm
ファイルには、書籍の売上レポートが含まれ、music_sales.htm
ファイルには、音楽商品の売上レポートが含まれます。
企業は、これらの週次レポートを、inst2.example.com
リモート・データベースのファイル・グループ・リポジトリに格納します。毎週、2つのレポートがinst1.example.com
データベースで生成され、inst2.example.com
データベースを実行するコンピュータ・システムに転送され、ファイル・グループ・バージョンとしてリポジトリに追加されます。ファイル・グループ・リポジトリには、週ごとのレポートを含むすべてのファイル・グループのバージョンが格納されます。
66.5 DBMS_FILE_GROUPサブプログラムの要約
この表は、DBMS_FILE_GROUP
サブプログラムを示し、簡単に説明しています。
表66-2 DBMS_FILE_GROUPパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
ファイル・グループのバージョンにファイルを追加します。 |
|
ファイル・グループのバージョン内のファイルを変更します。 |
|
ファイル・グループを変更します。 |
|
ファイル・グループのバージョンを変更します。 |
|
ファイル・グループを作成します。 |
|
ファイル・グループのバージョンを作成します。 |
|
ファイル・グループを削除します。 |
|
ファイル・グループのバージョンを削除します。 |
|
ファイル・グループに対するオブジェクト権限をユーザーに付与します。 |
|
ファイル・グループ操作に対するシステム権限をユーザーに付与します。 |
|
ファイル・グループの保存方針を使用してファイル・グループをパージします。 |
|
ファイル・グループのバージョンからファイルを削除します。 |
|
ファイル・グループに対するオブジェクト権限をユーザーから取り消します。 |
|
ファイル・グループ操作に対するシステム権限をユーザーから取り消します。 |
ノート:
特に指定がないかぎり、すべてのサブプログラムがコミットされます。
66.5.1 ADD_FILEプロシージャ
このプロシージャは、ファイル・グループのバージョンにファイルを追加します。
参照:
『Oracle Streams概要および管理』のファイル・グループ・リポジトリにこのプロシージャを使用する例
構文
DBMS_FILE_GROUP.ADD_FILE( file_group_name IN VARCHAR2, file_name IN VARCHAR2, file_type IN VARCHAR2 DEFAULT NULL, file_directory IN VARCHAR2 DEFAULT NULL, version_name IN VARCHAR2 DEFAULT NULL, comments IN VARCHAR2 DEFAULT NULL);
パラメータ
表66-3 ADD_FILEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
バージョンに追加するファイルの名前。ファイル名は、バージョン内で一意である必要があります。 |
|
ファイルのタイプ。予約済ファイル・タイプは、次のとおりです。
ファイル・タイプが予約済ファイル・タイプでない場合は、ファイル・タイプをテキストで入力するか、またはファイル・タイプの説明を省略するために 予約済ファイル・タイプの詳細は、「定数」を参照してください。 |
|
ファイルを含むディレクトリに対応するディレクトリ・オブジェクトの名前。
バージョンおよびファイル・グループのいずれのデフォルトのディレクトリ・オブジェクトも存在しない場合に |
|
ファイルが追加されるバージョンの名前。 正の整数が
|
|
追加するファイルに関するコメント。 |
使用上のノート
file_type
パラメータに対してDBMS_FILE_GROUP.EXPORT_DUMP_FILE
または'DUMPSET'
のいずれかを指定してこのプロシージャを実行するには、ユーザーが次の要件を満たしている必要があります。
-
データ・ポンプ・エクスポート・ダンプ・ファイルをインポートするための適切な権限を持っていること
-
データ・ポンプ・エクスポート・ダンプ・ファイルが格納されているディレクトリ・オブジェクトに対する
読取り
権限を持っていること
参照:
データ・ポンプ権限の詳細は、『Oracle Databaseユーティリティ』を参照してください。
66.5.2 ALTER_FILEプロシージャ
このプロシージャは、ファイル・グループのバージョン内のファイルを変更します。
構文
DBMS_FILE_GROUP.ALTER_FILE( file_group_name IN VARCHAR2, file_name IN VARCHAR2, version_name IN VARCHAR2 DEFAULT NULL, new_file_name IN VARCHAR2 DEFAULT NULL, new_file_directory IN VARCHAR2 DEFAULT NULL, new_file_type IN VARCHAR2 DEFAULT NULL, remove_file_type IN VARCHAR2 DEFAULT 'N', new_comments IN VARCHAR2 DEFAULT NULL, remove_comments IN VARCHAR2 DEFAULT 'N');
パラメータ
表66-4 ALTER_FILEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
バージョン内の変更するファイルの名前。 |
|
変更するファイルを含むバージョンの名前。 正の整数が
|
|
ファイル名を変更した場合はファイルの新しい名前。ファイル名は、バージョン内で一意である必要があります。
ノート: |
|
ディレクトリ・オブジェクトを変更した場合、ファイルを含むディレクトリに対応するディレクトリ・オブジェクトの新しい名前。
ノート: |
|
ファイルのタイプ。予約済ファイル・タイプは、次のとおりです。
ファイル・タイプが予約済ファイル・タイプでない場合は、ファイル・タイプをテキストで入力します。
関連項目: 予約済ファイル・タイプの詳細は、「定数」を参照してください。 |
|
|
|
変更するファイルに関する新しいコメント。
|
|
|
使用上のノート
ファイル・タイプをDBMS_FILE_GROUP.EXPORT_DUMP_FILE
または'DUMPSET'
に変更すると、ファイルのデータ・ポンプ・メタデータが移入されます。ファイル・タイプをDBMS_FILE_GROUP.EXPORT_DUMP_FILE
または'DUMPSET'
から変更すると、ファイルのデータ・ポンプ・メタデータがパージされます。
new_file_type
パラメータに対してDBMS_FILE_GROUP.EXPORT_DUMP_FILE
または'DUMPSET'
を指定してこのプロシージャを実行するには、ユーザーが次の要件を満たしている必要があります。
-
データ・ポンプ・エクスポート・ダンプ・ファイルをインポートするための適切な権限を持っていること
-
データ・ポンプ・エクスポート・ダンプ・ファイルが格納されているディレクトリ・オブジェクトに対する
読取り
権限を持っていること
参照:
データ・ポンプ権限の詳細は、『Oracle Databaseユーティリティ』を参照してください。
66.5.3 ALTER_FILE_GROUPプロシージャ
このプロシージャは、ファイル・グループを変更します。
構文
DBMS_FILE_GROUP.ALTER_FILE_GROUP( file_group_name IN VARCHAR2, keep_files IN VARCHAR2 DEFAULT NULL, min_versions IN NUMBER DEFAULT NULL, max_versions IN NUMBER DEFAULT NULL, retention_days IN NUMBER DEFAULT NULL, new_default_directory IN VARCHAR2 DEFAULT NULL, remove_default_directory IN VARCHAR2 DEFAULT 'N', new_comments IN VARCHAR2 DEFAULT NULL, remove_comments IN VARCHAR2 DEFAULT 'N');
パラメータ
表66-5 ALTER_FILE_GROUPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
ノート: |
|
保存するバージョンの最小数。
|
|
保存するバージョンの最大数。 バージョン数を無制限にするには、
|
|
バージョンを保存する最大日数。 1日の一部は、小数値を使用して指定することができます。たとえば、1日と6時間は、 バージョンを残す日数を無制限にするには、
|
|
ファイルの追加時にディレクトリが指定されておらず、そのバージョンに対してデフォルトのディレクトリ・オブジェクトの指定がされていない場合に、ファイル・グループへのファイルの追加時に使用されるデフォルトのディレクトリ・オブジェクト。
|
|
|
|
ファイル・グループに関するコメント。
|
|
|
使用上のノート
min_versions
を1
に設定すると、新しいバージョンの追加時に、ファイル・グループの唯一のバージョンがパージされる場合があります。新しいバージョンの追加が完了しないうちに既存のバージョンがパージされると、使用可能なファイル・グループのバージョンが存在しない時間が発生する可能性があります。そのため、ファイル・グループのバージョンを常に使用可能にしておくには、min_versions
を2
以上に設定します。
66.5.4 ALTER_VERSIONプロシージャ
このプロシージャは、ファイル・グループのバージョンを変更します。
構文
DBMS_FILE_GROUP.ALTER_VERSION( file_group_name IN VARCHAR2, version_name IN VARCHAR2 DEFAULT NULL, new_version_name IN VARCHAR2 DEFAULT NULL, remove_version_name IN VARCHAR2 DEFAULT 'N', new_default_directory IN VARCHAR2 DEFAULT NULL, remove_default_directory IN VARCHAR2 DEFAULT 'N', new_comments IN VARCHAR2 DEFAULT NULL, remove_comments IN VARCHAR2 DEFAULT 'N');
パラメータ
表66-6 ALTER_VERSIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
変更するバージョンの名前。 正の整数が
|
|
バージョンの新しい名前。スキーマは指定しないでください。 バージョン名に、正の整数およびアスタリスク(
|
|
|
|
ファイルの追加時にディレクトリが指定されていない場合に、バージョンへのファイルの追加時に使用されるデフォルトのディレクトリ・オブジェクト。
|
|
|
|
バージョンに関するコメント。
|
|
|
66.5.5 CREATE_FILE_GROUPプロシージャ
このプロシージャは、ファイル・グループを作成します。
参照:
『Oracle Streams概要および管理』のファイル・グループ・リポジトリにこのプロシージャを使用する例
構文
DBMS_FILE_GROUP.CREATE_FILE_GROUP( file_group_name IN VARCHAR2, keep_files IN VARCHAR2 DEFAULT 'Y', min_versions IN NUMBER DEFAULT 2, max_versions IN NUMBER DEFAULT DBMS_FILE_GROUP.INFINITE, retention_days IN NUMBER DEFAULT DBMS_FILE_GROUP.INFINITE, default_directory IN VARCHAR2 DEFAULT NULL, comments IN VARCHAR2 DEFAULT NULL);
パラメータ
表66-7 CREATE_FILE_GROUPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
ノート: |
|
保存するバージョンの最小数。 |
|
保存するバージョンの最大数。 バージョン数を無制限にするには、 |
|
バージョンを保存する最大日数。 1日の一部は、小数値を使用して指定することができます。たとえば、1日と6時間は、 バージョンを残す日数を無制限にするには、 |
|
ファイルの追加時にディレクトリが指定されておらず、そのバージョンに対してデフォルトのディレクトリ・オブジェクトの指定がされていない場合に、ファイル・グループへのファイルの追加時に使用されるデフォルトのディレクトリ・オブジェクト。 |
|
作成するファイル・グループに関するコメント。 |
使用上のノート
min_versions
を1
に設定すると、新しいバージョンの追加時に、ファイル・グループの唯一のバージョンがパージされる場合があります。新しいバージョンの追加が完了しないうちに既存のバージョンがパージされると、使用可能なファイル・グループのバージョンが存在しない時間が発生する可能性があります。そのため、ファイル・グループのバージョンを常に使用可能にしておくには、min_versions
を2
以上に設定します。
66.5.6 CREATE_VERSIONプロシージャ
このプロシージャは、ファイル・グループのバージョンを作成します。
このプロシージャは、PURGE_FILE_GROUP
プロシージャを自動的に実行します。そのため、ファイル・グループの保存方針に基づいてバージョンをパージできます。
このプロシージャはオーバーロードされています。このプロシージャの一方のバージョンではOUT
パラメータversion_out
を使用しますが、もう一方のバージョンでは使用しません。
参照:
-
『Oracle Streams概要および管理』のファイル・グループ・リポジトリにこのプロシージャを使用する例
構文
DBMS_FILE_GROUP.CREATE_VERSION( file_group_name IN VARCHAR2, version_name IN VARCHAR2 DEFAULT NULL, default_directory IN VARCHAR2 DEFAULT NULL, comments IN VARCHAR2 DEFAULT NULL); DBMS_FILE_GROUP.CREATE_VERSION( file_group_name IN VARCHAR2, version_name IN VARCHAR2 DEFAULT NULL, default_directory IN VARCHAR2 DEFAULT NULL, comments IN VARCHAR2 DEFAULT NULL, version_out OUT VARCHAR2);
パラメータ
表66-8 CREATE_VERSIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
作成するバージョンの名前。スキーマは指定しないでください。 バージョンの作成時にバージョン番号が自動的に生成されるため、バージョン名に正の整数は指定できません。また、バージョン名に、アスタリスク( |
|
ファイルの追加時にディレクトリが指定されていない場合に、バージョンへのファイルの追加時に使用されるデフォルトのディレクトリ・オブジェクト。 |
|
作成するバージョンに関するコメント。 |
|
|
66.5.7 DROP_FILE_GROUPプロシージャ
このプロシージャは、ファイル・グループを削除します。
構文
DBMS_FILE_GROUP.DROP_FILE_GROUP( file_group_name IN VARCHAR2, keep_files IN VARCHAR2 DEFAULT NULL);
パラメータ
表66-9 DROP_FILE_GROUPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
|
使用上のノート
このプロシージャによってハードディスク上のファイルを削除する場合、このプロシージャを実行するユーザーは、それらのファイルが含まれているディレクトリ・オブジェクトに対する書込み
権限を持っている必要があります。
66.5.8 DROP_VERSIONプロシージャ
このプロシージャは、ファイル・グループのバージョンを削除します。
構文
DBMS_FILE_GROUP.DROP_VERSION( file_group_name IN VARCHAR2, version_name IN VARCHAR2 DEFAULT NULL, keep_files IN VARCHAR2 DEFAULT NULL);
パラメータ
表66-10 DROP_VERSIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
削除するバージョンの名前。 正の整数が
|
|
|
使用上のノート
このプロシージャによってハードディスク上のファイルを削除する場合、このプロシージャを実行するユーザーは、それらのファイルが含まれているディレクトリ・オブジェクトに対する書込み
権限を持っている必要があります。
66.5.9 GRANT_OBJECT_PRIVILEGEプロシージャ
このプロシージャは、ファイル・グループに対するオブジェクト権限をユーザーに付与します。
構文
DBMS_FILE_GROUP.GRANT_OBJECT_PRIVILEGE( object_name IN VARCHAR2, privilege IN BINARY_INTEGER, grantee IN VARCHAR2, grant_option IN BOOLEAN DEFAULT FALSE);
パラメータ
表66-11 GRANT_OBJECT_PRIVILEGEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
権限を指定する定数。有効な権限については、「定数」を参照してください。 |
|
権限を付与するユーザーまたはロールの名前。オブジェクトの所有者を指定することはできません。 |
|
|
使用上のノート
このプロシージャを実行するユーザーは、次の要件を最低1つ満たす必要があります。
-
権限を付与するオブジェクトの所有者であること。
-
付与する権限と同じ権限および付与オプションがあること。
66.5.10 GRANT_SYSTEM_PRIVILEGEプロシージャ
このプロシージャは、ファイル・グループ操作に対するシステム権限をユーザーに付与します。
ノート:
「ANY」
オブジェクトに関する権限(ALTER_ANY_RULE
など)を付与する際に、O7_DICTIONARY_ACCESSIBILITY
初期化パラメータがFALSE
に設定されている場合は、SYS
スキーマを除くすべてのスキーマで、該当するタイプのオブジェクトへのアクセス権をユーザーに付与してください。デフォルトでは、初期化パラメータO7_DICTIONARY_ACCESSIBILITY
はFALSE
に設定されます。
SYS
スキーマ内のオブジェクトへのアクセス権を付与する場合は、オブジェクトに対するオブジェクト権限を明示的に付与できます。または、O7_DICTIONARY_ACCESSIBILITY
初期化パラメータをTRUE
に設定することもできます。この設定によって、「ANY」
オブジェクトに対して付与した権限で、SYS
も含めた任意のスキーマにアクセスできます。O7_DICTIONARY_ACCESSIBILITY
初期化パラメータの設定には、注意が必要です。
構文
DBMS_FILE_GROUP.GRANT_SYSTEM_PRIVILEGE( privilege IN BINARY_INTEGER, grantee IN VARCHAR2, grant_option IN BOOLEAN DEFAULT FALSE);
パラメータ
表66-12 GRANT_SYSTEM_PRIVILEGEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
権限を指定する定数。有効な権限については、「定数」を参照してください。 |
|
権限を付与するユーザーまたはロールの名前。プロシージャの実行者を指定することはできません。 |
|
|
66.5.11 PURGE_FILE_GROUPプロシージャ
このプロシージャは、ファイル・グループの保存方針を使用してファイル・グループをパージします。
ファイル・グループの保存方針は、max_versions
、min_versions
およびretention_days
パラメータの設定によって決まります。ファイル・グループのパージ時には、ファイル・グループの次のバージョンが削除されます。
-
バージョンが作成時間に基づいて降順で並べられている場合の、ファイル・グループの
max_versions
設定を超えるすべてのバージョン。したがって、古いバージョンが新しいバージョンより先にパージされます。 -
バージョンのパージによって、バージョン番号がファイル・グループの
min_versions
設定より低いバージョンが削除される場合を除いて、ファイル・グループのretention_days
設定より古いすべてのバージョン。
SYS.FGR$AUTOPURGE_JOB
という名前のジョブでは、データベース内のすべてのファイル・グループが、ジョブのスケジュールに従って定期的に自動的にパージされます。DBMS_SCHEDULER
パッケージを使用すると、このジョブのスケジュールを調整できます。また、PURGE_FILE_GROUP
プロシージャを定期的に実行するジョブを作成することもできます。
構文
DBMS_FILE_GROUP.PURGE_FILE_GROUP( file_group_name IN VARCHAR2);
パラメータ
表66-13 PURGE_FILE_GROUPプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
使用上のノート
このプロシージャによってハードディスク上のファイルを削除する場合、このプロシージャを実行するユーザーは、それらのファイルが含まれているディレクトリ・オブジェクトに対する書込み
権限を持っている必要があります。バージョンがパージされ、そのバージョンのファイル・グループのkeep_files
パラメータがN
に設定されている場合、ファイルは削除されます。
66.5.12 REMOVE_FILEプロシージャ
このプロシージャは、ファイル・グループのバージョンからファイルを削除します。
構文
DBMS_FILE_GROUP.REMOVE_FILE( file_group_name IN VARCHAR2, file_name IN VARCHAR2, version_name IN VARCHAR2 DEFAULT NULL, keep_file IN VARCHAR2 DEFAULT NULL);
パラメータ
表66-14 REMOVE_FILEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
バージョンから削除するファイルの名前。 |
|
ファイルを削除するバージョンの名前。 正の整数が
|
|
|
使用上のノート
このプロシージャによってハードディスク上のファイルを削除する場合、このプロシージャを実行するユーザーは、それらのファイルが含まれているディレクトリ・オブジェクトに対する書込み
権限を持っている必要があります。
66.5.13 REVOKE_OBJECT_PRIVILEGEプロシージャ
このプロシージャは、ファイル・グループに対するオブジェクト権限をユーザーから取り消します。
構文
DBMS_FILE_GROUP.REVOKE_OBJECT_PRIVILEGE( object_name IN VARCHAR2, privilege IN BINARY_INTEGER, revokee IN VARCHAR2);
パラメータ
表66-15 REVOKE_OBJECT_PRIVILEGEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
権限を指定する定数。有効な権限については、「定数」を参照してください。 |
|
権限が取り消されるユーザーまたはロールの名前。オブジェクトの所有者を指定することはできません。 |
66.5.14 REVOKE_SYSTEM_PRIVILEGEプロシージャ
このプロシージャは、ファイル・グループ操作に対するシステム権限をユーザーから取り消します。
構文
DBMS_FILE_GROUP.REVOKE_SYSTEM_PRIVILEGE( privilege IN BINARY_INTEGER, revokee IN VARCHAR2);
パラメータ
表66-16 REVOKE_SYSTEM_PRIVILEGEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
権限を指定する定数。有効な権限については、「定数」を参照してください。 |
|
権限が取り消されるユーザーまたはロールの名前。プロシージャの実行者を指定することはできません。 |