Mirroring the Distributor

有人成功地镜像分发数据库吗?我们有一个专用服务器作为分发器。它处理我们从生产环境到报告环境的所有推送复制。我们想在附近建立一个完全相同的服务器,以防分发器崩溃。有人成功构建过这样的系统吗?

对于HA/DR,分发数据库可以部署在集群实例上,但不能在镜像数据库中部署。 - Remus Rusanu
1+1 有趣的想法。一个专门的分销商应该可以进行镜像,但我从未尝试过。 - gbn
2个回答

很遗憾,分发器的镜像不受支持。我不确定它是否能正常工作,因为当代理登录时,服务器名称将不正确,更不用说您还需要手动在备份盒上设置所有代理。目前,分发器的高可用选项只有Windows集群。

我认为这是Distribution数据库的一个不幸限制。不允许“次级分发”数据库是一个重大疏忽。它在一个相当强大的复制功能套件中提供了单点故障。 - Matt M
@mrdenny 你是否知道有一篇列出了集群分发器步骤的文章? - sharadov
我在sqlmag.com上写了许多关于SQL Server集群的文章。基本上,您可以使用Microsoft Cluster Services设置一个主/备集群,然后将该实例用作分发器。您不能将现有的作为分发器的实例进行集群化。此外,您还需要某种形式的共享存储。 - mrdenny
根据文章所述,问题在于许多复制组件依赖于分发者的主机名不发生变化,因此出现了问题。这就是群集技术发挥作用的地方。现在有趣的是看看AlwaysOn如何改变事情(如果它确实改变了),可用性组可以使用与实际实例不同的网络名称。但这可能需要您为分发者使用企业版,这会相当昂贵。 - mrdenny
@mrdenny 谢谢!我找到了你的文章,它们非常详细,我正在阅读中。 - sharadov
@mrdenny我理解其中的原因,但是令我惊讶的是,复制元数据并没有隐式地允许设置一个辅助分发器,就像连接字符串可以有故障转移实例一样。 - Matt M
@MattM 同意。就个人而言,我不确定为什么元数据在数据库中需要分销商名称,除了为了使用户界面正常工作之外。问题的一部分可能源于复制技术的老旧性,以及微软希望在升级时尽量避免破坏现有功能,所以不支持这个功能可能更容易实现。 - mrdenny
你能在你的评论中加入文章链接吗?这样会增强你提出的替代方案的可信度。 - Nick Chammas
你可以在sqlmag.com上找到我的聚类文章,链接如下:http://www.sqlmag.com/article/clustering/planning-and-implementing-a-sql-server-cluster和http://www.sqlmag.com/article/configuration/set-up-a-sql-server-2008-cluster以及http://www.sqlmag.com/article/clustering/upgrading-a-sql-server-2005-cluster-to-a-sql-server-2008等等。 - mrdenny


好的,有没有其他方法可以制作当前分销商的复制品,因为不支持分销商的镜像。 - sharadov
请查看http://msdn.microsoft.com/en-us/library/ms151224.aspx,了解有关日志传送和复制的讨论。坦率地说,我不会这样做。任何可能发生的故障事件都可能导致数据丢失。这本身并不是一个问题。复制对所有数据保持同步非常敏感。如果丢失数据,这一点就无法实现了。如果你想保护自己,可以再购买一台服务器,并在上面安装SQL。等待灾难发生后,使用新服务器重新配置复制,将其作为分发器。 - Ben Thul