我有不同的Windows + Web应用程序,它们连接到Web上托管的SQL Server。我想建立一个辅助SQL Server,如果主SQL Server出现故障,应用程序可以连接到该SQL Server。我需要一个解决方案/帮助两件事:
将数据复制到辅助SQL Server是否应该使用镜像?或任何其他解决方案?
我应该创建一个心跳实用程序,它会在主服务器关闭时通知吗?
由于
答案 0 :(得分:4)
取决于您使用的SQL Server版本,有多种选项可为您的数据库提供高可用性和灾难恢复。
首先,我建议您定义您的RPO(恢复点目标)和RTO(恢复时间目标)。简而言之,您可以向您的企业询问您可以放弃多少数据以及将数据库重新联机所需的时间。要获得快速概述和精美的工作表,您可以转到此site。
Brent网站上的第一个响应工具包包括所有HA / DR功能的全面概述,以满足所有RTO& RPO要求和文档how to set up Availability Groups(在内部和在云中)。
话虽如此,我会谨慎行事。为SQL Server设置和维护(特别是自动)故障转移解决方案需要经验和时间。可用性组基于Windows Server故障转移群集。您也需要舒适地设置和支持它。如果您的服务器将位于不同的子网中,或者不是相同的AD,则事情变得更加棘手。除此之外,可用性组还是具有高价格标签的企业版功能。标准版(guide)上的SQL Server 2016支持基本可用性组。
如果你的SQL Server已经在云端,我会看一下Azure SQL DB。只需最少的管理工作,您就可以拥有许多功能。 Microsoft提供了很好的指南来帮助您入门:
Failover groups and active geo-replication
Designing highly available services using Azure SQL Database
回答有关镜像的问题: 您可以从这里开始逐步guide。
您不需要心跳应用程序。镜像将照顾到这一点。要使应用程序能够连接到镜像db,可以将镜像添加到应用程序的连接字符串中。见Clarification on the Failover Partner in the connectionstring in Database Mirror setup.