sql-server - 作业数据库和目标数据库是否需要位于不同的服务器上?
问题描述
我正在按照 Azure 官方文档创建一个 Elastic Job Agent,以便我可以在 Logic App 上运行一些更繁重的查询。
在应该为运行作业创建凭据的部分中,有一件事让我感到困惑。作业数据库和目标数据库是否需要位于不同的服务器上?我知道专用于作业的数据库应该是干净且空的,但该图暗示两者以某种方式驻留在不同的服务器上,或者我可能弄错了。
解决方案
在图中,“作业数据库”是为支持弹性作业代理而创建的数据库。
“目标主数据库”和“目标用户数据库”是您要执行作业的数据库。
存在“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 数据库和您的目标数据库完全有可能位于同一台服务器上 - 但它们不必位于同一台服务器上。
推荐阅读
- javascript - 从 Axios 获取调用更新后 DataTable 变形
- python-3.x - 为什么字典元素不能与 python 中的 max 函数一起使用?
- caching - 深度缓存层次结构中的内存访问时间
- .net - Azure 功能无法访问托管在内部 windows 服务器中的 WCF 服务
- php - 为 WooCommerce 中有限数量的现有订单更新多个元数据
- php - onclick徽标时如何更改徽标href
- c# - 在 C# 中为 Unity 创建多个列表
- c++ - 如何在c ++中实现命名参数,如属性
- r - index:length(......) : 长度为 0 的参数
- azure-vm-scale-set - 没有负载均衡器的 Azure 规模集