关于Oracle 11g R1中的自动数据库维护任务管理的讲解

    作者:课课家更新于: 2015-11-12 08:31:51

    不经意间我们又来到了oracle系统文章的学习,在众多学习中,我们的文章也许不起眼,但是想必大家都有很多问题吧,所以重要的下面我们就来讲解一下,大家一定要认真看奥!!
     
    【独家翻译】
    本文对Oracle 11g中的自动数据库维护任务管理做一个总体介绍,文章保持简洁出于两个原因:
    1、大部分人都还没有接触过这些设置。尽管这么说,如果你是在夜间处理维护任务的,如果在晚上打开一个维护窗口并不是一个好主意,你可能想要改变这一切。
    2、基本的管理任务都是自我控制的。但除了迁移到调度器和资源管理器的讨论外,其他的已经超出了本文的范围,我在文末附上了相关的参考链接。
    Oracle 11g包括了下面三个自动数据库维护任务:
    自动优化器统计收集:为所有方案对象收集陈旧的或缺少的统计数据,任务名是“optimizer stats collection”
    自动分段顾问:标识出应该被重组的段以节约空间,任务名是“auto space advisor”
    自动SQL调整顾问:标识并尝试调整高负载的SQL,任务名是“sql tuning advisor”
    这些任务在夜间打开维护窗口时执行,可以使用企业管理器(EM)或PL/SQL API配置维护任务,以及它们的调度信息和资源使用。
    “自动维护任务”屏幕显示了每个任务的维护窗口(服务器自动维护任务(链接在“调度器”下面)),点击“配置”按钮进入配置页面。


     基础任务配置
    “自动维护任务配置”屏幕是所有维护任务配置的入口。


     
    “全局状态”开关允许你为所有自动任务开启或禁用维护窗口。


     DBMS_AUTO_TASK_ADMIN包的ENABLE和DISABLE存储过程能够实现同样的效果(不要任何参数):

    EXEC DBMS_AUTO_TASK_ADMIN.disable;
    EXEC DBMS_AUTO_TASK_ADMIN.enable;
    

    “任务设置”部分允许你单独将某个维护任务窗口开启或禁用。


     
    同样,这也可以使用DBMS_AUTO_TASK_ADMIN包中的ENABLE和DISABLE存储过程实现,在CLIENT_NAME参数中指定相应的任务名:

    BEGIN
      DBMS_AUTO_TASK_ADMIN.disable(
        client_name => 'auto space advisor',
        operation   => NULL,
        window_name => NULL);
    END;
    /
    BEGIN
      DBMS_AUTO_TASK_ADMIN.enable(
        client_name => 'auto space advisor',
        operation   => NULL,
        window_name => NULL);
    END;
    /

    “维护窗口组分配”部分提供了细粒度的控制,允许在单个维护窗口上移除或添加任务。


    同样,这也可以使用DBMS_AUTO_TASK_ADMIN包中的ENABLE和DISABLE存储过程实现,只需要为CLIENT_NAME和WINDOW_NAME参数指定相应的值即可:

    BEGIN
      DBMS_AUTO_TASK_ADMIN.disable(
        client_name => 'auto optimizer stats collection',
        operation   => NULL,
        window_name => 'MONDAY_WINDOW');
    
      DBMS_AUTO_TASK_ADMIN.disable(
        client_name => 'auto space advisor',
        operation   => NULL,
        window_name => 'MONDAY_WINDOW');
    
      DBMS_AUTO_TASK_ADMIN.disable(
        client_name => 'sql tuning advisor',
        operation => NULL,
        window_name => 'MONDAY_WINDOW');
    END;
    /
    

    #p#
    任务参数配置
    “自动维护任务配置”下的“任务配置”部分包括两个“配置”按钮。


    点击“优化器统计收集”后的“配置”按钮,显示“全局统计收集选项”屏幕。


     
    这些设置都可以使用DBMS_STATS包中的SET_GLOBAL_PREFS存储过程进行修改,参考
    http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_stats.htm#sthref10432列出的可能的参数值。

    EXEC DBMS_STATS.alter_stats_history_retention(90);
    EXEC DBMS_STATS.set_global_prefs('estimate_percent', '5');
    

    点击“自动SQL调整任务”后的“配置”按钮,显示“自动SQL调整设置”屏幕。oracle教学视频
    世界上的所有行业几乎都在应用Oracle技术,《财富》100强中的98家公司都采用Oracle技术。Oracle是第一个跨整个产品线(数据库、业务应用软件和应用软件开发与决策支持工具)开发和部署100%基于互联网的企业软件的公司。Oracle是世界领先的信息管理软件供应商和世界第二大独立软件公司。

    甲骨文收购了Sun,把Java收入囊中,对于Java这一最受全球编程者推崇的语言的前途业界有很多的担心,虽然甲骨文明确表示将继续开发JDK,继续支持Java。IBM公司表示,IBM、甲骨文以及其他Java社区伙伴在OpenJDK上的协同工作,将加快Java平台的创新。甲骨文和IBM的合作也标志着企业客户可以继续凭借Java社区来提供更加开放、灵活和创新的新技术,以促进其业务增长。

    这些设置也可以使用DBMS_SQLTUNE包中的SET_TUNING_TASK_PARAMETER存储过程修改。

    BEGIN
      DBMS_SQLTUNE.set_tuning_task_parameter('SYS_AUTO_SQL_TUNING_TASK',
     'LOCAL_TIME_LIMIT', 1200);
      DBMS_SQLTUNE.set_tuning_task_parameter('SYS_AUTO_SQL_TUNING_TASK', 
    'ACCEPT_SQL_PROFILES', 'FALSE');
      DBMS_SQLTUNE.set_tuning_task_parameter('SYS_AUTO_SQL_TUNING_TASK', 
    'MAX_SQL_PROFILES_PER_EXEC', 20);
      DBMS_SQLTUNE.set_tuning_task_parameter('SYS_AUTO_SQL_TUNING_TASK',
     'MAX_AUTO_SQL_PROFILES', 10000);
    END;
    /

    维护窗口配置
    使用Oracle调度器定义维护窗口,Oracle每天单独提供一个活动维护窗口,所有的窗口都收集进入一个叫做MAINTENANCE_WINDOW_GROUP的窗口组中,点击“自动维护任务配置”屏幕上的“编辑窗口组”按钮查看你窗口组详细信息或对窗口组进行修改。


    使用这个屏幕上提供的功能可以启用/禁用所有的窗口组,也可以使用DBMS_SCHEDULER包中的ENABLE和DISABLE存储过程来实现。

    BEGIN
      DBMS_SCHEDULER.disable(
        name  => 'SYS.MAINTENANCE_WINDOW_GROUP',
        force => TRUE);
    
      DBMS_SCHEDULER.enable(
        name  => 'SYS.MAINTENANCE_WINDOW_GROUP');
    END;
    /
    

    点击这个屏幕或“自动维护任务配置”屏幕上的窗口名,显示“查看窗口”屏幕,显示了窗口配置的摘要信息。



    点击“编辑”按钮,修改窗口定义。

    这些配置可以使用DBMS_SCHEDULER包中的SET_ATTRIBUTE存储过程进行修改,在http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28419/d_sched.htm#sthref8322有关于窗口的所有属性信息。

    oracle数据库教程

    BEGIN
      DBMS_SCHEDULER.disable(name => 'SYS.MONDAY_WINDOW', force => TRUE);
    
      DBMS_SCHEDULER.set_attribute(
        name      => 'SYS.MONDAY_WINDOW',
        attribute => 'DURATION',
        value     => numtodsinterval(180, 'minute'));
    
      DBMS_SCHEDULER.enable(name=>'SYS.MONDAY_WINDOW');
    END;
    /
    

    如果你希望创建新的维护窗口,确保将其加入MAINTENANCE_WINDOW_GROUP窗口组。
    对调度器的介绍已经超出本文的范围,不过在文末我列出了有关的链接。
    资源计划配置
    “编辑窗口”屏幕包括了“查看资源计划”和“创建资源计划”按钮。点击它们就进入“资源管理器维护”屏幕,默认情况下,所有的维护窗口都被指派给DEFAULT_MAINTENANCE_PLAN资源计划。


    如果需要,你可以编辑资源计划,也可以创建新的资源计划。


    如果你创建新的资源计划,在“编辑窗口”屏幕,你需要将新的资源计划指派给有关的维护窗口,或使用DBMS_SCHEDULER包来完成指派。

    BEGIN
      DBMS_SCHEDULER.disable(name => 'SYS.MONDAY_WINDOW', force => TRUE);
    
      DBMS_SCHEDULER.set_attribute(
        name      => 'SYS.MONDAY_WINDOW',
        attribute => 'RESOURCE_PLAN',
        value     => 'MY_NEW_PLAN');
    
      DBMS_SCHEDULER.enable(name=>'SYS.MONDAY_WINDOW');
    END;
    /
    


    完整介绍资源管理器已经超出了本文的范围,我在文末同样列出了参考链接。
    有关的视图
    下面的视图显示有关自动数据库维护任务的信息:
     DBA_AUTOTASK_CLIENT_JOB
     DBA_AUTOTASK_CLIENT
     DBA_AUTOTASK_JOB_HISTORY
     DBA_AUTOTASK_WINDOW_CLIENTS
     DBA_AUTOTASK_CLIENT_HISTORY
    此外,你可能还应该参考调度器和资源管理器有关的视图。

    小主们看完我们的文章,想必一定对我们文章很感兴趣了吧,若大家想了解更多视频课程文章的课程,亲们可以到课课家官网查看。非常真诚地欢迎大家,偶在等你们哟,快来吧!!!

课课家教育

未登录

1