事前定義のメンテナンス・ウィンドウをデータベース環境に適した時間に調整したり、新しいメンテナンス・ウィンドウを作成できます。メンテナンス・ウィンドウは、DBMS_SCHEDULER PL/SQLパッケージを使用してカスタマイズできます。
この項の内容は、次のとおりです。
DBMS_SCHEDULER PL/SQLパッケージには、ウィンドウの属性を変更するためのSET_ATTRIBUTEプロシージャが含まれています。たとえば、次のスクリプトは、メンテナンス・ウィンドウSATURDAY_WINDOWの期間を4時間に変更します。
BEGIN
dbms_scheduler.disable(
name => 'SATURDAY_WINDOW');
dbms_scheduler.set_attribute(
name => 'SATURDAY_WINDOW',
attribute => 'DURATION',
value => numtodsinterval(4, 'hour'));
dbms_scheduler.enable(
name => 'SATURDAY_WINDOW');
END;
/
ウィンドウを変更する際は、事前にDBMS_SCHEDULER.DISABLEサブプログラムを使用してそのウィンドウを無効にし、終了した後にDBMS_SCHEDULER.ENABLEを使用して再度有効にする必要があります。現在オープン中のウィンドウを変更した場合は、そのウィンドウの次回オープンまで変更内容が反映されません。
新規メンテナンス・ウィンドウを作成するには、Oracle Schedulerのウィンドウを作成して、ウィンドウ・グループMAINTENANCE_WINDOW_GROUPに追加する必要があります。DBMS_SCHEDULER.CREATE_WINDOWパッケージ・プロシージャを使用してウィンドウを作成し、DBMS_SCHEDULER.ADD_GROUP_MEMBERプロシージャを使用して、この新規ウィンドウをウィンドウ・グループに追加します。
次の例は、EARLY_MORNING_WINDOWという名前のメンテナンス・ウィンドウを作成しています。このウィンドウは、午前5時から午前6時まで毎日1時間実行されます。
BEGIN
dbms_scheduler.create_window(
window_name => 'EARLY_MORNING_WINDOW',
duration => numtodsinterval(1, 'hour'),
resource_plan => 'DEFAULT_MAINTENANCE_PLAN',
repeat_interval => 'FREQ=DAILY;BYHOUR=5;BYMINUTE=0;BYSECOND=0');
dbms_scheduler.add_group_member(
group_name => 'MAINTENANCE_WINDOW_GROUP',
member => 'EARLY_MORNING_WINDOW');
END;
/
|
関連項目:
|
既存のメンテナンス・ウィンドウを削除するには、MAINTENANCE_WINDOW_GROUPウィンドウ・グループから該当するウィンドウを削除します。ウィンドウは存在し続けますが、自動化メンテナンス・タスクは実行されません。このウィンドウに割り当てられているOracle Schedulerの他のジョブは、引き続き通常どおりに実行されます。
次の例は、ウィンドウ・グループからEARLY_MORNING_WINDOWを削除しています。
BEGIN
DBMS_SCHEDULER.REMOVE_GROUP_MEMBER(
group_name => 'MAINTENANCE_WINDOW_GROUP',
member => 'EARLY_MORNING_WINDOW');
END;
/
|
関連項目:
|