※ここでの「メンテナンスウインドウ」とは、RDSの機能としてのメンテナンスウインドウではなく、Oracle Databaseとしてのメンテナンスウインドウを指しています。
RDS for OracleのスケジューラーはEST5EDT(米国東部標準時)であるため、設定された時刻の13時間遅れでメンテナンスタスク(統計情報収集等)が動作します。
このため、スケジューラーのタイムゾーンの変更手順について、以下に記載します。あわせて、メンテナンスタスク(メンテナンスウインドウ)のスケジュール変更手順も記載します。
1.スケジューラーのタイムゾーンを変更する
デフォルトタイムゾーンの変更
exec DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE('default_timezone','Asia/Tokyo');
変更後の結果確認
SELECT * FROM dba_autotask_window_clients;
なお、EST5EDTのメンテナンスウインドウが残っている場合は、次のSQLを実行します。
exec DBMS_SCHEDULER.DISABLE(name=>'SYS.<メンテナンスウインドウ名>'); exec DBMS_SCHEDULER.ENABLE(name=>'SYS.<メンテナンスウインドウ名>');
2.メンテナンウインドウのスケジュールを変更する
現在の設定値を確認
SELECT * FROM dba_scheduler_windows;
スケジュールを変更
exec DBMS_SCHEDULER.DISABLE(name => 'SYS.<メンテナンスウインドウ名>'); exec DBMS_SCHEDULER.SET_ATTRIBUTE(name => 'SYS.<メンテナンスウインドウ名>', attribute => 'REPEAT_INTERVAL', value => 'freq=<実行間隔(daily等)>; byday=<曜日(WED等)>; byhour=<時(24h表記)>; byminute=<分>; bysecond=<秒>'); exec DBMS_SCHEDULER.ENABLE(name => 'SYS.<メンテナンスウインドウ名>');
変更後の設定値を確認
SELECT * FROM dba_scheduler_windows;