Oracle 19C重启库后警告日志报错ORA-12012ORA-27476: SYS.MAX_JOB_SLAVE_PROCESSES does not exist

news/2024/9/20 16:44:54/文章来源:https://www.cnblogs.com/PiscesCanon/p/18422774

 

Oracle 19C重启库后警告日志报错ORA-12012&&ORA-27476: "SYS"."MAX_JOB_SLAVE_PROCESSES" does not exist

 

某次测试机器的19c重启后突然在警告日志定时冒出如下类似的报错:

2024-09-20T15:20:00.170202+08:00
TESTDB(7):Errors in file /u01/app/oracle/diag/rdbms/repomsdb/repomsdb/trace/repomsdb_j000_16307.trc:
ORA-12012: error on auto execute of job "APEX_180200"."ORACLE_APEX_WS_NOTIFICATIONS"
ORA-27476: "SYS"."MAX_JOB_SLAVE_PROCESSES" does not exist
2024-09-20T15:25:00.313832+08:00
TESTDB(7):Errors in file /u01/app/oracle/diag/rdbms/repomsdb/repomsdb/trace/repomsdb_j000_16307.trc:
ORA-12012: error on auto execute of job "APEX_180200"."ORACLE_APEX_MAIL_QUEUE"
ORA-27476: "SYS"."MAX_JOB_SLAVE_PROCESSES" does not exist

 

时隔20多天没头绪后终于发现引起报错的原因。

报错信息中可以看出,发生在con_id为7的testdb可拔插数据库上,trc文件内容没什么参考价值,拿最近一样报错的trc部分内容如下:

*** 2024-09-20T15:20:00.169859+08:00 (TESTDB(7))
*** SESSION ID:(770.49360) 2024-09-20T15:20:00.169928+08:00
*** CLIENT ID:() 2024-09-20T15:20:00.169940+08:00
*** SERVICE NAME:(testdb) 2024-09-20T15:20:00.169955+08:00
*** MODULE NAME:(DBMS_SCHEDULER) 2024-09-20T15:20:00.169964+08:00
*** ACTION NAME:(ORACLE_APEX_MAIL_QUEUE) 2024-09-20T15:20:00.169972+08:00
*** CLIENT DRIVER:(SERVER) 2024-09-20T15:20:00.169980+08:00
*** CONTAINER ID:(7) 2024-09-20T15:20:00.170010+08:00ORA-12012: error on auto execute of job "APEX_180200"."ORACLE_APEX_MAIL_QUEUE"
<error barrier> at 0x7fffffff9390 placed jslv.c@1951
ORA-27476: "SYS"."MAX_JOB_SLAVE_PROCESSES" does not exist

 

 

于是网上搜索,没发现半点一样的信息。

于是从mos上搜,一样没有类似案例。

 

粗略看了job涉及的对象内容,也没发现类似"SYS"."MAX_JOB_SLAVE_PROCESSES"的突破点,搞了好几天也没搞定。

于是,简单粗暴的确定了 APEX 功能没有被用过,那么直接禁用相关job后问题就能解决了,如下:

然后观察了一两天,还是刷刷的报错。。。

--此SQL确定 apex 功能是否使用,无任何输出表示没有使用过
select workspace, view_date, seconds_ago from apex_workspace_activity_log;--确定上边sql无输出后,禁用相关调度job
exec sys.dbms_scheduler.disable(name => 'APEX_180200.ORACLE_APEX_MAIL_QUEUE');
exec sys.dbms_scheduler.disable(name => 'APEX_180200.ORACLE_APEX_WS_NOTIFICATIONS');
exec sys.dbms_scheduler.disable(name => 'APEX_180200.ORACLE_APEX_DAILY_MAINTENANCE');
exec sys.dbms_scheduler.disable(name => 'APEX_180200.ORACLE_APEX_PURGE_SESSIONS');

 

 

到这里我就已经无能为力了,感觉有可能是触发了19c的bug了,只不过官方还没发现或者登记而已。

最后只能搞了个大招重新dbca个新库,然后不安装 apex 插件模块之后终于不再报错。

 

然而,前几天数据库正式完成数据转移后,将作为生产库上线之前,重启库打开归档后,发现又报错了。。

这次又是另外的调度job报错:

2024-09-17T01:01:01.070642+08:00
TESTDB(7):Errors in file /u01/app/oracle/diag/rdbms/reposmdb/reposmdb/trace/reposmdb_j000_3332.trc:
ORA-12012: error on auto execute of job "ORACLE_OCM"."MGMT_CONFIG_JOB"
ORA-27476: "SYS"."MAX_JOB_SLAVE_PROCESSES" does not exist

 

这个甚至发现,testdb容器库实际连job都不存在,简直匪夷所思。

16:09:25 SYS@repomsdb(1351)> show pdbsCON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------7 TESTDB                         READ WRITE NO
16:09:34 SYS@repomsdb(1351)> select * from dba_scheduler_jobs where owner='ORACLE_OCM';no rows selectedElapsed: 00:00:00.01

 

 

后续确定 oracle_ocm 没用后,根据How To Drop The ORACLE_OCM Schema From An 18c Or 19c Database (文档 ID 2585330.1)卸载删除该用户,然而还是有问题。。

--How To Drop The ORACLE_OCM Schema From An 18c Or 19c Database (文档 ID 2585330.1)
09:07:20 SYS@reposmdb(780)> drop user oracle_ocm cascade;
drop user oracle_ocm cascade
*
ERROR at line 1:
ORA-28014: cannot drop administrative user or roleElapsed: 00:00:00.17
--ORA-28014: Cannot Drop Administrative Users (文档 ID 1566042.1)
09:08:22 SYS@reposmdb(780)> alter session set "_oracle_script"=true;Session altered.Elapsed: 00:00:00.00
09:11:42 SYS@reposmdb(780)> drop user oracle_ocm cascade;User dropped.Elapsed: 00:00:03.34安装ORACLE_OCM
--https://docs.oracle.com/cd/E28601_01/doc.1037/e26167/install.htm#CBHFFGFJ
报错信息变为:
2024-09-19T01:01:01.437589+08:00
TESTDB(7):Errors in file /u01/app/oracle/diag/rdbms/reposmdb/reposmdb/trace/reposmdb_j000_6261.trc:
ORA-12012: error on auto execute of job "ORACLE_OCM"."MGMT_CONFIG_JOB"
ORA-01435: user does not exist
2024-09-19T01:01:01.437918+08:00
TESTDB(7):Pluggable Database #3 switch restore failed err=604.
Errors in file /u01/app/oracle/diag/rdbms/reposmdb/reposmdb/trace/reposmdb_j000_6261.trc  (incident=40281) (PDBNAME=TESTDB):
ORA-00603: ORACLE server session terminated by fatal error
ORA-00604: error occurred at recursive SQL level 2
ORA-01023: Cursor context not found (Invalid cursor number)
ORA-00604: error occurred at recursive SQL level 2
ORA-01023: Cursor context not found (Invalid cursor number)
ORA-12012: error on auto execute of job "ORACLE_OCM"."MGMT_CONFIG_JOB"
ORA-01435: user does not exist
TESTDB(7):Incident details in: /u01/app/oracle/diag/rdbms/reposmdb/reposmdb/incident/incdir_40281/reposmdb_j000_6261_i40281.trc
2024-09-19T01:01:02.666152+08:00
TESTDB(7):opidrv aborting process J000 ospid (6261) as a result of ORA-603

 

 

今天突然灵光一闪,看了下cdb实际是有这两个job的:

16:23:22 SYS@reposmdb(1351)> col job_name for a35
16:23:28 SYS@reposmdb(1351)> alter session set container=cdb$root;Session altered.Elapsed: 00:00:00.00
16:23:32 SYS@reposmdb(1351)> select owner,job_name from dba_scheduler_jobs where owner='ORACLE_OCM';OWNER                          JOB_NAME
------------------------------ -----------------------------------
ORACLE_OCM                     MGMT_CONFIG_JOB
ORACLE_OCM                     MGMT_STATS_CONFIG_JOBElapsed: 00:00:00.00

 

联想到昨天发现环境变量ORACLE_PDB_SID设置的情况下启动19c的库会导致通过cdb的service name连接后为pdb库,看我昨天写的:Oracle 19c通过cdb的service name连接后为pdb库

难道通篇下来的报错都是ORACLE_PDB_SID引起的??

立刻找了另外个从来没报错过的测试环境19c,设置ORACLE_PDB_SID后,重启数据库

15:09:03 SYS@reposmdb(12)> shutdown immediate;[oracle@reposmdb ~]$ export ORACLE_PDB_SID=testdb
[oracle@reposmdb ~]$ sqlplus / as sysdba
15:10:02 SYS@reposmdb(idle)> startup;
[oracle@reposmdb ~]$ sqlplus sys/password@reposmdb/reposmdb as sysdba
--这里cdb的service name连接后,实际连接到了pdb上
15:10:42 SYS@reposmdb/reposmdb(769)> show pdbsCON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------7 TESTDB                         READ WRITE NO

 

然后果然,警告日志没多久出现报错了。。

2024-09-20T16:30:00.598826+08:00
TESTDB(7):Errors in file /u01/app/oracle/diag/rdbms/reposmdb/reposmdb/trace/reposmdb_j000_31649.trc:
ORA-12012: error on auto execute of job "APEX_180200"."ORACLE_APEX_MAIL_QUEUE"
ORA-27476: "SYS"."MAX_JOB_SLAVE_PROCESSES" does not exist
2024-09-20T16:30:00.996481+08:00
TESTDB(7):Errors in file /u01/app/oracle/diag/rdbms/reposmdb/reposmdb/trace/reposmdb_j001_31651.trc:
ORA-12012: error on auto execute of job "APEX_180200"."ORACLE_APEX_WS_NOTIFICATIONS"
ORA-27476: "SYS"."MAX_JOB_SLAVE_PROCESSES" does not exist

 

看来,果然是因为环境变量ORACLE_PDB_SID设置的情况下启动库导致的。。。

好吧,看来发现了个mos上还没有的问题,总算是解决了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/800591.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Swagger】2.不在生产环境暴露,可以修改默认地址

不对外暴露接口 一般来说,接口给内部人员使用和测试的,不对生产环境暴露。此时应该如何设置呢?可以在Swagger配置文件中添加注解:@Profile({"环境名称1","环境名称2"} 或@Profile("环境名称") 这里,注解中不添加生产环境。 此时,开发环境和…

SMT丨工艺特点及详细生产工艺流程

SMT丨工艺特点及详细生产工艺流程 表面组装技术SMT现状 SMT是目前电子组装行业里最流行的一种技术和工艺。自70年代初推向市场以来,SMT已逐渐替代传统"人工插件"的波峰焊组装方式,已成为现代电子组装产业的主流,人们称为电子组装技术的第二次革命。在国际上,这种…

【Swagger】2.——不在生产环境暴露,可以修改默认地址

不对外暴露接口 一般来说,接口给内部人员使用和测试的,不对生产环境暴露。此时应该如何设置呢?可以在Swagger配置文件中添加注解:@Profile({"环境名称1","环境名称2"} 或@Profile("环境名称") 这里,注解中不添加生产环境。 此时,开发环境和…

文件上传漏洞思路详解

1. 文件上传漏洞简介 1.1 什么是文件上传漏洞 文件上传漏洞是一种常见的Web应用程序漏洞,攻击者可以通过向目标服务器上传恶意文件来实现攻击目的。这类漏洞的产生通常是因为服务器没有对用户上传的文件进行充分的安全检查和验证。 1.2 文件上传漏洞有哪些危害 1. 恶意代码执行…

信息学奥赛初赛天天练-93-CSP-S2023阅读程序3-sort排序、同底对数求和、二分查找、二分答案

2023 CSP-S 阅读程序2 判断题正确填 √,错误填 ⨉ ;除特殊说明外,判断题 1.5 分,选择题 3 分,共计 40 分) 01 #include <vector> 02 #include <algorithm> 03 #include <iostream> 04 05 using namespace std; 06 07 bool f0(vector<int> &a…

缓存

Django4中的缓存 详细文档参考:https://www.cnblogs.com/Neeo/articles/17589834.html Django支持的缓存有好几种:三方的Redis(推荐),Memcached(不推荐) 缓存到本地文件 缓存到本地数据库 缓存到内存里 虚拟缓存缓存的粒度 局部视图缓存 缓存指定的视图函数,有两种写法.在视…

VSCode 定义代码模板

在使用编写代码的过程中,经常会写一些固定代码段。 以 Java 为例,定义实体类时一般都会编写序列化版本号: @Serial private static final long serialVersionUID = 1L;这段代码是固定写法,基本不会变,如果每次都手写的话,就比较繁琐了。 VSCode 提供了生成代码段的功能,…

轻松部署!龙蜥操作系统安装Zabbix7.0详细教程

龙蜥操作系统(Anolis OS)作为龙蜥社区发行的开源Linux发行版,以其稳定、高性能、安全、可靠和100%兼容CentOS 8软件生态的特点,成为众多企业和开发者的首选操作系统。它不仅支持多计算架构,如X86、ARM、RISC-V等,还针对云端场景进行了优化,为云上典型场景带来显著的性能…

WPF 隐藏listview控件的滚动条

两种方式:需要自行验证,对控件,那个有效,那个没效对于不可控的事情,保持乐观; 对于可控的事情,保持谨慎

前端实现文件导出

在后台管理系统中,我们经常会遇到文件导出这个需求,下面,我将几种常见的导出方式做一个简单的介绍,让大家在以后遇到此类需求时,能够切合实际情况,采取相对合理的方式。 导出目标 文件地址已经存在服务器上的静态文件,比如用户上传的图片、材料等等。http://192.168.1.1…

JavaScript拆分字符串时产生空字符的原因

问题描述 使用JavaScript的split方法拆分字符串时出现一些空字符串"",尤其是当使用正则表达式作为分隔符的时候。 相关问题javascript正则表达式对字符串分组时产生空字符串组?在上面这个问题中,题主使用正则表达式对字符串进行分割时产生了多个空字符串"&qu…

ASR6601 是一款通用的 Sub-GHz 无线通讯 SoC 芯片

SoC 芯片ASR6601 是一款通用的 Sub-GHz 无线通讯 SoC 芯片 该芯片集成了 Sub-GHz 射频收发器和 32 位的 RISC MCU。Sub-GHz 射频收发器不仅支持 LoRa 调制,还支持 (G)FSK 和 G(MSK) 等调制方式。CPU 为 ARM STAR,工作频率最大支持 48 MHz。此外,该芯片支持 3 x I2C,1 x I2S…