【数据库管理】数据库自动维护任务介绍

article/2025/3/20 14:39:23

    • 概述
    • 自动维护任务的演变
      • 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

各版本的主要变化

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

TeacherWhat

版权声明:本文为博主原创文章,转载必须注明出处,本人保留一切相关权力!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
这里写图片描述


http://chatgpt.dhexx.cn/article/VXIPp9hT.shtml

相关文章

服务器数据库维护需要做哪些,数据库运维究竟需要做什么?

数据库是存放数据、经常是那些高敏感度数据的宝库,因此它也毫无疑问的是合规检查程序的重点区域。几乎所有的企业合规都会对哪些人、能在什么时间、访问什么数据库作出规定,并且需要一个专职人员来管理这些权限。那么,作为管理数据库的专职人员,需要做些什么呢?下面来了解…

创建与维护MySQL数据库

目录 一、创建MySQL数据库 1.链接MySQL 2.查看当前的数据库 3.创建数据库 4.创建数据库时设置字符编码 5.查看和显示数据库的编码方式 6.使用alteer database 数据库名character set utf8; 修改数据库编码 7.进入或切换数据库 8.显示当前数据库 select database(); 二…

第10章 数据库运行维护与优化

10.1数据库运行维护基本工作 一般来说,维护工作主要包括:数据库的转储和恢复;数据库的安全性和完整性控制;数据库性能的监控分析和改进;数据库的重组和重构。 ①数据库的转储与恢复 作为数据库管理员,应该针对各种数…

SQL Server维护计划自动备份数据库

GPS平台、网站建设、软件开发、系统运维,找森大网络科技! https://cnsendnet.taobao.com 来自森大科技官方博客 http://www.cnsendblog.com/index.php/?p1841 使用SQL Server 2008的维护计划可以实现自动备份数据库,并自动删除过期备份的功…

mysql数据库维护(mysql学习笔记)

数据库备份: 2.数据库维护: analyze table用来检查表键是否正确,如下: check table 用来针对许多问题对表进行检查。在myisam表上海对索引进行检查。check table支持一系列的用于myisam表的方式,changed检查自最后一次…

Oracle DB 数据库维护

• 管理优化程序统计信息 • 管理自动工作量资料档案库(AWR) • 使用自动数据库诊断监视器(ADDM) • 说明和使用指导框架 • 设置预警阈值 • 使用服务器生成的预警 • 使用自动任务 数据库维护 通过复杂的Oracle DB 基础结构,可以方便地执行预先数据库维护&#xf…

使用SQL命令创建与维护数据库

创建数据库 create database DB_Book -- 数据库名,在现有连接中不可重复 on primary -- 主文件 (name DB_Book, -- 数据文件逻辑名filename D:\A_file\数据库\图书管理\DB_Book.mdf, -- 文件名及位置size 1mb, -- 初始大小maxSize 1…

sqlserver数据库得管理及维护

sqlserver数据库得管理及维护 sqlserver数据库得管理及维护 sqlserver数据库得管理及维护前言一、手动备份及恢复二、自动备份及定期清除备份集计划三、数据库日志收缩方法一:直接通过企业管理器收缩日志方法二:分离数据库及日志文件 四、数据库索引碎片…

《数据库系统实训》实验报告——数据库维护

数据库维护 第一部分:样例库的应用 1)备份数据库命令: mysqldump -u root -p --databases test1 > /usr/local/mysql/test1.bak.sqltest1是数据库的备份文件 2)恢复备份数据: 首先删除原有的数据库test1&#xf…

SQL Server 数据库维护计划

SQL Server 数据库维护计划 开始 SQL Server 维护计划向导选择计划属性新建作业计划选择维护任务选择维护任务顺序维护任务配置1. 数据库检查完整性2. 数据库完整性备份3. 数据库差异性备份4. 数据库事务日志备份5. 清除维护 选择报告选项启用邮件配置文件重启代理服务执行维护…

MySQL之数据库维护

文章目录 1 数据库维护1.1 数据库文件1.1.1 MySQL创建并管理的数据库文件1.1.2 MySQL数据库存放位置 1.2 性能状态关键指标QPS和TPS1.3 开启慢查询日志1.4 数据库备份1.4.1 myqldump示例 1.5 数据库修复1.5.1 myisamchk修复1.5.2 mysqlcheck修复1.5.3 .frm文件修复1.5.3.1 Inno…

数字电路实验怎么接线视频讲解_电工知识:三相电表怎么接线?2种接线方法一一讲解,实物对照...

之前我们介绍单项电表接线方法,本期我们介绍三相电表接线方法,主要说两种,一种是直接式一种是带电流互感器的。这2种接线从测量原理和构成角度来说,没什么差别。只不过直接式的三相电表额定电流是根据负载的电流来选的&#xff0c…

数电实验七:译码显示电路

转载自https://wu-kan.cn/_posts/2018-07-03-译码显示电路/ 数字电子技术实验报告 实验题目:译码显示电路 预习报告 内容一 74LS194芯片相关。 功能与真值表 CP时钟 C r ‾ \overline{Cr} Cr清零 S 1 {S_1} S1​ S 0 {S_0} S0​工作状态 Q A Q_A^ QA​ Q B …

【数电实验3】Verilog—1位十进制可逆计数器

【2022.04西南交大数电实验】 【2022.04.17 更新修改了一个错误: assign CO (upd & (Q 4d9)) | (~upd & (Q 4d0) & ~clr); ~clr改为了clr: assign CO (upd & (Q 4d9)) | (~upd & (Q 4d0) & clr); 另外 ,把…

数电实验三-点亮四个数码管(Multisim和Basys3)

【ChatGPT】前些天发现了一个巨牛的人工智能学习电子书,通俗易懂,风趣幽默,无广告,忍不住分享一下给大家。(点击查看学习资料) 特别说明:该系列内容均是本人实验记录,无盗取侵权之嫌…

数电实验八 译码显示电路(2)点阵的原理和应用

仅作笔记用途。 器件:16*16 点阵、74LS138 、74LS00 等。 注:proteus上用4个8*8点阵组合为16*16点阵时,要先旋转8*8点阵直到其行有效电平为高,列有效电平为低才和实验箱上的一致,并且针脚分别控制哪几行哪几列也需要…

数电实验--Verilog第一次实验验收题目汇总

【本人只是想自己总结一下,大部分代码和原理图来源于教程https://www.stepfpga.com/doc】 1、点亮LED 目的:利用开发板上的四个拨码开关和四个按键分别控制8个LED灯的亮灭(按键按下时输出高电平,LED亮)。 module LE…

桂电 数电实验 期末考试 试卷+解析(74LS192 + 74LS153 + 74LS139 + 74LS00 / 74LS20)

目录 考试注意事项 A卷 74LS192 74LS00 B卷 74LS153 74LS00 / 74LS20 74LS139 C卷 74LS153 74LS00 / 74LS20 74LS139 课程感悟 考试注意事项 1.考试前请检查实验箱号和仪器号与座位号是否一样,不一样请请示老师更换; 2.请自行检查导线、芯片、仪器的…

数电实验大作业2-实验十一 电子密码锁

实验要求..在下面这个链接里: http://docs.google.com/fileview?id=0B_IAvxLi-MonMjhmMDM5OTgtNzgyMC00MTMwLWJiNGItMmUxODQ4MGY2ZmUz&hl=zh_CN 完整的实验报告: 1. 电子锁功能要求 l 2种工作模式,可以设置和校验密码 l 密码长度为8位,内容为数字1-9,分别对应9个微动开…

数电出题??自启动问题

题目 用一片74LS195寄存器和一片八选一数据选择器,设计一个移存型计数器,要求状态转移规律为:1→2→4→9→3→6→12→8→1→2……设计要求自启动,画出逻辑图。 知识点 中规模移位寄存器实现序列信号发生器的设计,数…