Oracle® Database Administrator's Guide 11g Release 1 (11.1) Part Number B28310-01 |
|
|
View PDF |
You may want to adjust the predefined maintenance windows to a time suitable to your database environment or create a new maintenance window. You can customize maintenance windows using the DBMS_SCHEDULER
PL/SQL package.
This section contains the following topics:
The DBMS_SCHEDULER
PL/SQL package includes a SET_ATTRIBUTE
procedure for modifying the attributes of a window. For example, the following script changes the duration of the maintenance window SATURDAY_WINDOW
to 4 hours:
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;
Note that you must use the DBMS_SCHEDULER.DISABLE
subprogram to disable the window before making changes to it, and then re-enable the window with DBMS_SCHEDULER.ENABLE
when you are finished. If you change a window when it is currently open, the change does not take effect until the next time the window opens.
See Also:
"Using Windows" for more information about modifying windows.The DBMS_SCHEDULER
PL/SQL package provides the ADD_WINDOW_GROUP_MEMBER
subprogram, which adds a window to a window group. To create a maintenance window, you must create a Scheduler window and then add it to the window group MAINTENANCE_WINDOW_GROUP
.
The following example uses the DBMS_SCHEDULER
package to create a maintenance window called EARLY_MORNING_WINDOW
. This window runs for one hour daily between 5 a.m. and 6 a.m.
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_window_group_member( group_name => 'MAINTENANCE_WINDOW_GROUP', window_list => 'EARLY_MORNING_WINDOW'); END;
See Also:
Oracle Database PL/SQL Packages and Types Reference for information on the DBMS_SCHEDULER
package
To remove an existing maintenance window, remove it from the MAINTENANCE_WINDOW_GROUP
window group. The window continues to exist but no longer runs automated maintenance tasks. Any other Scheduler jobs assigned to this window continue to run as usual.
The following example removes EARLY_MORNING_WINDOW
from the window group:
BEGIN DBMS_SCHEDULER.REMOVE_WINDOW_GROUP_MEMBER( group_name => 'MAINTENANCE_WINDOW_GROUP', window_list => 'EARLY_MORNING_WINDOW'); END;
See Also:
Oracle Database PL/SQL Packages and Types Reference for information on the DBMS_SCHEDULER
package