Sql server 2008 主服务器和热备用服务器体系结构

Sql server 2008 主服务器和热备用服务器体系结构,sql-server-2008,iis,architecture,operating-system,application-layer,Sql Server 2008,Iis,Architecture,Operating System,Application Layer,我现在开始考虑为内联网网络构建适当的体系结构,其中包括一台主服务器和一台辅助服务器,我希望作为热备用运行。 我对这方面的了解非常少,我正在寻找可以让我开始学习的指南和文章 需要复制的服务器将运行以下操作: -Windows Server 2008 R2操作系统 -MS SQL 2008 R2标准 -将运行asp.net内置web应用程序的IIS 7.0 -几个后台服务,其中一些将数据写入数据库。这是在内部编写的.net应用程序,但没有复制方法。 我的目标是让主服务器数据不断复制到辅助服务器,以

我现在开始考虑为内联网网络构建适当的体系结构,其中包括一台主服务器和一台辅助服务器,我希望作为热备用运行。 我对这方面的了解非常少,我正在寻找可以让我开始学习的指南和文章

需要复制的服务器将运行以下操作:
-Windows Server 2008 R2操作系统
-MS SQL 2008 R2标准
-将运行asp.net内置web应用程序的IIS 7.0
-几个后台服务,其中一些将数据写入数据库。这是在内部编写的.net应用程序,但没有复制方法。

我的目标是让主服务器数据不断复制到辅助服务器,以便在出现故障时,辅助服务器可以尽快开始充当主服务器

我的问题是:
1.在这种情况下,推荐的硬件拓扑是什么?除了这两台服务器之外,我还需要任何额外的硬件来充当DNS服务器,以便将问题解析到正确的服务器上吗?
如果没有,如何使用软件实现这一点
2.数据库复制-我知道我需要使用某种日志传送,以便在数据库之间进行同步。限制和指导原则是什么?我需要知道是否有一个良好的性能与拥有最新的数据库复制的折衷。一篇好文章会很有帮助。

3.考虑到重写服务应用程序以支持以某种“被动”模式运行并在服务器之间传输状态数据可能是不可能的,那么在辅助计算机上应该如何处理这些服务呢?

我认为您的方法是错误的,您应该使用负载平衡和集群来提供可用性,而不是使用热备用

我的建议是在两台服务器上运行web应用程序,并使用IP负载平衡器在两台服务器之间分发请求。如果其中一台服务器变得不可用,用户请求将不再路由到该服务器,并且用户不会真正注意到发生了中断。您应该尝试使用公司基础架构中现有的负载平衡器

如果您有两台以上的服务器可用,我还建议您查看Windows Server中包含的Windows网络负载平衡(NLB)功能,请阅读有关NLB的更多信息。但由于NLB和故障转移群集在同一台服务器上不受支持,如果您只有两台服务器,我不建议这样做

对于数据库,我建议您使用2节点主动-被动数据库集群,而不是部署两个单独的SQL实例,并在它们之间进行复制。在群集配置中,SQL Server在单个服务器上运行,但如果该服务器出现问题,SQL Server会自动切换到其他服务器。阅读有关SQL Server群集的更多信息,请访问

实现集群解决方案需要两台服务器之间的某种共享磁盘,因为两台服务器都可以是活动实例,它们必须能够写入相同的磁盘。如果您的组织有可用的SAN,则这是共享磁盘的首选

但是现在后台服务出现了问题。如果它们不能被修改,您只需要想出一些机制,在服务器出现故障时移动它们。如果服务器受到监控,您可以让技术人员启动脚本,启动另一台服务器上的服务。手动操作从来都不可靠,但如果你不能重写它们,你就别无选择

如果您有两台服务器,我建议:

          HW IP Load Balancer
                  |
    -----------------------------
    |                           |
SERVER A                     SERVER B
ASP.NET web app              ASP.NET web app
SQL Server (active)          SQL Server (passive)
Bg services (not running)    Bg services (running)
我建议您使用四台服务器:

        HW IP LB or Windows NLB
                  |
    -----------------------------
    |                           |
SERVER A                     SERVER B
ASP.NET web app              ASP.NET web app
    |                           |
    -----------------------------
                  |
    -----------------------------
    |                           |
SERVER C                     SERVER D
SQL Server (active)          SQL Server (passive)
Bg services (not running)    Bg services (running)