繁体   English   中英

指定service_broker_guid而不是从NEW_BROKER中随机获得一个

[英]Specify service_broker_guid instead of getting random one from NEW_BROKER

在SQL 2008中,有一种方法可以指定service_broker_guid而不是简单地采用以下方式提供给您的GUID:

ALTER DATABASE MyDB SET NEW_BROKER

我们当前的(在我看来,破碎的)发布方法是恢复两个具有相互依赖关系的数据库。 一个是“源”数据库,另一个是星型BI数据库。 回归测试计划的一部分是在不同服务器之间,甚至在同一服务器上,以“黄金”状态还原两个数据库的备份。

我们通常在路线上不包含BROKER_INSTANCE变量,因为大多数地方我们不需要它们(即,SERVICE_NAME和ADDRESS的组合足以保证交付)。 但是,当我们在同一实例上运行两个数据库且都启用了代理时,其中一个将需要一个新的BROKER_ID。 此外,所有指向这些数据库的路由现在都将需要BROKER_INSTANCE限定符,因为同一地址上有2个SERVICE_NAME。

我们使用Visual Studio Database Professional生成我们的生成输出脚本,除非您事先知道,否则没有简单的方法将BROKER_INSTANCE作为其SQLCMD变量替换技术的一部分。

否。NEW_BROKER将生成一个新的Guid。

无法使用特定的Guid,这是非常故意的。 如果您解释了导致您提出此问题的根本问题是什么,也许我们可以努力解决该问题。

编辑后。

broker_instance以及路由信息均被视为运行时特定于部署的信息。 因此,它并非旨在接受固定的预定值,这是VS GDR项目或一组SQLCMD脚本想要使用的值。 此外,broker_instance_id实际上是一个唯一的,特定于数据库实例的值,允许用户指定自己的值将很快导致重复,这会使试图交换消息的对话端点感到困惑。

您面临的问题虽然是合法的。 如何自动化路由信息的部署(以及与之相关的问题,这些问题包括自动化部署和交换证书,为用户配置不登录和授予适当权限,配置远程服务绑定和服务代理传输终结点)。 根本没有向导可以执行此操作。 Quest 有一套可以实际处理此问题的工具

曾几何时,我制作了一个名为ssbslm.exe的工具,该工具可以使整个过程自动化,并且可以从脚本中使用。 该工具可以完成所有工作,以设置两个任意服务之间的路由,证书和端点。 尽管此工具不再可用(冗长而乏味的故事,为什么如此),但该故事的要旨在于 ,编写该工具并不难。 几天前带我去。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM