oracle11g自动维护任务

oracle 11g中默认的自动维护任务分三类:
Automatic Optimizer Statistics Collection(自动优化器统计信息收集)
收集数据库中所有无统计信息或仅有过时统计信息的 Schema 对象的 Optimizer(优化器)统计信息。SQL query optimizer(SQL 查询优化器)使用此任务收集的统计信息提高 SQL 执行的性能。 *

Automatic Segment Advisor(自动段指导)
识别有可用回收空间的段,并提出如何消除这些段中的碎片的建议。您也可以手动运行 Segment Advisor 获取更多最新建议,或获取 Automatic Segment Advisor 没有检查到的那些有可能做空间回收的段的建议。*

* Automatic SQL Tuning Advisor(自动 SQL 优化指导)
检查高负载 SQL 语句的性能,并提出如何优化这些语句的建议。您可以配置此指导,自动应用建议的SQL profile。

启用/禁用维护任务:
client_name来自:
select * from DBA_AUTOTASK_CLIENT

---禁用

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;
/

要为所有窗口启用或禁用所有自动维护任务,请在不带参数的情况下调用ENABLE或DISABLE过程:

---禁用
EXECUTE DBMS_AUTO_TASK_ADMIN.DISABLE;

---启用
EXECUTE DBMS_AUTO_TASK_ADMIN.DISABLE;

---结果
select * from DBA_AUTOTASK_WINDOW_CLIENTS;

禁用特定的维护窗口:

BEGIN
  dbms_auto_task_admin.disable(
    client_name => ‘sql tuning advisor‘,
    operation   => NULL,
    window_name => ‘MONDAY_WINDOW‘);
END;
/

10g与11g预定义调度程序窗口的区别:
Oracle10g : WEEKNIGHT_WINDOW and WEEKEND_WINDOW
Oracle11g : MONDAY_WINDOW .... SUNDAY_WINDOW.
为了向下兼容,WEEKNIGHT_WINDOW 和 WEEKEND_WINDOW 仍然存在。
窗口打开持续的时间在 11g 中有所更改。星期一到星期五从晚上10点到凌晨2点,星期六到星期日从上午6点到凌晨2点。

修改自动任务的运行时间开始于23点,持续时间60分钟:

exec dbms_scheduler.disable( name => ‘MONDAY_WINDOW’, force => TRUE);
exec dbms_scheduler.set_attribute( name => ‘MONDAY_WINDOW’, attribute => ‘repeat_interval’,value => ‘freq=daily;byday=MON;byhour=23;byminute=0;bysecond=0’);
exec dbms_scheduler.set_attribute( name => ‘MONDAY_WINDOW’, attribute => ‘DURATION’,value => numtodsinterval(60,‘minute‘)));
exec dbms_scheduler.enable( name => ‘MONDAY_WINDOW’);

结果查看:
select * from dba_scheduler_windows;

默认使用DEFAULT_MAINTENANCE_PLAN资源计划:

SQL> select window_name, resource_plan from dba_scheduler_windows;

WINDOW_NAME            RESOURCE_PLAN
------------------------------ ------------------------------
MONDAY_WINDOW              DEFAULT_MAINTENANCE_PLAN
TUESDAY_WINDOW             DEFAULT_MAINTENANCE_PLAN
WEDNESDAY_WINDOW           DEFAULT_MAINTENANCE_PLAN
THURSDAY_WINDOW            DEFAULT_MAINTENANCE_PLAN
FRIDAY_WINDOW              DEFAULT_MAINTENANCE_PLAN
SATURDAY_WINDOW            DEFAULT_MAINTENANCE_PLAN
SUNDAY_WINDOW              DEFAULT_MAINTENANCE_PLAN
WEEKNIGHT_WINDOW
WEEKEND_WINDOW

默认资源管理

DEFAULT_MAINTENANCE_PLAN defines the following resource allocations:

Consumer Group/subplan  Level 1     Level 2     Maximum Utilization Limit
ORA$AUTOTASK_SUB_PLAN   -           25%         90
ORA$DIAGNOSTICS         -           5%          90
OTHER_GROUPS            -           70%
SYS_GROUP               75%         -

在此计划中,SYS_GROUP消费者组中的任何会话都将获得优先权。(此组中的会话是由用户帐户创建的会话SYS和SYSTEM。)会话中未使用的任何资源分配SYS_GROUP随后由属于计划中其他使用者组和子计划的会话共享。在该分配中,25%用于维护任务,5%用于执行诊断操作的后台进程,70%用于用户会话。用于最大利用率限制ORA$AUTOTASK_SUB_PLAN和ORA$DIAGNOSTICS为90。因此,即使CPU空闲,该计划不能被分配超过90%的CPU资源。

相关视图:

dba_scheduler_window_groups;  --维护窗口组
dba_scheduler_wingroup_members --维护窗口组对应窗口
dba_scheduler_windows --维护窗口历史信息
DBA_AUTOTASK_CLIENT_JOB --查询自动收集任务正在执行的job
DBA_AUTOTASK_JOB_HISTORY --查询自动收集任务历史执行状态
DBA_AUTOTASK_CLIENT_HISTORY --查询自动收集任务历史job

参考:调度程序维护任务或 Autotasks (文档 ID 1526120.1)

原文地址:http://blog.51cto.com/hunt1574/2136259

时间: 2024-11-04 08:55:59

oracle11g自动维护任务的相关文章

Mysql 存储过程+定时任务,完成分区自动维护

建表: drop table if exists terminal_parameter; CREATE TABLE `terminal_parameter` ( `terminal_parameter_id` int(11) NOT NULL AUTO_INCREMENT, .................... `createtime` datetime NOT NULL, `userid` int(8) NOT NULL, `terminal_id` int(8) DEFAULT NULL

Oracle的自动维护任务

Oracle数据库里提供了自动维护任务,以保证Oracle数据库可以更高效的运行.在不同的Oracle版本中,自动任务的种类和执行方式也有区别.本文以10g和11g为主来认识Oracle里的自动任务. 1.种类 10g里的自动任务有两种: AUTO_SPACE_ADVISOR_JOB,自动空间顾问JOB GATHER_STATS_JOB,自动收集统计信息JOB 11g里的自动任务有三种: auto optimizer stats collection,自动统计信息收集顾问 auto space

Log4Net日志分类和自动维护

背景 在程序中,我们调试运行时信息,Log4Net是一个不错的解决方案.不知道是我用的不好,用到最后反而都不想看日志了.原因是因为我n个功能使用的默认的Logger来记录日志,这样以来,所有功能记录的信息都依赖同一个配置,于是所有的信息都在一个文件中,有时候查找起来,极其不方便. 我想,能不能按照功能分类呢?如果通过配置不同的logger,然后功能根据不同的LoggerName加载Ilog实例,是可以做到.但由于这些功能的log配置差异性极小,也许仅仅就是文件名不同.于是想通过代码进行配置. 解

SQL Server 索引的自动维护 <第十三篇>

在有大量事务的数据库中,表和索引随着时间的推移而碎片化.因此,为了增进性能,应该定期检查表和索引的碎片,并对具有大量碎片的进行整理. 1.确定当前数据库中所有需要分析碎片的表. 2.确定所有表和索引的碎片. 3.考虑一下因素以确定需要进行碎片整理的表和索引. 高的碎片水平-avg_fragmentation_in_percent大于20%: 不是非常小的表或索引-也就是page_count大于8的: 4.整理具有大量碎片的表和索引: 这里给出一个样板SQL存储过程,它执行以下操作: 遍历系统上的

oracle自动维护

检查ORACLE自动维护任务是否关闭 SQL> select t.client_name, t.status from dba_autotask_client t; CLIENT_NAME  STATUS ---------------------------------------------------------------- -------- auto optimizer stats collection   DISABLED auto space advisor  DISABLED s

ahjesus使用T4模板自动维护实体

在entity项目里新建模板DBEntity.tt <#@ template debug="false" hostspecific="true" language="C#" #> <#@ include file="$(SolutionDir)\Packages\T4.TemplateFileManager.2.1.2\tools\ttinc\TemplateFilemanager.CS.ttinclude"

SQL Server 分区方案自动维护脚本

CREATE PROC Proc_partition_dealAS DECLARE @LatestValue DATETIME, @LastValue DATETIME, @EarlValue DATETIME, @differ INT, @New_Range_Value DATETIME, @fileGroupName VARCHAR(200), @sql VARCHAR(1000), @P_Sch_Name VARCHAR(100), @P_Fun_Name VARCHAR(100), @P

使用存储过程自动维护索引碎片

在有大量事务的数据库中,表和索引随着时间的推移而碎片化.因此,为了增进性能,应该定期检查表和索引的碎片,并对具有大量碎片的进行整理.   1.确定当前数据库中所有需要分析碎片的表. 2.确定所有表和索引的碎片. 3.考虑一下因素以确定需要进行碎片整理的表和索引.   高的碎片水平-avg_fragmentation_in_percent大于20%:   不是非常小的表或索引-也就是page_count大于8的: 4.整理具有大量碎片的表和索引: 这里给出一个样板SQL存储过程,它执行以下操作:

oracle11g AUD$维护

SYSTEM表空间使用率达到了85%,查出是用来记录审计记录的aud$表占用了很大的空间. 备份后truncate掉AUD$,问题临时解决.记得oracle11.2可以把aud$迁移到普通的表空 间.于是试了一把,果然ok. 1.检查SYSTEM表空间使用情况 SQL*Plus: Release 11.2.0.3.0 Production on Mon Mar 26 11:21:18 2012 Copyright (c) 1982, 2011, Oracle.  All rights reser