oracle queue安装时 --严重: 'job_queue_processes' 必须大于等于 1

oracle job的创建和删除 - liaomin的专栏
- 博客频道 - CSDN.NET
6582人阅读
oracle job的创建
&&v_jobnum&&
&&dbms_job.submit(v_jobnum,'',sysdate,'last_day(sysdate)+1');
& dbms_job.submit(jobno,
&&&&&&&&&&&&&&&&& 'getAndSyncK',
&&&&&&&&&&&&&&&&& sysdate,
&&&&&&&&&&&&&&&&& 'trunc(sysdate,''mi'')+1');
其中第二个参数;号必须带上
字符串里有字符串的多加一个双引号 比如第四个参数
其中lastjob 是存储过程或者function
sysdate表示执行开始时间
&最后一个参数表示下一次执行的时间的脚本 +1一般表示加1天
oracle job删除 可以使用
col job format 99999;
col log_user format a20;
select job,log_user from dba_jobs where log_user='abc'--查询abc用户下的所有job
查询的job列就是对应的job number& 停止和删除都要使用job number
使用 下面两个命令 必须是创建job的用户使用dba权限进去 不然会出现下面找不到job number的情况
ERROR&at&line&1:
ORA-23421:&job&number&81&is&not&a&job&in&the&job&queue
ORA-06512:&at&&SYS.DBMS_SYS_ERROR&,&line&86
ORA-06512:&at&&SYS.DBMS_IJOB&,&line&592
ORA-06512:&at&&SYS.DBMS_JOB&,&line&252
ORA-06512:&at&line&1
exec dbms_job.broken(1233,true) --true表示停止 false表示暂停
exec dbms_job.remove(1233)
如果使用dba 去删除另外用户的job 可以使用ijob
exec dbms_ijob.broken(1233,true) --true表示停止 false表示暂停
exec dbms_ijob.remove(1233)
&执行删除操作后 查询 select sid,job from dba_jobs_running
如果发现 job虽然被删除了但是任然在运行 只能去干掉session
比如 sid=183 job=81 的结果
查询 select&&sid,serial#&from v$session where sid=183
查询到结果通过 alter system kill session &183,3643&
执行完后查询select&&sid,serial#&from v$session where sid=183& 没有了183
查询job select sid,job from dba_jobs_running where sid=183 也没有了 ok 解决
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:354978次
积分:7784
积分:7784
排名:第1054名
原创:421篇
转载:126篇
评论:60条
(3)(8)(11)(2)(2)(3)(1)(4)(4)(5)(3)(4)(2)(3)(2)(2)(1)(3)(1)(8)(4)(1)(2)(2)(5)(3)(2)(4)(3)(4)(18)(23)(4)(21)(13)(3)(23)(4)(5)(1)(5)(1)(4)(6)(13)(12)(12)(3)(4)(13)(23)(96)(34)(6)(42)(56)(3)在Oracle中使用job的范例 - 程序员的天堂 - ITeye技术网站
博客分类:
范例源码:
-- 创建新表
create table T_TEST_JOB
TEST_DATE TIMESTAMP(6)
tablespace GBIAPS
pctfree 10
initrans 1
maxtrans 255
initial 64
minextents 1
maxextents unlimited
-- 创建序列
create sequence SEQ_TEST_JOB
minvalue 1
maxvalue 9999
start with 1
increment by 1
-- 创建存储过程
create or replace procedure P_TEST_JOB as
insert into t_test_job(id,test_date) values (SEQ_TEST_JOB.NEXTVAL,sysdate);
-- 以下脚本在SQL Plus中执行
-- 创建job
variable JOB_TESTJOB
dbms_job.submit(:JOB_TESTJOB,'P_TEST_JOB;',sysdate,'sysdate + 1 / (24*60)'); -- 每个一分钟执行一次
-- 运行job
dbms_job.run(:JOB_TESTJOB);
-- 停止job
dbms_job.remove(:JOB_TESTJOB);
-- 删除JOB
dbms_job.remove(:JOB_TESTJOB);
-- 查看jobs
select * from DBA_JOBS_RUNNING;
select * from DBA_JOBS;
-- 查看数据
select * from t_test_
-- 删除数据
delete from t_test_
job_queue_processes参数说明:
在sqlplus中执行 查看参数值
修改参数值:
alter system set job_queue_processes=10;
a、对于Oracle job进程,包含协调进程(主进程)以及奴隶进程(子进程)。b、job_queue_processes取值范围为0到1000,总共可创建多少个job进程由job_queue_processes参数来决定。c、当job_queue_processes大于1时,且并行执行job时,至少一个为协调进程。其总数不会超出job_queue_processes的值。d、job_queue_processes参数的值为且DBMS_JOB与DBMS_SCHEDULER共享。e、job_queue_processes参数,当设定该值为0的时候则任意方式创建的job都不会运行。f、非零值的job_queue_processes,其job子进程数依赖于可用资源,资源配置方式以及当前运行的job数来自行调整。g、此外对于Scheduler jobs方式还受限制于scheduler属性MAX_JOB_SLAVE_PROCESSES的设置。h、可以通过DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE来设置max_job_slave_processes
raymond.chen
浏览: 527401 次
来自: 广州
var emptyData = {
我配置了,还是Expression JspTaglibs is ...
Around advice 需要实现 MethodINterc ...
修改配置成功,谢谢分享oracle在修改初始化参数文件中的job_queue_processes参数时,为何要采用scope=both,它代表什么意思?_百度知道
oracle在修改初始化参数文件中的job_queue_processes参数时,为何要采用scope=both,它代表什么意思?
在修改初始化参数文件中的job_queue_processe珐定粹剐诔溉达税惮粳s参数时,为何要采用scope=both,它代表什么意思?
一:scope=both,既改变实例也改变SPFILE。指定这个选项相当于不带参数的alter system语句。需要注意的是,scope=both只适用于动态参数,如果修改静态参数,必须指定SPFILE参数(SCOPE=MEMOEY或SCOPE=SPFILE),珐定粹剐诔溉达税惮粳否则会报错。二:SCOPE=MEMORY:只改变当前实例运行,亦即初始化参数改变了只对当前实例有效,当实例重启之后,初始化参数值还原。三:SCOPE=SPFILE:只改变SPFILE的设置。亦即改变初始化参数文件内容。实例重启后参数生效。
其他类似问题
queue的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 oracle queue 的文章

 

随机推荐