`
lcm1984
  • 浏览: 8304 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

oracle9i Job不能自动执行

 
阅读更多

近期公司对所有生产数据库开启日志审计,日志审计信息默认存在sys.aud$表中,为了防止sys.aud$表增长过快,写了一个自动清除脚本,该job每隔一个小时自动删除aud$表中的信息:

 

 

create or replace procedure clear_aud
as
begin
delete sys.aud$ where timestamp# <trunc(sysdate,'HH')- 1/24;
commit;
exception when others then 
rollback;
end;
/

Variable job number ;
begin
dbms_job.submit(:job, 'clear_aud;' ,trunc( sysdate + 1 / 24 , 'hh24' ), 'trunc(sysdate+1/24,''hh24'')' );
commit ;
end ;
/

 

 

 

在实施过程中,发现有个数据库的system表空间增长很快,查看aud$发现里面有几十万条记录,但是上面的自动清理脚本已经在该数据库上执行过了,故引起该问题的原因应该是该job没有自动执行,查看dba_jobs表,发现该job存在,但是不能自动执行:

 

 

SQL> select JOB,THIS_DATE,NEXT_DATE, TOTAL_TIME,WHAT, INSTANCE from dba_jobs;

       JOB THIS_DATE  NEXT_DATE  TOTAL_TIME WHAT                   INSTANCE
---------- ---------- ---------- ---------- -------------------- ----------
         1 2011-07-11                     0 clear_aud;                    0

 

 

表dba_jobs中的next_date字段表示job下次执行的时间, 该数据库中的next_date字段为空,说明该job不会自动执行,引用该问题的原因应该是spfile中的JOB_QUEUE_PROCESSES参数被设置为0了,官方文档对该参数的解释为:

 

You can schedule routines (jobs) to be run periodically using the job queue. To schedule a job you submit it to the job queue, using the Oracle suppliedDBMS_JOBpackage, and specify the frequency at which the job is to be run. Additional functionality enables you to alter, disable, or delete a job that you previously submitted.

Job queue (Jnnn)processes execute jobs in the job queue.For each instance, these job queue processes are dynamically spawned by a coordinator job queue (CJQ0) background process. The coordinator periodically selects jobs that are ready to run from the jobs shown in theDBA_JOBSview. It orders them by time, and then spawns Jnnnprocesses to run the selected jobs. Each Jnnnprocess executes one of the selected jobs.

TheJOB_QUEUE_PROCESSESinitialization parameter controls whether a coordinator job queue process is started by an instance. If this parameter is set to 0, no coordinator job queue process is started at database startup, and consequently no job queue jobs are executed. TheJOB_QUEUE_PROCESSESinitialization parameter also specifies the maximum number of Jnnnprocesses that can concurrently run on an instance. The maximum number of processes that can be specified is 1000.
 

该参数可以动态改变,故可执行更改命令,使该参数生效:

 

ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 20;
 
分享到:
评论
1 楼 xiangkun 2012-09-05  
[b][/b][i][/i][u][/u]
引用
[img][/img][url][/url][flash=200,200][/flash]

相关推荐

    详解oracle9i Statspack安装&使用

    Oracle 9i Statspack 是一个强大的性能分析工具,它提供了对数据库性能的深入洞察,帮助DBA们诊断和优化数据库的运行效率。Statspack 的安装和使用是数据库管理中的重要环节,尤其对于监控和问题排查至关重要。以下...

    oracle 9i笔试题d

    Oracle 9i 将自动创建一个索引在创建一个 PRIMARY KEY 约束和成功执行 CREATE INDEX 命令时。 权限管理 问题 5 中,需要确定哪些 SQL 命令向名为 ACCTSUPER 的用户授予系统权限。正确的答案是 acef。GRANT 语句...

    Oracle 9i数据库中动态重配置深入分析

    Oracle 9i数据库引入了一项重大特性,即动态重配置,允许DBA在不中断服务的情况下调整几乎所有的性能参数。这一特性使得专家能够实时优化数据库性能,无论是应对当前的性能问题,还是预见并适应未来的资源需求。动态...

    Oracle 9i Streams

    为了使 Oracle 9i Streams 正常运行,需要在源数据库与目标数据库上设置一系列初始化参数。这些参数包括但不限于: 1. **`AQ_TM_PROCESSES`**:设置用于处理消息队列的进程数。建议范围为 1 至 10。 2. **`GLOBAL_...

    Oracle9i rac手工建库步骤

    ### Oracle9i RAC 手工建库步骤详解 #### 一、背景介绍 Oracle Real Application Clusters (RAC) 是一种多实例集群数据库技术,它允许多个数据库实例同时访问一个共享数据库。这种架构提高了数据库系统的可用性、可...

    oracle9iplsql设计

    8. **动态SQL**:允许在运行时构建和执行SQL语句,增强了灵活性,特别是在处理不确定或变化的SQL结构时。 9. **事务管理**:PL/SQL支持BEGIN、COMMIT、ROLLBACK等语句,用于管理数据库事务,确保数据的一致性和完整...

    oracle9i高级复制实施手记

    Oracle 9i 高级复制是一种复杂的数据同步技术,它允许在一个或多个数据库之间实时或近实时地复制数据。这种复制机制主要用于分布式系统、灾难恢复、负载均衡和数据分区等多种场景。以下是对高级复制实施过程中涉及的...

    Oracle9i 数据库设计指引全集

    - 数据库SID是唯一标识数据库的符号,长度不能超过5个字符。对于单节点数据库,以字符开头的5个长度以内的字符串作为SID的命名。对于集群数据库,各节点SID会自动命名为SIDnn,其中nn为节点号(1,2,…,64)。 **...

    oracle-Job-管理.docx

    Oracle Job管理是数据库中用于定时执行任务的一种机制,它允许用户安排存储过程、PL/SQL块或其他数据库操作在预设的时间点自动运行。在Oracle 9i版本中,我们可以使用SQL命令或者DBMS_SCHEDULER包来创建、修改和管理...

    Oracle9i数据库如何支持动态重配置

    Oracle9i数据库动态重配置是一项关键特性,它允许管理员在数据库实例运行时调整性能参数,以适应不断变化的系统需求。这一功能对于处理不同工作负载的数据库尤其有用,例如那些在白天进行在线事务处理(OLTP)而在夜间...

    Oracle9i ocp 学习笔记

    ### Oracle9i OCP 学习笔记:备份与恢复 #### 数据库预定义账号 在Oracle9i中,系统预定义了几种类型的账号,每种账号都有其特定的功能和权限。 - **SYS** - **功能**: 数据字典的所有者。 - **默认口令**: `...

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    Oracle9i培训胶片中文版1_2基本的DDL和DML介绍caith.pptx

    Oracle 9i 是一款历史悠久的关系型数据库管理系统,其在数据管理方面提供了强大的功能。本教程主要介绍了数据库操作语言(DDL)和数据操纵语言(DML)的基础知识,这对于理解和使用Oracle数据库至关重要。 首先,让...

    韩顺平oracle教程

    - **自动创建用户**: 在安装过程中,Oracle会自动生成两个重要的内置用户——`sys`和`system`。 - **sys 用户**: 超级用户,拥有最高权限,包括创建数据库的权限。默认密码为`change_on_install`。 - **system ...

    用Oracle的DBMS_JOB来实现任务计划管理.pdf

    如果 Oracle9i 系统中,只需以 DBA 的身份进入 sqlplus3,就可以进行命令行的操作。 3. 创建存储过程 使用 DBMS_JOB,可以将创建的存储过程放入 Oracle 的作业队列中去,由系统按时调度运行。 4. 启动任务队列...

    Oracle安装与使用

    选择“使用缺省实例”,然后继续安装过程,输入安装文件的目录(如`Oracle9i.rar`所在目录下的`s`文件夹)。 - **确认安装路径:** 再次确认安装文件输入目录(如`s`文件夹),然后完成Oracle 9i的安装。 - **...

    schedules和job使用大全

    本资源是描述oracle的定时任务执行的使用方法。 分别从9i的job和10g、11g的schedules两个不同的层次讲解。 讲解中有实例,欢迎下载使用。

    oracle定时删除表空间的数据并释放表空间

    2. **自动段空间管理(Automatic Segment Space Management, ASSM)**:Oracle从9i版本开始引入ASSM,它简化了表空间的空间管理,通过位图块来跟踪空闲空间,提高了空间利用率和删除效率。 3. **purge操作**:Purge...

Global site tag (gtag.js) - Google Analytics