Есть ли способ заставить экземпляр на работу цепочки планировщика оракула в RAC - PullRequest
0 голосов
/ 22 декабря 2018

У нас есть требование для создания задания цепочки планировщика Oracle в среде RAC.Есть ли способ заставить все шаги в цепочке выполняться в одном экземпляре?

Мы попытались установить атрибуты, такие как идентификатор экземпляра, равными 1, но это не помогло, поскольку шаг 1 в цепочке выполнялся на экземпляре 1, а остальные шаги выполнялись на 2.

Заранее спасибо.

1 Ответ

0 голосов
/ 23 декабря 2018

вы можете использовать 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')
...