oracle_job进程相关学习测试
Oracle cjq0进程测试
测试流程:
.CJQ进程不存在
.模拟问题处理
.问题总结 一、问题现象
CJQ0进程不存在
[root@adg1 ~]# ps -ef|grep cjq
root : pts/ :: grep cjq
[oracle@adg1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4. Production on Sun Jul ::
SQL> show parameter job_que
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
job_queue_processes integer 二、模拟问题处理
.JOB创建
)创建JOB测试
https://www.cnblogs.com/lijiasnong/p/3382578.html
--创建表
--truncate table TT;
SQL> GRANT EXECUTE ON DBMS_JOB TO yz;
create table TT(C_DATE DATE);
create or replace procedure PRO_TT is
begin
insert into TT values(sysdate);
commit;
end;
/
exec PRO_TT;
SQL> select * from tt; declare
job number;
begin
dbms_job.submit(job,'PRO_TT;',sysdate,'sysdate+1/1440');
end;
/ --
begin
dbms_job.remove();
commit;
end;
/ --
SQL> select JOB,WHAT,BROKEN from user_jobs;
JOB WHAT B
---------- ----------------------------------------------------------------- -
PRO_TT; N
--dbms_job.broken(,false,sysdate); 第一次执行job
begin
dbms_job.run();
end;
/ DB_Alert
Sun Jul ::
Starting background process CJQ0
Sun Jul ::
CJQ0 started with pid=, OS id= [root@adg1 ~]# ps -ef|grep cjq
oracle : ? :: ora_cjq0_tt
root : pts/ :: grep cjq SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
SQL> select * from tt ;
C_DATE
-------------------
-- ::
-- ::
--上述操作是,创建一个JOB,并测试手工调用执行存储过程及手工执行JOB均有效,会自动插入一条测试数据。 正常情况下,JOB是间隔1分钟,插入一条记录
select job,
log_user,
to_char(last_date,'yyyy-mm-dd hh24:mi:ss') last_date,
to_char(next_date,'yyyy-mm-dd hh24:mi:ss') next_date,
interval,
what,
FAILURES
from user_jobs where job=
/
JOB LOG_USER LAST_DATE NEXT_DATE INTERVAL WHAT FAILURES
---------- ---------- ------------------- ------------------- -------------------- -------------------- ----------
YZ -- :: -- :: sysdate+/ PRO_TT;
SQL> select * from tt ;
C_DATE
-------------------
-- ::
-- ::
SQL> select sysdate from dual;
SYSDATE
-------------------
-- ::
上述验证,发现JOB并未自动调用执行??? )JOB异常,问题排查
2.1 查询日志或者进程信息
db alert无异常,job无异常
SQL> select * from dba_jobs_running;
no rows selected SQL> SELECT USERNAME,PNAME,PROGRAM,TRACEFILE from v$process where PNAME like '%CJQ%';
USERNAME PNAME PROGRAM TRACEFILE
--------------- ----- -------------------------------------------------------------------------------------------------
oracle CJQ0 oracle@adg1 (CJQ0) /u01/app/oracle/diag/rdbms/tt/tt/trace/tt_cjq0_4851.trc
SQL> select * from v$bgprocess where name='CJQ0';
PADDR PSERIAL# NAME DESCRIPTION ERROR
---------------- ---------- ----- ---------------------------- ------
00000000F552A288 CJQ0 Job Queue Coordinator [oracle@adg1 ~]$ ps -ef|grep cjq
oracle : pts/ :: grep cjq
本次环境发现cjq进程不存在!!!
Jobs Not Executing Automatically (文档 ID 313102.1) 2.2 重置参数
SQL> alter system set job_queue_processes=;
SQL> alter system set job_queue_processes=;
DB_Alert
Sun Jul ::
ALTER SYSTEM SET job_queue_processes= SCOPE=BOTH;
Sun Jul ::
ALTER SYSTEM SET job_queue_processes= SCOPE=BOTH; [root@adg1 ~]# ps -ef|grep cjq
root : pts/ :: grep cjq
通过重置job_queue_process参数并未达到启动cjq进程的目的 2.3 查询sga 内存区域状态,是否为1
SQL> oradebug setmypid
Statement processed.
SQL> oradebug dumpvar sga kkjsre
sword kkjsre_ [, ) = 2.4 修改参数,event
IF -Jobs Do Not Run Automatically as CJQ is Not Getting Started when Jobs are to be Run (文档 ID 2081753.1)
Upgraded from 10.2.0.4 to 11.2.0.2
SQL> alter system set events '10195 trace name context off'; 2.5 手工调用执行Job无异常
begin
dbms_job.run();
end;
/
但是进程还是未启动 2.6 终于发现问题
测试环境JOB,无法自动调用,根据文档排查,测试环境处于受限模式
http://blog.itpub.net/29487349/viewspace-1663945/
受限模式,配置后,已连接session不影响,新的session无restricted session权限则无法登陆db SQL> select instance_name,logins from v$instance;
INSTANCE_NAME LOGINS
---------------- ----------
tt RESTRICTED
SQL> alter system disable restricted session;
System altered.
SQL> select instance_name,logins from v$instance;
INSTANCE_NAME LOGINS
---------------- ----------
tt ALLOWED
SQL> select * from tt ;
C_DATE
-------------------
-- ::
-- ::
-- ::
-- ::
-- ::
-- ::
rows selected. SQL> truncate table tt;
Table truncated. Alert 日志,恢复正常情况后,job自动调用执行,自动后台启动cjq进程服务。
Sun Jul ::
Restarting dead background process CJQ0
Sun Jul ::
CJQ0 started with pid=, OS id= SQL> alter system set job_queue_processes=;
Sun Jul ::
Stopping background process CJQ0
Sun Jul ::
ALTER SYSTEM SET job_queue_processes= SCOPE=BOTH;
SQL> alter system set job_queue_processes=;
[oracle@adg1 ~]$ ps -ef|grep cjq
oracle : pts/ :: grep cjq 总结:
.修改job_queue_processes,从>0修改为0,并且cjq0进程存在,则会kill cjq0进程,并且后续的job无法自动调用执行
.修改参数job_queue_processes >,无法立即启动cjq0进程,而需要配合Job定时调用一个工作,会先启动cjq0进程(如果参数为0,则无法启动)
.手工执行调用存储过程,job id 并非能够立即启动cjq0进程,修改events '10195 trace name context off'只是解决,
存在CJQ进程或者10g升级至11g job无法自动执行问题处理;
.如果数据库连接状态为RESTRICTED 受限模式,如果没有相应权限,则JOB无法自动执行;
.如果cjq进程存在,但是job并不能自动调用执行,并且sga内存区域不为1 ,则需要重启或者根据mos
Jobs do not execute automatically (Doc ID 309945.1)进行处理
SQL> exec dbms_ijob.set_enabled(true);
oracle_job进程相关学习测试的更多相关文章
- linux服务器开发二(系统编程)--进程相关
进程相关的概念 程序与进程 程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(CPU.内存.打开的文件.设备.锁等等). 进程,是一个抽象的概念,与操作系统原理联系紧密.进程是活跃的程序,占用系 ...
- Oracle Flushback 学习测试
Oracle Flushback 学习测试:三思笔记 Flashback恢复 从9i开始,利用oracle查询的多版本一致的特点,实现从回滚段中读取一定时间内在表中操作的数据,被称为 flashbac ...
- 个人 WPF+EF(DBFirst) 简单应用开发习惯及EF学习测试(备忘) -- 2
接上篇:个人 WPF+EF(DBFirst) 简单应用开发习惯及EF学习测试(备忘) -- 1 Step1 在主程序中设置连接数据库 从Model类库的 App.Config 把数据库字符串拷贝出来, ...
- 学习测试框架Mocha
学习测试框架Mocha 注意:是参考阮老师的文章来学的.虽然阮老师有讲解,但是觉得自己敲一遍,然后记录一遍效果会更好点.俗话说,好记性不如烂笔头. Mocha 是javascript测试框架之一,可以 ...
- linux内核数据结构--进程相关
linux里面,有一个结构体task_struct,也叫“进程描述符”的数据结构,它包含了与进程相关的所有信息,它非常复杂,每一个字段都可能与一个功能相关,所以大部分细节不在我的研究范围之内,在这篇文 ...
- Linux2.6内核--VFS层中和进程相关的数据结构
系统中的每一个进程都有自己的一组打开的文件,像根文件系统,当前工作目录,安装点等.有三个数据结构将 VFS 层和系统的进程紧密的联系在一起,它们分别是: file_struct,fs_st ...
- 使用 c# 调用进程相关开发
最近在维护公司的以前项目中发现,使用到了进程相关知识.现在将此总结,以备后面查看复习. 一.进程查看器 程序在运行的时候,操作系统就会为其分配一个进程.那么进程到底是什么东西呢? 实际上,进程 ...
- 数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Rabin+Pollard_Rho)
注:转载本文须标明出处. 原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html 数论算法 剩余系相关 学习笔记 (基础回顾,(ex ...
- Linux进程相关命令使用场景
Linux进程相关命令使用场景 在Linux系统上工作时,我们常常会碰到很多和进程相关的查询场景,今天在这里进行详细的讲解,进程相关的对象包括以下几个: 端口:Port 进程号:PId 执行文件所在路 ...
随机推荐
- 肿瘤免疫疗法 | 细胞治疗和PD1/PDL1 | Tumor immunotherapy | cell therapy
人类肿瘤治疗史上的里程碑无疑一定有一座是肿瘤免疫疗法的. 而肿瘤免疫疗法的主要两大领域,细胞治疗以及以PD1/PDL1为代表的免疫检查点抑制剂都在飞速发展. 目前,已经有5种抗PD1/PDL1抗体药物 ...
- EditText限制输入的几种方式及只显示中文汉字的做法
最近项目要求限制密码输入的字符类型, 例如不能输入中文. 现在总结一下EditText的各种实现方式, 以比较各种方法的优劣. 第一种方式: 设置EditText的inputType属性,可以 ...
- gpload导入常见问题汇总
gpload导入常见问题汇总 java写文件后使用gpload命令导入greenplum: 问题一: 报错信息:invalid byte sequence for encoding "UTF ...
- [原][bigemap][globalmapper]通过bigemap下载全球30米DEM高程数据(手动下载)(下载全球高精度dom卫片、影像、等高线、矢量路网、POI、行政边界)
本文研究了bigemap下载高程数据的方式,但是严重不推荐使用这总手动方式,bigemap这个软件一次只能下载100M以内的高程数据,即使花钱,也不给你提供批量下载dem的方式!也有些其他更好的软件, ...
- 【转载】 导入GoogleClusterData到MySQL
原文地址: https://www.cnblogs.com/instant7/p/4159022.html ---------------------------------------------- ...
- Python3基础 str ljust-rjust-center 左、右对齐 居中
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- 【Leetcode_easy】860. Lemonade Change
problem 860. Lemonade Change solution class Solution { public: bool lemonadeChange(vector<int> ...
- Java基础教程:内部类
Java基础教程:内部类 内部类 内部类,是指在一个类的内部定义的类.就像下面这样: public class EnclosingClass { . . . public class Nest ...
- 代码内存泄露检测(1) MLeaksFinder (Wechat开源) + FBRetainCycleDetector (FaceBook开源)
每次项目编译完成之后,都被内存搞得头昏脑胀,压力甚大. 利用两周时间,稍微研究了 微信开源的 MLeaksFinder 和 facebook 开源的 FBMemoryProfiler, 这两个开源三方 ...
- 【GStreamer开发】GStreamer基础教程12——流
目标 直接播放Internet上的文件而不在本地保存就被称为流播放.我们在前面教程里已经这样做过了,使用了http://的URL.本教程展示的是在播放流的时候需要记住的几个点,特别是: 如何设置缓冲 ...