交换数据库以提高数据库更新期间的可用性

交换数据库以提高数据库更新期间的可用性

我有一个 SQL 服务器数据库,其中的数据由第三方提供。他们提供了一个工具来每周更新数据库数据。该工具相当老旧,使用 ODBC。更新可能需要几个小时。为了实现高可用性,建议使用 2 个 SQL 数据库,并在另一个数据库中存储“活动数据库”设置,以确定应用程序应使用这两个数据库中的哪一个(而另一个数据库可以正在更新)。

我们遇到的一个问题是:如何在其他数据库的存储过程中引用活动数据库?

这是正确的方法吗,或者还有更好的方法吗?

注意:更新可以是增量更新,也可以删除所有数据库数据然后重新创建数据。除更新工具外,数据库目前都是只读的。

答案1

他们提供了多么令人愉快的复杂解决方案 - 请尝试以下方法:

  • 有两个数据库服务器,A 和 B
  • 拥有一个数据库 IP 地址(除了系统的基本 IP 地址之外)
    • 将数据库 IP 地址分配给您希望查询转到的任何数据库服务器

更新时间到来时:

  • 更新非活动计算机(“计算机 B”)
  • 将数据库 IP 地址交换到“机器 B”
  • 更新“机器 A”

请注意,这容易受到 ARP 缓存问题的影响 - 您也可以使用 DNS 和(非常)短 TTL(假设您的 DNS TTL 受到尊重)、使用虚拟 MAC 的高可用性包或负载平衡前端获得相同的结果。

相关内容