• 概述
  • 自动维护任务的演变
    • 10g

      • 预定义的维护窗口Maintenance Windows
      • 预定义的自动系统任务Predefined Automatic System Tasks
    • 11g
      • 预定义的维护窗口Maintenance Windows
      • 预定义自动维护任务Automated Maintenance Tasks
    • 12c
      • 预定义的维护窗口Maintenance Windows
      • 预定义自动维护任务Automated Maintenance Tasks
    • 各版本的主要变化
  • 自动维护任务的控制启用禁用更改
    • 10g
    • 11g 12c
  • 监视视图
    • 10g
    • 11g 12c
  • 重建数据库自动维护任务

概述

本文介绍改变数据库自动维护任务(Automated Maintenance Tasks)相关的基础知识和总体介绍。

Oracle数据库通过预定义的维护窗口中,定期自动地运行一些维护任务,用于实现如统计信息收集、SQL调优顾问等工作,以减少DBA的工作量,使数据库最优。

自动维护任务的演变

Oracle在10g的版本上最初推出自动维护作业,并在11g版本开始改为自动维护任务,
并在以后的版本上不断功能加强和追加新的功能。
以下是自动维护任务在各个版本中主要变化:

10g

预定义的维护窗口(Maintenance Windows)

在10g版本上,Oracle主要有2个预定义的维护窗口(Maintenance Windows):

WEEKNIGHT_WINDOW : 周一到周五 每天22:00开始 ~ 次日06:00结束。
WEEKEND_WINDOW   :周六和周日的全天

通过这两个维护窗口, 组成MAINTENANCE_WINDOW_GROUP 用于管理维护作业(maintenance jobs)。

预定义的自动系统任务(Predefined Automatic System Tasks)

在10g版本上,主要有以下2个自动系统任务在维护窗口(Maintenance Windows)中运行。

自动统计信息收集作业(Automatic Statistics Collection Job):收集数据库中所有无统计信息或统计信息过时的对象的统计信息,以便提高 SQL 执行的性能。自动段指导作业(Automatic Segment Advisor Job)       :识别是否有可用回收空间的段,并提出如何消除这些段中的碎片的建议。

关于10g的维护作业的其他详细内容可以参考以下的在线文档。

Database Administrator’s Guide

>23 Managing Automatic System Tasks Using the Maintenance Window

11g

预定义的维护窗口(Maintenance Windows)

在11g版本上,Oracle预定义了9个维护窗口(Maintenance Windows)。

新追加的,每天的维护窗口:
(周一到周五 每天22:00 ~ 次日02:00;周六和周日 06:00 ~ 次日02:00)

MONDAY_WINDOW           : 周一 22:00 ~ 周二 02:00
TUESDAY_WINDOW          : 周二 22:00 ~ 周三 02:00
WEDNESDAY_WINDOW        : 周三 22:00 ~ 周四 02:00
THURSDAY_WINDOW         : 周四 22:00 ~ 周五 02:00
FRIDAY_WINDOW           : 周五 22:00 ~ 周六 02:00
SATURDAY_WINDOW         : 周六 06:00 ~ 周日 02:00
SUNDAY_WINDOW           : 周日 06:00 ~ 周一02:00

为了兼容以前的版本而留下的维护窗口:(默认不使用)

WEEKNIGHT_WINDOW : 周一到周五 每天22:00开始 ~ 次日06:00结束。
WEEKEND_WINDOW   : 周六和周日的全天

通过这九个维护窗口, 组成MAINTENANCE_WINDOW_GROUP 用于管理维护任务(maintenance tasks)。

预定义自动维护任务(Automated Maintenance Tasks)

在11g版本上,主要有以下3个自动管理维护任务在每天的维护窗口(Maintenance Windows)中运行。

自动优化器统计信息收集(Automatic Optimizer Statistics Collection):收集数据库中所有无统计信息或统计信息过时的对象的统计信息,以便提高 SQL 执行的性能。自动段指导(Automatic Segment Advisor):识别是否有可用回收空间的段,并提出如何消除这些段中的碎片的建议。自动 SQL 优化指导(Automatic SQL Tuning Advisor):检查高负载 SQL 语句的性能,并提出如何优化这些语句的建议。

关于11g的维护任务的其他详细内容可以参考以下的在线文档。

Database Administrator’s Guide

>26 Managing Automated Database Maintenance Tasks

12c

预定义的维护窗口(Maintenance Windows)

在12c版本上,和11g一样,Oracle预定义了9个维护窗口(Maintenance Windows)。

包括,每天的维护窗口:
(周一到周五 每天22:00 ~ 次日02:00;周六和周日 06:00 ~ 次日02:00)

MONDAY_WINDOW           : 周一 22:00 ~ 周二 02:00
TUESDAY_WINDOW          : 周二 22:00 ~ 周三 02:00
WEDNESDAY_WINDOW        : 周三 22:00 ~ 周四 02:00
THURSDAY_WINDOW         : 周四 22:00 ~ 周五 02:00
FRIDAY_WINDOW           : 周五 22:00 ~ 周六 02:00
SATURDAY_WINDOW         : 周六 06:00 ~ 周日 02:00
SUNDAY_WINDOW           : 周日 06:00 ~ 周一02:00

为了兼容以前的版本而留下的维护窗口:(默认不使用)

WEEKNIGHT_WINDOW : 周一到周五 每天22:00开始 ~ 次日06:00结束。
WEEKEND_WINDOW   : 周六和周日的全天

通过这九个维护窗口, 组成MAINTENANCE_WINDOW_GROUP 用于管理维护任务(maintenance tasks)。

预定义自动维护任务(Automated Maintenance Tasks)

在12c版本上,新追加了一个SQL计划管理(SPM)进化指导(SPM Evolve Advisor)任务,用于SQL计划管理计划(SPM)的进化;所以,主要有以下4个自动管理维护任务在每天的维护窗口(Maintenance Windows)中运行。

自动优化器统计信息收集(Automatic Optimizer Statistics Collection):收集数据库中所有无统计信息或统计信息过时的对象的统计信息,以便提高 SQL 执行的性能。自动段指导(Automatic Segment Advisor):识别是否有可用回收空间的段,并提出如何消除这些段中的碎片的建议。自动 SQL 优化指导(Automatic SQL Tuning Advisor):检查高负载 SQL 语句的性能,并提出如何优化这些语句的建议。SQL计划管理(SPM)进化指导(SPM Evolve Advisor):针对新追加的SQL计划管理计划进行进化。

关于12c的维护任务的其他详细内容可以参考以下的在线文档。

Database Administrator’s Guide

>26 Managing Automated Database Maintenance Tasks

各版本的主要变化

自动维护任务各版本的主要变化可以参考下表:

版权声明:本文为博主原创文章,转载必须注明出处,本人保留一切相关权力!http://blog.csdn.net/lukeunique

自动维护任务的控制(启用、禁用、更改)

可以通过如下的方法对自动维护任务进行控制。

10g

1.针对特定维护作业的操作

启用方法:

EXECUTE DBMS_SCHEDULER.ENABLE('GATHER_STATS_JOB');
EXECUTE DBMS_SCHEDULER.ENABLE('AUTO_SPACE_ADVISOR_JOB');

禁用方法:

EXECUTE DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
EXECUTE DBMS_SCHEDULER.DISABLE('AUTO_SPACE_ADVISOR_JOB');

2.确认各个维护作业的状态:

select job_name,enabled
from dba_scheduler_jobs
where job_name in ( 'GATHER_STATS_JOB', 'AUTO_SPACE_ADVISOR_JOB');
  1. 维护窗口设定更改:

可以通过DBMS_SCHEDULER.SET_ATTRIBUTE程序包对维护窗口进行如运行时间、频度等设定的修改。如:

--修改周一到周五的维护窗口(WEEKNIGHT_WINDOW)为每天0点开始。
EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE('WEEKNIGHT_WINDOW', 'repeat_interval','freq=daily;byday=MON, TUE, WED, THU, FRI;byhour=0;byminute=0;bysecond=0');

参考:
Database PL/SQL Packages and Types Reference
>93 DBMS_SCHEDULER

11g& 12c

1.针对特定维护任务的操作

禁用方法:

--禁用sql tuning advisor
BEGINdbms_auto_task_admin.disable(client_name => 'sql tuning advisor',operation   => NULL,window_name => NULL);
END;
/

启用方法:

--启用sql tuning advisor
BEGINdbms_auto_task_admin.enable(client_name => 'sql tuning advisor',operation   => NULL,window_name => NULL);
END;
/

其中,client_name可以为DBA_AUTOTASK_CLIENT表中的任意一个任务名(client_name):

SQL> select client_name from DBA_AUTOTASK_CLIENT;CLIENT_NAME
----------------------------------------------------------------
auto optimizer stats collection
auto space advisor
sql tuning advisor

另外,需要注意的是在12c的环境中,CLIENT_NAME:sql tuning advisor同时控制着自动 SQL 优化指导(Automatic SQL Tuning Advisor)和SQL计划管理(SPM)进化指导(SPM Evolve Advisor)。

2.启用和禁用所有的维护任务:

--禁用
EXECUTE DBMS_AUTO_TASK_ADMIN.DISABLE;
--启用
EXECUTE DBMS_AUTO_TASK_ADMIN.ENABLE;

3.确认各个维护任务的状态

--例:自动 SQL 优化指导(Automatic SQL Tuning Advisor)
COL CLIENT_NAME FORMAT a20
SELECT CLIENT_NAME, STATUS
FROM   DBA_AUTOTASK_CLIENT
WHERE  CLIENT_NAME = 'sql tuning advisor';

4.维护窗口设定更改:

可以通过DBMS_SCHEDULER.SET_ATTRIBUTE程序包对维护窗口进行如运行时间、频度等设定的修改。如:

--修改SATURDAY_WINDOW窗口的持续时间
BEGINdbms_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;
/

监视视图

对于维护任务(作业)调查,相关的一些监视视图。

10g

DBA_SCHEDULER_JOBS:数据库内所有作业的相关详细内容。DBA_SCHEDULER_JOB_LOG:作业的执行日志
DBA_SCHEDULER_JOB_RUN_DETAILS:作业的执行详细DBA_SCHEDULER_WINGROUP_MEMBERS:维护窗口的详细
DBA_SCHEDULER_WINDOWS:数据库内所有窗口的相关内容。DBA_SCHEDULER_JOB_CLASSES:Resource Plan相关信息。

11g& 12c

DBA_AUTOTASK_CLIENT:查看各个维护任务客户端的相关内容。
DBA_AUTOTASK_TASK:查看各个维护任务的相关内容。DBA_AUTOTASK_JOB_HISTORY:维护任务作业的执行历史
DBA_AUTOTASK_SCHEDULE:今后32天内的各个Client的执行计划
DBA_AUTOTASK_OPERATION:各个Client的执行操作
DBA_AUTOTASK_WINDOW_HISTORY:各个维护窗口的执行历史DBA_AUTOTASK_WINDOW_CLIENTS:属于各个维护窗口客户端的维护任务的状态。
DBA_SCHEDULER_WINDOWS:数据库内所有窗口的相关内容。
DBA_SCHEDULER_WINDOW_GROUPS:数据库内所有窗口组的相关内容。DBA_RSRC_PLANS:数据库中所有的资源计划(Resource Plan)信息
DBA_RSRC_PLAN_DIRECTIVES:资源计划指令信息

重建数据库自动维护任务

在某些情况下,如发现数据库自动维护任务有问题或者想恢复成默认的设定时,你可以通过以下的方法重建数据库维护窗口和自动维护任务。

conn /as sysdba-- 这个脚本会删除维护窗口,但是可能会报一些可以忽略的错误。
@?/rdbms/admin/catnomwn.sql -- 也可以通过手动删除维护窗口代替catnomwn.sql。
execute dbms_scheduler.drop_window('MONDAY_WINDOW');
execute dbms_scheduler.drop_window('TUESDAY_WINDOW');
execute dbms_scheduler.drop_window('WEDNESDAY_WINDOW');
execute dbms_scheduler.drop_window('THURSDAY_WINDOW');
execute dbms_scheduler.drop_window('FRIDAY_WINDOW');
execute dbms_scheduler.drop_window('SATURDAY_WINDOW');
execute dbms_scheduler.drop_window('SUNDAY_WINDOW');-- 重建维护窗口和维护作业(任务)
@?/rdbms/admin/catmwin.sql

版权声明:本文为博主原创文章,转载必须注明出处,本人保留一切相关权力!http://blog.csdn.net/lukeunique

欢迎关注微信订阅号:TeacherWhat

【数据库管理】数据库自动维护任务介绍相关推荐

  1. oracle数据库管理web,Oracle 数据库WEB维护管理软件

    TreeSoft数据库管理系统使用JAVA开发,采用稳定通用的springMVC+JDBC架构,实现基于WEB方式对 MysqL,Oracle,Postgresql 数据库进行维护管理操作. 功能包括 ...

  2. 数据库入门理论知识介绍以及编译安装MySql

    数据库入门理论知识介绍以及编译安装MySql 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 前言: 1.目前90%以上的公司面临的运维的瓶颈都在后端 最常见的2大瓶颈就是: 1&g ...

  3. 第5章 数据库管理---数据库原理及应用

    学习目的和要求 了解数据库管理的内容 理解数据事务概念及特点 掌握数据库安全管理技术 理解并掌握数据库备份与恢复技术 理解数据库并发执行的问题 掌握数据库并发控制技术 一.什么是数据库管理:使数据库正 ...

  4. 阿里云数据库产品专家胡航丽:数据库自动驾驶平台DAS重磅助力数据库领域智能未来...

    墨墨导读:2020数据技术嘉年华于11月21日落下帷幕,大会历时两天,来自全国各地的数据领域学术精英.领袖人物.技术专家.从业者和技术爱好者相聚北京,见证了个人的快速成长.技术的迭代进步.行业的蓬勃发 ...

  5. 达梦数据库DM8-DM管理工具介绍和简单使用

    达梦数据库DM8-DM管理工具介绍和简单使用 系列文章目录 本文环境 1.DM管理工具介绍 2.DM管理工具简单使用 1.打开DM管理工具 2.数据库连接 3.DM管理工具常用功能介绍 系列文章目录 ...

  6. 序列号及序列号生成器(号段模式,数据库模式)详细介绍(建议收藏)

    前言 现如今,数据的唯一性和可追溯性变得越来越重要.从简单的数据库主键到复杂的分布式系统,唯一标识符在各种场景中都发挥着关键作用.序列号,作为一种广泛应用的唯一标识符,为我们提供了确保数据完整性和一致 ...

  7. 数据库自动收缩带来的严重问题

    背景 今天早上11点的时候有客户打电话过来说医院的cis系统一直有阻塞,导致系统有卡慢的现象,信息中心的电话都快被打爆了,信息科人员很头疼啊. 万幸我们给数据库装了'摄像头'会把数据库的一切状态操作都 ...

  8. mysql 本地备份_MYSQL数据库自动本地/异地双备份/MYSQL增量备份

    构建高安全电子商务网站之(网站文件及数据库自动本地/异地双备份)架构图 继续介绍Linux服务器文件备份,数据库备份,数据安全存储相关的电子商务系统架构.针对安全性有多种多样的解决方案,其中数据备份是 ...

  9. oracle 11g中的自动维护任务管理

    因为人员紧缺,最近又忙着去搞性能优化的事情,有时候真的是不想再搞这个事情,只是没办法,我当前的绩效几乎取决于这个项目的最终成绩,所以不管是人的事还是事的事,都得去让他顺利推进. 前段时间发生还有几台服 ...

最新文章

  1. 03SpringMVC,Spring,Hibernate整合(Date时间转换)
  2. python打印日历代码_带tkinter的日历(打印所选日期)
  3. Flutter基础—绘画效果之不透明度
  4. 使用GDAL进行RPC坐标转换
  5. 【Spring笔记】使用javaconfig配置
  6. 软件工程---客观题
  7. softmax函数反向传播
  8. 帝国cms模板html文件夹,帝国cms的模板保存在哪里
  9. SCRUM浅谈,User Story,Sprint,Burn Down Chart
  10. 在Windows本地安装ElasticSearch和Kibana
  11. C/C++ 中 int 转 string,string 转 int 的几种方法
  12. Excel实现一个基础的蒙特卡洛模拟
  13. Minio(一) | 搭建Minio服务器(单节点)
  14. 挑战全网最全的idea快捷键与选项卡中文翻译
  15. 如何将png图片转为heif格式
  16. aws--s3存储类别--对s3进行存储分层优化
  17. 作业要求20190919-2 功能测试
  18. 用计算机器提高正确率,如何提高数学计算题的正确率
  19. 【编译原理】实验四:Yacc 分析程序生成器
  20. CodeForces1214C

热门文章

  1. 人人都看得懂的C语言进阶系列之数据存储
  2. 尚医通项目学习笔记Part1
  3. 全球wcdma运营频段
  4. linux中一些好玩的程序安装
  5. c语言实现矩阵行初等变换
  6. live555源代码概述
  7. WMS 系统和 ERP 系统的区别是什么?
  8. 解决 Idea 下 Tomcat 乱码(淇℃伅璀﹀憡)问题
  9. 三十二位计算机游戏推荐,这32种课间游戏不重样,总有一款适合您和学生!| 推荐收藏...
  10. 【gitHubDailyShare】通过真实录音,让动漫人物的嘴唇实现音画同步。开发者可将其应用于计算机游戏