86 DBMS_ILM
DBMS_ILM
パッケージでは、自動データ最適化(ADO)ポリシーを使用して情報ライフサイクル管理(ILM)計画を実装するためのインタフェースが提供されます。
この章のトピックは、次のとおりです:
参照:
-
このパッケージを使用した自動データ最適化(ADO)の管理の詳細は、『Oracle Database VLDBおよびパーティショニング・ガイド』を参照してください。
86.1 DBMS_ILMの概要
ILM戦略を実装するために、Oracle Databaseのヒート・マップを使用すればデータのアクセスと変更を追跡できます。自動データ最適化(ADO)も使用すれば、データベース内の異なる層のストレージ間で、データの圧縮および移動を自動化できます。DBMS_ILM
パッケージは、ADO関連タスクの即時評価または実行をサポートしています。T
このパッケージでは、ADOアクションをスケジューリングする次の2つの方法がサポートされます。
-
データベース・ユーザーがオブジェクト・セット上でADOポリシーの即時実行をスケジュールします。
-
データベース・ユーザーがオブジェクト・セットでのADOポリシーの評価結果を確認します。次に、ユーザーは、このセットのオブジェクトを追加または削除して、ADOポリシーの評価結果を再確認します。ユーザーは、このステップを繰り返して、ADO実行の対象となるオブジェクト・セットを決定します。さらに、ユーザーはこのオブジェクト・セットでのADOアクションの即時実行をスケジュールできます。
次のプロシージャでは2つの使用モードがサポートされます。プロシージャの説明の前に、特定の評価を追跡可能なエンティティとしてのADOタスクの概念とADOポリシーの(評価および実行の)概念について説明します。個々のADOタスクは次のいずれかの状態になります。
-
非アクティブ
-
アクティブ
-
完了
86.3 DBMS_ILMの定数
このトピックの表では、DBMS_ILM
パッケージによって使用される定数を示します。
表86-1 DBMS_ILMの定数
定数 | 値 | タイプ | 説明 |
---|---|---|---|
|
|
|
オブジェクトのADOポリシーをすべて選択します。 |
|
1 |
|
ADOアクションの実行中にオブジェクトをオフラインにできるように指定します。 |
|
|
|
ADOアクションの実行中にオブジェクトがオンラインになるように指定します。 |
|
1 |
|
データベース内のすべてのADOポリシーを選択します。 |
|
|
|
現在のスキーマ内のすべてのADOポリシーを選択します。 |
|
1 |
|
即時実行するADOタスクをスケジュールします。 |
|
|
|
行をアクティブにする表で行アーカイブが有効化されたものの |
|
|
|
行を非アクティブにする表で行アーカイブが有効化されたものの |
86.4 DBMS_ILMの例外
このトピックの表では、DBMS_ILM
パッケージで発生する例外を示します。
表86-2 DBMS_ILMの例外
例外 | エラー・コード | 説明 |
---|---|---|
|
|
引数の値が無効です。 |
|
|
ディクショナリ状態に整合性がありません。 |
|
|
内部エラーです。 |
|
|
権限が不十分です。 |
86.5 DBMS_ILMサブプログラムの要約
この表は、DBMS_ILM
パッケージのサブプログラムについて説明しています。
表86-3 DBMS_ILMパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
引数で指定されたオブジェクトを特定のADOタスクに追加して、このオブジェクト上のADOポリシーを評価します。 |
|
行アーカイブが有効化された表の |
|
ADOタスクを実行します。 |
|
以前に評価されたADOタスクを実行します。 |
|
引数で指定された有効範囲のすべてのADOポリシーを評価します。 |
|
引数で指定されたオブジェクトを特定のADOタスクから削除します。 |
|
特定のADOタスクに作成されたADO関連のジョブを停止します。 |
86.5.1 ADD_TO_ILMプロシージャ
このプロシージャは、引数で指定されたオブジェクトを特定のADOタスクに追加して、このオブジェクト上のADOポリシーを評価します。
このプロシージャは、非アクティブ状態のADOタスクでのみ実行できます。このオブジェクト上のADOポリシーの評価結果は、ロールとアクセスに応じた適切なビュー(USER_ILMTASKS
またはDBA_ILMTASKS
、USER_ILMEVALUATIONDETAILS
またはDBA_ILMEVALUATIONDETAILS
、USER_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);
パラメータ
表86-4 ADD_TO_ILMプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
特定のADOタスクを識別します。 |
|
オブジェクトの所有者 |
|
オブジェクト名 |
|
サブオブジェクトの名前(パーティション化された表の場合はパーティション名)。 |
86.5.2 ARCHIVESTATENAMEファンクション
このファンクションでは、行アーカイブが有効化された表のORA_ARCHIVE_STATE
列の値を戻します。
構文
DBMS_ILM.ARCHIVESTATENAME ( value IN VARCHAR2) RETURN VARCHAR2;
パラメータ
表86-5 ARCHIVESTATENAMEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
アーカイブ状態名が戻される対象の値。 |
使用上のノート
0
の場合はARCHIVE_STATE_ACTIVE
を戻し、それ以外はARCHIVE_STATE_ARCHIVED
を戻します。
参照:
『Oracle Database VLDBおよびパーティショニング・ガイド』のインデータベース・アーカイブの使用に関する項を参照してください。
86.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);
パラメータ
表86-6 EXECUTE_ILMプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
特定のADOタスクを識別します。 |
|
ADO実行の対象となるオブジェクト・セットを決定します。デフォルトは、スキーマ内のオブジェクトのみが対象となります。 |
|
ADOタスクをオンライン( |
|
オブジェクトの所有者 |
|
オブジェクト名 |
|
サブオブジェクトの名前(パーティション化された表の場合はパーティション名)。 |
|
オブジェクト上で評価されるADOポリシーの名前。オブジェクト上のすべてのADOポリシーを評価する場合は、パッケージ定数の |
使用上のノート
-
EXECUTE_ILM
プロシージャは、ADOを実行するタイミングの制御がさらに必要なユーザーや、次のメンテナンス・ウィンドウまで待つ必要がないユーザーが使用できます。 -
このプロシージャの実行方法は、ADOタスクと関連ジョブの作成の前後に自動コミットを行うという点で、DDLと類似しています。
86.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);
パラメータ
表86-7 EXECUTE_ILM_TASKプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
特定のADOタスクを識別します。 |
|
ADOタスクをオンライン( |
|
ADOタスクを実行するタイミングを特定します。現在は、ADOジョブの即時スケジューリングのみが選択可能です。 |
86.5.5 PREVIEW_ILMプロシージャ
このプロシージャは、ILM_SCOPE
引数を使用して指定されたオブジェクト上でADOポリシーを評価します。
これは、特定のADOタスクを識別するtask_id
として数値を戻します。これを使用して、ロールとアクセスに応じた適切なビュー(USER_ILMTASKS
またはDBA_ILMTASKS
、USER_ILMEVALUATIONDETAILS
またはDBA_ILMEVALUATIONDETAILS
、USER_ILMRESULTS
またはDBA_ILMRESULTS
)でポリシー評価の結果を確認できます。
PREVIEW_ILM
プロシージャではADOタスクが非アクティブ状態のままになります。1度結果をプレビューすると、このタスクにオブジェクトの追加または削除ができます。
構文
DBMS_ILM.PREVIEW_ILM ( task_id OUT NUMBER, ilm_scope IN NUMBER DEFAULT SCOPE_SCHEMA);
パラメータ
表86-8 PREVIEW_ILMプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
特定のADOタスクを識別します。 |
|
実行の有効範囲を識別します。「定数」の説明に従って、 |
86.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);
パラメータ
表86-9 REMOVE_FROM_ILMプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
特定のADOタスクを識別します。 |
|
オブジェクトの所有者 |
|
オブジェクト名 |
|
サブオブジェクトの名前(パーティション化された表の場合はパーティション名)。 |
86.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);
パラメータ
表86-10 STOP_ILMプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
特定のADOタスクを一意に識別する番号。 |
|
実行中のジョブが削除されるかどうか。 |
|
終了されるジョブの名前。 |