共计 3023 个字符,预计需要花费 8 分钟才能阅读完成。
这篇文章主要讲解了“怎么理解 ORACLE 11G 维护窗口和自动维护任务”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“怎么理解 ORACLE 11G 维护窗口和自动维护任务”吧!
维护窗口是一个连续的时间间隔,用于管理自动维护任务,所谓自动维护窗口是按照预定义一个时间段,比如晚上 22:10~04:00 就可以称为一个窗口。自动维护任务是一种按规则自动启动的数据库维护操作任务。自动维护任务在维护窗口打开时自动运行。(就例如闹钟响了,该起床了,时间到了,任务自动执行,)
在 Oracle Database 11g 中,自动维护任务功能依赖于在维护窗口期间启用的资源管理器。因此,窗口打开时,会自动启用与窗口关联的资源计划,其目标是防止维护工作消耗过多的系统资源。每个维护窗口都与一个资源计划关联;该计划指定了窗口持续期间的资源分配方式。
oracle11g 数据库有三种预定义的自动维护任务:
■ Automatic Optimizer Statistics Collection:
■ Automatic Segment Advisor
■ Automatic SQL Tuning Advisor(这个是 oracle
11g 新添加的自动维护任务)
缺省情况下,这三个任务配置为在所有维护窗口运行。
维护窗口:维护窗口是 oracle 调度窗口,属于窗口组 MAINTENANCE_WINDOW_GROUP。
控制自动维护任务
“自动维护任务”功能可以确定任务的执行时间和顺序。DBA 可以控制以下项目:
? 在维护窗口最终不足以承受维护工作量时,调整维护窗口的持续时间和开始时间。
? 控制在每个窗口期间将资源分配给自动维护任务的资源计划。
? 启用或禁用部分或全部维护窗口中的单个任务。
? 在 RAC 环境中,通过将维护工作映射到某项服务,将维护工作转移至一个或多个实例。对实例子集启用服务会将维护工作转移至这些实例。
一:配置自动维护任务:
1:启用和禁止维护任务:
使用 DBMS_AUTO_ADMIN pl/sql 包来启用或禁用任务:
禁用任务:
BEGIN
dbms_auto_task_admin.disable(
client_name = sql tuning advisor ,
operation = NULL,
window_name = NULL);
END;
启用任务:
BEGIN
dbms_auto_task_admin.enable(
client_name =‘sql tuning advisor‘,
operation = NULL,
window_name = NULL);
END;
这里 client_name 参数可以通过数据字典视图 DBA_AUTOTASK_CLIENT 来查询。
sys@ ORA select client_name from dba_autotask_client;
CLIENT_NAME
————————————————————
auto optimizer stats collection
auto space advisor
sql tuning advisor
如果想启用或禁用所有窗口自动维护任务,调用 ENABLE 或 DISABLE 过程:
EXECUTE DBMS_AUTO_TASK_ADMIN.DISABLE;
2:为某一个维护窗口启用或禁用维护窗口
缺省情况下,所有维护任务在所有预定义的维护窗口都运行。可以对某一个维护窗口启用或禁用自动化任务。
BEGIN
dbms_auto_task_admin.disable(
client_name = sql tuning advisor ,
operation = NULL,
window_name = MONDAY_WINDOW
END;
上面的例子是对维护窗口 monday_window 进行禁用 sql tuning advisor。
二:配置维护窗口:
可是使用 DBMS_SCHEDULER 包来修改窗口属性。
1:修改维护窗口
– 先禁用维护窗口
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;
/
对于当前打开的窗口,你需要首先禁用,然后修改再启用,配置立即生效,如果你不通过这三个过程来修改属性,属性是不会生效的,直到下一次窗口打开。
2:创建新窗口:
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;
/
3: 删除窗口:
BEGIN
DBMS_SCHEDULER.REMOVE_WINDOW_GROUP_MEMBER(
group_name = MAINTENANCE_WINDOW_GROUP ,
window_list = EARLY_MORNING_WINDOW
END;
/
三:跟踪 job 运行情况:
可以通过查询视图 DBA_AUTOTASK_HISTORY 追踪 job 运行情况:
SQL select client_name,job_name,job_start_time from
dba_autotask_job_history;
CLIENT_NAME
JOB_NAME JOB_START_TIME
——————–
——————- ———————————-
auto optimizer stats ORA$AT_OS_OPT_SY_1 12-JUN-18 12.00.02.039000
PM +08:50
auto space advisor ORA$AT_SA_SPC_SY_2 12-JUN -18 12.00.02.050000
PM +08:50
sql tuning advisor ORA$AT_SQ_SQL_SW_3 12-JUN -18 12.00.02.015000
PM +08:50
感谢各位的阅读,以上就是“怎么理解 ORACLE 11G 维护窗口和自动维护任务”的内容了,经过本文的学习后,相信大家对怎么理解 ORACLE 11G 维护窗口和自动维护任务这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!