Oracle
在策略管理的 RAC 中為 DBMS_Scheduler 作業指定伺服器
單元測試需要 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
.我意識到這不是你問的,但它比弄亂游泳池更容易!