怎么理解ORACLE 11G维护窗口和自动维护任务

发布时间:2021-11-11 15:30:20 作者:iii
来源:亿速云 阅读:365

这篇文章主要讲解了“怎么理解ORACLE 11G维护窗口和自动维护任务”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解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维护窗口和自动维护任务这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. oracle11g自动维护任务
  2. Oracle的自动维护任务

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

oracle

上一篇:如何进行Ubuntu Linux中的特权提升漏洞Dirty Sock分析

下一篇:Django中的unittest应用是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》