日本語PDF

87 DBMS_ILM

DBMS_ILMパッケージでは、自動データ最適化(ADO)ポリシーを使用して情報ライフサイクル管理(ILM)計画を実装するためのインタフェースが提供されます。

この章のトピックは、次のとおりです:

参照:

87.1 DBMS_ILMの概要

ILM戦略を実装するために、Oracle Databaseのヒート・マップを使用すればデータのアクセスと変更を追跡できます。自動データ最適化(ADO)も使用すれば、データベース内の異なる層のストレージ間で、データの圧縮および移動を自動化できます。DBMS_ILMパッケージは、ADO関連タスクの即時評価または実行をサポートしています。T

このパッケージでは、ADOアクションをスケジューリングする次の2つの方法がサポートされます。

  • データベース・ユーザーがオブジェクト・セット上でADOポリシーの即時実行をスケジュールします。

  • データベース・ユーザーがオブジェクト・セットでのADOポリシーの評価結果を確認します。次に、ユーザーは、このセットのオブジェクトを追加または削除して、ADOポリシーの評価結果を再確認します。ユーザーは、このステップを繰り返して、ADO実行の対象となるオブジェクト・セットを決定します。さらに、ユーザーはこのオブジェクト・セットでのADOアクションの即時実行をスケジュールできます。

次のプロシージャでは2つの使用モードがサポートされます。プロシージャの説明の前に、特定の評価を追跡可能なエンティティとしてのADOタスクの概念とADOポリシーの(評価および実行の)概念について説明します。個々のADOタスクは次のいずれかの状態になります。

  • 非アクティブ

  • アクティブ

  • 完了

87.2 DBMS_ILMのセキュリティ・モデル

DBMS_ILMパッケージは、実行者の権限で実行されます。

87.3 DBMS_ILMの定数

このトピックの表では、DBMS_ILMパッケージによって使用される定数を示します。

表87-1 DBMS_ILMの定数

定数 タイプ 説明

ILM_ALL_POLICIES

'ALL POLICIES'

VARCHAR2(20)

オブジェクトのADOポリシーをすべて選択します。

ILM_EXECUTION_OFFLINE

1

NUMBER

ADOアクションの実行中にオブジェクトをオフラインにできるように指定します。

ILM_EXECUTION_ONLINE

2

NUMBER

ADOアクションの実行中にオブジェクトがオンラインになるように指定します。

SCOPE_DATABASE

1

NUMBER

データベース内のすべてのADOポリシーを選択します。

SCOPE_SCHEMA

2

NUMBER

現在のスキーマ内のすべてのADOポリシーを選択します。

SCHEDULE_IMMEDIATE

1

NUMBER

即時実行するADOタスクをスケジュールします。

ARCHIVE_STATE_ACTIVE

'0'

VARCHAR2(1)

行をアクティブにする表で行アーカイブが有効化されたもののORA_ARCHIVE_STATE列の値を表示します。

ARCHIVE_STATE_ARCHIVED

'1'

VARCHAR2(1)

行を非アクティブにする表で行アーカイブが有効化されたもののORA_ARCHIVE_STATE列の値を表示します。

87.4 DBMS_ILMの例外

このトピックの表では、DBMS_ILMパッケージで発生する例外を示します。

表87-2 DBMS_ILMの例外

例外 エラー・コード 説明

INVALID_ARGUMENT_VALUE

38327

引数の値が無効です。

INVALID_ILM_DICTIONARY

38328

ディクショナリ状態に整合性がありません。

INTERNAL_ILM_ERROR

38329

内部エラーです。

INSUFFICIENT_PRIVILEGES

38330

権限が不十分です。

87.5 DBMS_ILMサブプログラムの要約

この表は、DBMS_ILMパッケージのサブプログラムについて説明しています。

表87-3 DBMS_ILMパッケージのサブプログラム

サブプログラム 説明

ADD_TO_ILMプロシージャ

引数で指定されたオブジェクトを特定のADOタスクに追加して、このオブジェクト上のADOポリシーを評価します。

ARCHIVESTATENAMEファンクション

行アーカイブが有効化された表のORA_ARCHIVE_STATE列の値を戻します。

EXECUTE_ILMプロシージャ

ADOタスクを実行します。

EXECUTE_ILM_TASKプロシージャ

以前に評価されたADOタスクを実行します。

PREVIEW_ILMプロシージャ

引数で指定された有効範囲のすべてのADOポリシーを評価します。

REMOVE_FROM_ILMプロシージャ

引数で指定されたオブジェクトを特定のADOタスクから削除します。

STOP_ILMプロシージャ

特定のADOタスクに作成されたADO関連のジョブを停止します。

87.5.1 ADD_TO_ILMプロシージャ

このプロシージャは、引数で指定されたオブジェクトを特定のADOタスクに追加して、このオブジェクト上のADOポリシーを評価します。

このプロシージャは、非アクティブ状態のADOタスクでのみ実行できます。このオブジェクト上のADOポリシーの評価結果は、ロールとアクセスに応じた適切なビュー(USER_ILMTASKSまたはDBA_ILMTASKSUSER_ILMEVALUATIONDETAILSまたはDBA_ILMEVALUATIONDETAILSUSER_ILMRESULTSまたはDBA_ILMRESULTS)を使用して確認できます。

構文

DBMS_ILM.ADD_TO_ILM (
   task_id           IN    NUMBER,
   owner             IN    VARCHAR2,
   object_name       IN    VARCHAR2,
   subobject_name    IN    VARCHAR2 DEFAULT NULL);

パラメータ

表87-4 ADD_TO_ILMプロシージャのパラメータ

パラメータ 説明

task_id

特定のADOタスクを識別します。

owner

オブジェクトの所有者

object_name

オブジェクト名

subobject_name

サブオブジェクトの名前(パーティション化された表の場合はパーティション名)。

87.5.2 ARCHIVESTATENAMEファンクション

このファンクションでは、行アーカイブが有効化された表のORA_ARCHIVE_STATE列の値を戻します。

構文

DBMS_ILM.ARCHIVESTATENAME (
   value      IN  VARCHAR2) 
 RETURN VARCHAR2;

パラメータ

表87-5 ARCHIVESTATENAMEファンクションのパラメータ

パラメータ 説明

value

アーカイブ状態名が戻される対象の値。

使用上のノート

0の場合はARCHIVE_STATE_ACTIVEを戻し、それ以外はARCHIVE_STATE_ARCHIVEDを戻します。

参照:

『Oracle Database VLDBおよびパーティショニング・ガイド』インデータベース・アーカイブの使用に関する項を参照してください。

87.5.3 EXECUTE_ILMプロシージャ

このプロシージャは、ADOタスクを実行します。

このプロシージャには、2つのオーバーロードがあります。最初のオーバーロードは、オブジェクトのセットに対してADOタスクを実行し、事前にこれらの評価を実行しません。2番目のオーバーロードは、特定のオブジェクトに対してADOポリシーを実行します。

構文

DBMS_ILM.EXECUTE_ILM (
   task_id             OUT    NUMBER,
   ilm_scope           IN     NUMBER DEFAULT SCOPE_SCHEMA,
   execution_mode      IN     NUMBER DEFAULT ILM_EXECUTION_ONLINE);

DBMS_ILM.EXECUTE_ILM (
   owner               IN     VARCHAR2,
   object_name         IN     VARCHAR2,
   task_id             OUT    NUMBER, 
   subobject_name      IN     VARCHAR2 DEFAULT NULL,
   policy_name         IN     VARCHAR2 DEFAULT ILM_ALL_POLICIES,
   execution_mode      IN     NUMBER DEFAULT ILM_EXECUTION_ONLINE);

パラメータ

表87-6 EXECUTE_ILMプロシージャのパラメータ

パラメータ 説明

task_id

特定のADOタスクを識別します。

ilm_scope

ADO実行の対象となるオブジェクト・セットを決定します。デフォルトは、スキーマ内のオブジェクトのみが対象となります。

execution_mode

ADOタスクをオンライン(ILM_EXECUTION_ONLINE)またはオフライン(ILM_EXECUTION_OFFLINE)で実行します。

owner

オブジェクトの所有者

object_name

オブジェクト名

subobject_name

サブオブジェクトの名前(パーティション化された表の場合はパーティション名)。

policy_name

オブジェクト上で評価されるADOポリシーの名前。オブジェクト上のすべてのADOポリシーを評価する場合は、パッケージ定数のILM_ALL_POLICIESを使用する必要があります。

使用上のノート

  • EXECUTE_ILMプロシージャは、ADOを実行するタイミングの制御がさらに必要なユーザーや、次のメンテナンス・ウィンドウまで待つ必要がないユーザーが使用できます。

  • このプロシージャの実行方法は、ADOタスクと関連ジョブの作成の前後に自動コミットを行うという点で、DDLと類似しています。

87.5.4 EXECUTE_ILM_TASKプロシージャ

このプロシージャは、以前に評価されたADOタスクを実行し、アクティブ状態に移行させます。

構文

DBMS_ILM.EXECUTE_ILM_TASK (
   task_id             IN     NUMBER,
   execution_mode      IN     NUMBER DEFAULT ILM_EXECUTION_ONLINE);
   execution_schedule  IN     NUMBER DEFAULT SCHEDULE_IMMEDIATE);

パラメータ

表87-7 EXECUTE_ILM_TASKプロシージャのパラメータ

パラメータ 説明

task_id

特定のADOタスクを識別します。

execution_mode

ADOタスクをオンライン(ILM_EXECUTION_ONLINE)またはオフライン(ILM_EXECUTION_OFFLINE)で実行します。

execution_schedule

ADOタスクを実行するタイミングを特定します。現在は、ADOジョブの即時スケジューリングのみが選択可能です。

87.5.5 PREVIEW_ILMプロシージャ

このプロシージャは、ILM_SCOPE引数を使用して指定されたオブジェクト上でADOポリシーを評価します。

これは、特定のADOタスクを識別するtask_idとして数値を戻します。これを使用して、ロールとアクセスに応じた適切なビュー(USER_ILMTASKSまたはDBA_ILMTASKSUSER_ILMEVALUATIONDETAILSまたはDBA_ILMEVALUATIONDETAILSUSER_ILMRESULTSまたはDBA_ILMRESULTS)でポリシー評価の結果を確認できます。

PREVIEW_ILMプロシージャではADOタスクが非アクティブ状態のままになります。1度結果をプレビューすると、このタスクにオブジェクトの追加または削除ができます。

構文

DBMS_ILM.PREVIEW_ILM (
   task_id           OUT    NUMBER,
  ilm_scope          IN     NUMBER DEFAULT SCOPE_SCHEMA);

パラメータ

表87-8 PREVIEW_ILM プロシージャのパラメータ

パラメータ 説明

task_id

特定のADOタスクを識別します。

ilm_scope

実行の有効範囲を識別します。「定数」の説明に従って、SCOPE_DATABASEまたはSCOPE_SCHEMAのいずれかを指定する必要があります。

87.5.6 REMOVE_FROM_ILMプロシージャ

このプロシージャは、引数で指定されたオブジェクトを特定のADOタスクから削除します。

このプロシージャは、非アクティブ状態のADOタスクでのみ実行できます。

構文

DBMS_ILM.REMOVE_FROM_ILM (
   task_id           IN    NUMBER,
   owner             IN    VARCHAR2,
   object_name       IN    VARCHAR2,
   subobject_name    IN    VARCHAR2 DEFAULT NULL);

パラメータ

表87-9 REMOVE_FROM_ILMプロシージャのパラメータ

パラメータ 説明

task_id

特定のADOタスクを識別します。

owner

オブジェクトの所有者

object_name

オブジェクト名

subobject_name

サブオブジェクトの名前(パーティション化された表の場合はパーティション名)。

87.5.7 STOP_ILMプロシージャ

このプロシージャは、特定のタスクIDまたはジョブ名に関連付けられているILM ADOジョブを終了させます。

構文

DBMS_ILM.STOP_ILM (
   task_id               IN         NUMBER,
   p_drop_running_jobs   IN         BOOLEAN  DEFAULT FALSE),
   p_jobname             IN         VARCHAR2 DEFAULT NULL);

パラメータ

表87-10 STOP_ILMプロシージャのパラメータ

パラメータ 説明

task_id

特定のADOタスクを一意に識別する番号。

p_drop_running_jobs

実行中のジョブが削除されるかどうか。

p_jobname

終了されるジョブの名前。