问题描述
嗨,克里斯/康纳,
我们对一个新克隆的数据库产生了奇怪的影响,我的dba自三天以来一直在努力解决这个问题-所以我想也许我问你;-)
这是我们的设置:
升级 (我们的生产数据库) 到Oracle 19.11后。我们想获得一个新的测试-DB-所以我们通过数据库链接到我们的测试机克隆了我们的生产数据库 (集群的备用部分)。遇到一些问题后 (我们不得不将标准数据库切换到 “应用关闭”),效果很好,我有一份完整的产品副本,可以用于测试。
但是: 调度程序有问题。所有工作都没有进行。当我查询sys.user_scheduler_jobs和sys.user_scheduler_job_run_details时,我看到所有已定义的作业,但是所有条目都有克隆之前的时间戳。
即使我创建了一个新作业,它也不会在计划的时间执行。我尝试了一个非常简单的PLSQL_BLOCK作业,该作业仅在表中执行一个条目-但它不执行。如果我发出DBMS_SCHEDULER.RUN_JOB,则该方法有效-但前提是我将use_current_session选项设置为TRUE... :-(
我的印象是,这一切有一个真正简单、显而易见的原因...但是我们似乎都是盲目的;-)
您是否知道我们缺少什么或可以检查的提示?
我们还检查了DB参数 “job_queue_processes”,它被设置为160-并且所有作业都属于DEFAULT_JOB_CLASS。
还有一个提示: 如果我从SQLDeveloper开始其中一项工作,我会立即得到 “成功” 的响应-但没有执行任何操作。
非常感谢您的支持
拉尔夫
PS:
这是我创建的作业 (PA_TRACE是一个将日志消息写入表的包)
我们对一个新克隆的数据库产生了奇怪的影响,我的dba自三天以来一直在努力解决这个问题-所以我想也许我问你;-)
这是我们的设置:
升级 (我们的生产数据库) 到Oracle 19.11后。我们想获得一个新的测试-DB-所以我们通过数据库链接到我们的测试机克隆了我们的生产数据库 (集群的备用部分)。遇到一些问题后 (我们不得不将标准数据库切换到 “应用关闭”),效果很好,我有一份完整的产品副本,可以用于测试。
但是: 调度程序有问题。所有工作都没有进行。当我查询sys.user_scheduler_jobs和sys.user_scheduler_job_run_details时,我看到所有已定义的作业,但是所有条目都有克隆之前的时间戳。
即使我创建了一个新作业,它也不会在计划的时间执行。我尝试了一个非常简单的PLSQL_BLOCK作业,该作业仅在表中执行一个条目-但它不执行。如果我发出DBMS_SCHEDULER.RUN_JOB,则该方法有效-但前提是我将use_current_session选项设置为TRUE... :-(
我的印象是,这一切有一个真正简单、显而易见的原因...但是我们似乎都是盲目的;-)
您是否知道我们缺少什么或可以检查的提示?
我们还检查了DB参数 “job_queue_processes”,它被设置为160-并且所有作业都属于DEFAULT_JOB_CLASS。
还有一个提示: 如果我从SQLDeveloper开始其中一项工作,我会立即得到 “成功” 的响应-但没有执行任何操作。
非常感谢您的支持
拉尔夫
PS:
这是我创建的作业 (PA_TRACE是一个将日志消息写入表的包)
begin DBMS_SCHEDULER.CREATE_JOB( job_name => 'TESTRK' ,job_type => 'PLSQL_BLOCK' ,job_action => 'begin schedule.pa_trace.trace(''Test by rkoellin'');end;' ,start_date => sysdate ,repeat_interval => 'FREQ = MINUTELY; INTERVAL = 5' -- run every 5 Minutes ,enabled => TRUE ,auto_drop => FALSE ,comments => 'Test created by RKOELLIN' ); end; /复制
专家解答
MOS note 2631878.1运行了一大堆东西来检查调度程序作业是否没有运行。
您可能已经检查过许多这些事情 (job_queue_processes,整体数据库会话等)。
有一个未记录的调度程序属性,尽管您可能不知道-SCHEDULER_DISABLED
如果这是真的,它将禁用调度程序。将其设置为false以重新启用它们:
如果仍然不是问题,请查看MOS注释,如果仍然遇到问题,请与支持人员联系。
您可能已经检查过许多这些事情 (job_queue_processes,整体数据库会话等)。
有一个未记录的调度程序属性,尽管您可能不知道-SCHEDULER_DISABLED
select value from dba_scheduler_global_attribute where attribute_name='SCHEDULER_DISABLED'; VALUE true复制
如果这是真的,它将禁用调度程序。将其设置为false以重新启用它们:
exec dbms_scheduler.set_scheduler_attribute('scheduler_disabled','false');复制
如果仍然不是问题,请查看MOS注释,如果仍然遇到问题,请与支持人员联系。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1322次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
792次阅读
2025-03-17 11:33:53
Oracle+Deepseek+Dify 实现数据库数据实时分析
bicewow
724次阅读
2025-03-06 09:41:49
Oracle避坑指南|同名表导出难题:如何精准排除指定用户下的表?
szrsu
558次阅读
2025-03-05 00:42:34
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
465次阅读
2025-03-13 14:38:19
Oracle 如何修改 db_unique_name?强迫症福音!
Lucifer三思而后行
356次阅读
2025-03-12 21:27:56
Oracle DataGuard高可用性解决方案详解
孙莹
314次阅读
2025-03-26 23:27:33
Oracle分区和执行计划相关的几个问题
听见风的声音
308次阅读
2025-03-07 08:51:42
数据库管理-第299期 数据库是否需要定期重启(20250306)
胖头鱼的鱼缸
250次阅读
2025-03-06 09:09:35
切换Oracle归档路径后,不能正常删除原归档路径上的归档文件
dbaking
247次阅读
2025-03-19 14:41:51