问题描述
嗨,克里斯/康纳,
我们对一个新克隆的数据库产生了奇怪的影响,我的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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




