首页 > 解决方案 > 作业数据库和目标数据库是否需要位于不同的服务器上?

问题描述

我正在按照 Azure 官方文档创建一个 Elastic Job Agent,以便我可以在 Logic App 上运行一些更繁重的查询。

应该为运行作业创建凭据的部分中,有一件事让我感到困惑。作业数据库和目标数据库是否需要位于不同的服务器上?我知道专用于作业的数据库应该是干净且空的,但该图暗示两者以某种方式驻留在不同的服务器上,或者我可能弄错了。

创建作业凭据 - MS Azure Docs

标签: sql-serverazureazure-logic-appsjob-scheduling

解决方案


在图中,“作业数据库”是为支持弹性作业代理而创建的数据库。

“目标主数据库”和“目标用户数据库”是您要执行作业的数据库。

存在“master”和“user”db 的原因是,当您选择服务器作为目标时,Elastic Job Agent 可以执行诸如获取该逻辑服务器上所有数据库的名称之类的任务。

显示有 LOGIN 'jobuser' 的格式再次简化了 - 如果您想对多个数据库运行相同的 Job 查询,那么这可以节省在每个数据库中创建 USER WITH PASSWORD 或 AAD USER - 在 master 中创建一次,然后将用户映射到该登录。

“masteruser”仅用于刷新有关该服务器上存在哪些数据库的元数据。

在目标上创建“masteruser”和“jobuser”后,您可以在 Job Agent 数据库上创建 CREDENTIALS,以便 Job Agent 可以作为定义的 LOGINS 连接到目标。IDENTITY 必须与目标上的 LOGIN 匹配,并且相应的 SECRET 必须与目标上的相应 PASSWORD 匹配。

根据您放置目标数据库的位置,Job Agent 数据库和您的目标数据库完全有可能位于同一台服务器上 - 但它们不必位于同一台服务器上。


推荐阅读