单元测试需要 dbms_scheduler 作业在运行单元测试的同一 RAC 节点上运行。我知道,对于管理员管理的数据库,这可以通过创建一个限制可用实例的服务,然后在作业使用的作业类中使用该服务来完成。我的问题是,如何在 11.2 中通过策略管理来做到这一点?
可以创建只有一个服务器的池,并且可以将数据库分配给多个池,但据我了解,一台服务器只能分配给一个池。因此,无法创建使用单个服务器的服务,并且仍然有其他服务使用由多个服务器(包括该服务器)定义的池。
我也知道可以将服务创建为 SINGLETON 或 UNIFORM,但由于 SIGNLETON 不提供允许的服务器,甚至不提供首选服务器,我不确定这将有何帮助。
当然,我错过了使这一切成为可能的东西。
dbms_scheduler.set_attribute
是您正在寻找的 - 它强制作业在给定节点上运行(由 指定instance_id
):dba_scheduler_jobs.instance_id
NULL
除非你用set_attribute
.我意识到这不是你问的,但它比弄乱游泳池更容易!