11g 自动维护任务的添加和删除_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1624 | 回复: 0   主题: 11g 自动维护任务的添加和删除        下一篇 
Gavin
注册用户
等级:少校
经验:878
发帖:130
精华:1
注册:2011-7-21
状态:离线
发送短消息息给Gavin 加好友    发送短消息息给Gavin 发消息
发表于: IP:您无权察看 2015-4-29 9:36:13 | [全部帖] [楼主帖] 楼主

自动维护任务是一种按规则自动启动的数据库维护操作任务。比如自动收集为查询优化器

使用

的统计信息,特别是

使用

基于成本的优化器需要

使用

准确的统计信息方能恰当的给出执行计划,如果统计信息有误,则对优化器的解析计划的产生将产生致命的影响,比如将导致查询操作因走全表扫描而异常缓慢等,因此有必要适当地

使用

自动维护任务来收集统计信息。自动维护任务按维护窗口自动运行。所谓自动维护窗口是按照预定义的间隔时间窗口。

oracle11g数据库有三种预定义的自动维护任务:

■ Automatic Optimizer Statistics Collection:
■ Automatic Segment Advisor
■ Automatic SQL Tuning Advisor(这个是oracle 11g

新添加的自动维护任务)


缺省情况下,这三个任务配置为在所有维护窗口运行。

维护窗口:维护窗口是一个连续的时间间隔,用于管理自动维护任务所用。维护窗口是oracle 

调度窗口,属于窗口组

MAINTENANCE_WINDOW_GROUP

一:配置自动维护任务:

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@ORCL11> 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   09-APR-12 10.00.02.039000 PM +08:00
auto space advisor   ORA$AT_SA_SPC_SY_2   09-APR-12 10.00.02.050000 PM +08:00
sql tuning advisor   ORA$AT_SQ_SQL_SW_3   09-APR-12 10.00.02.015000 PM +08:00


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论