我们需要在RAC环境中创建Oracle Scheduler-chain作业。有没有一种方法可以强制链中的所有步骤在一个实例上运行?
我们尝试将实例ID之类的属性设置为1,但这无济于事,因为链中的步骤1在实例1上运行,其余步骤在2上运行。
谢谢。
答案 0 :(得分:0)
您可以使用v $ Instance标识您的当前实例
DECLARE
pCurInstance varchar2(20);
BEGIN
SELECT INSTANCE_NAME into pCurInstance FROM V$INSTANCE;
IF (pCurInstance != "myInstance") THEN
RETURN;
END;
--EXECUTE YOUR SCRIPT / FUNCTION / PROCEDURE HERE
END;
或者,更优雅的方式
svrctl add service -d <db_unique_name> -s AQ_01 -r <preferredinstance> -a <availableinstances>
dbms_scheduler.create_job_class(job_class_name=> 'AQ01', service=> 'AQ_01');
dbms_scheduler_create_job (job_name => v_jobname. . .
job_class => 'AQ_01')