数据库

 首页 > 数据库 > Oracle > ORACLE11G自动维护任务简析

ORACLE11G自动维护任务简析

分享到:
【字体:
导读:
         摘要:ORACLE11G自动维护任务:自动维护任务是一种按规则自动启动的数据库维护操作任务。比如自动收集为查询优化器使用的统计信息。自动维护任务按维护窗口自动运行。所谓自动维护窗口是按照预定义的间隔时间窗口。... SyntaxHighlighter.all(); ...

ORACLE11G自动维护任务简析

ORACLE 11G 自动维护任务:
 
自动维护任务是一种按规则自动启动的数据库维护操作任务。比如自动收集为查询优化器使用的统计信息。自动维护任务按维护窗口自动运行。所谓自动维护窗口是按照预定义的间隔时间窗口。
 
oracle11g数据库有三种预定义的自动维护任务:
■ Automatic Optimizer Statistics Collection:
■ Automatic Segment Advisor  www.2cto.com  
■ 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,  www.2cto.com  
    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'));
--启用维护窗口  www.2cto.com  
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;  www.2cto.com  
/
 
三:跟踪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
 
 
 
摘自 老冯的博客
ORACLE11G自动维护任务简析
分享到:
ORACLE11G自动内存管理简析
ORACLE11G自动内存管理简析 ORACLE 11g 自动内存管理: 在oracle 11g中,使用一个参数memory_target就能够实现SGA和PGA组件依据工作负荷进行自动内存分配。oracle推荐使用自动内存管理简化内存分配。   oracle 11g依然支持手工内存分配: 1:oracle 11g使用memory_target来支持内存自动分配。   2:使用sga_target和pga...
初始化参数REMOTE_OS_AUTHENT简析
初始化参数REMOTE_OS_AUTHENT简析 初始化参数REMOTE_OS_AUTHENT用来控制是否允许远端操作系统验证。   默认情况下,数据库只运行本地服务器上的操作系统验证: SQL> SELECT * FROM GLOBAL_NAME;  www.2cto.com     GLOBAL_NAME -----------------------------------------------------------------------------------...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……