我是这里的菜鸟,想请教各位专家,了解配置两个 SQL Server(2008 R2 及更高版本)的首选方法,以实现具有以下特征的简单冗余:
有2台电脑。每个都有自己的 SQL Server,还有自己的 Windows 服务定期将时间戳数据写入数据库。该服务已经有自己的简单切换/故障转移算法。
对于数据库的行为,一旦主服务器下线,备份计算机的服务将接管,将数据写入备份数据库。客户端将知道,由于主服务器已关闭,它将重新连接到备份以进行数据检索。
现在,当主计算机重新上线时,这台计算机中的服务将开始向数据库写入数据,而备用计算机中的服务将停止。
从这里开始,需要一个合适的同步计划来确保备份数据库中的数据将被同步,或传输回主数据库以保持完整性。事实上,即使主数据库不脱机,两个数据库也应该同步。
根据我上面的描述,我浏览了几篇文章,得出了 3 种可能的候选方法:
- 合并复制
- 镜像
- 额外的定制编程——真的是最后的手段,但如果需要,我将不得不亲自动手
作为一个在长时间中断后加入最近的 MS 技术的人,我最初有点迷茫。在阅读这些文本时,我找不到关于这些方法是否支持上述行为 (4) 的明确指示。
据我了解,方法(2)在我们的案例中不起作用,因为在故障转移后,备份数据库成为“主体”,主数据库成为“镜像数据库”。根据我的阅读,镜像数据库处于脱机状态,无法访问。请注意上面 (3) 中的 windows 服务行为。
至于方法(1),我对它如何(或不会)工作感到困惑。比如我理解Publishing和Subscribing的概念,所以Primary DB配置为发布者,Backup DB配置为订阅者。为了合并,还需要将备份数据库配置为发布者,反之亦然。在这种情况下,假设 Primary 中的服务正在将数据写入 DB,然后将其发布到 Backup DB。然后,备份数据库再次将其发布回主数据库(全部基于触发器)。这里似乎是一个无限循环。
我希望我的假设是相当正确的。我错过了什么?
注意:这些服务器只会在一周后到达,所以我现在没有什么要测试的。只能做理论上的准备。
谢谢并恭祝安康。