Oracle

在策略管理的 RAC 中為 DBMS_Scheduler 作業指定伺服器

  • March 30, 2013

單元測試需要 dbms_scheduler 作業在執行單元測試的同一 RAC 節點上執行。我知道,對於管理員管理的數據庫,這可以通過創建一個限制可用實例的服務,然後在作業使用的作業類中使用該服務來完成。我的問題是,如何在 11.2 中通過策略管理來做到這一點?

可以創建只有一個伺服器的池,並且可以將數據庫分配給多個池,但據我了解,一台伺服器只能分配給一個池。因此,無法創建使用單個伺服器的服務,並且仍然有其他服務使用由多個伺服器(包括該伺服器)定義的池。

我也知道可以將服務創建為 SINGLETON 或 UNIFORM,但由於 SIGNLETON 不提供允許的伺服器,甚至不提供首選伺服器,我不確定這將有何幫助。

當然,我錯過了使這一切成為可能的東西。

dbms_scheduler.set_attribute是您正在尋找的 - 它強製作業在給定節點上執行(由 指定instance_id):

begin
dbms_scheduler.create_job (
job_name=>'PHIL',
job_type=>'plsql_block',
job_action=>'NULL;',
repeat_interval=>'freq=minutely;interval=2');

end;
/

begin
dbms_scheduler.set_attribute('PHIL','instance_id',1);
end;
/

dba_scheduler_jobs.instance_id``NULL除非你用set_attribute.

我意識到這不是你問的,但它比弄亂游泳池更容易!

引用自:https://dba.stackexchange.com/questions/36526