如何ASP.NET站点和SQL镜像

时间:2012-03-27 07:58:56

标签: asp.net sql sql-server-2008-r2

我正在尝试实现一个SQL镜像来帮助ASP.NET站点依赖备份服务器以防主服务器出现问题,我已经解决了与此主题相关的一些问题,而且大多数是特定的答案他们遇到的问题或问题。

总结一下我想做的事情,如果我走在正确的道路上,请帮助我/指导我。

  1. 我们有一台运行ASP.NET WebApplication的繁忙服务器
  2. Web应用程序使用两个数据库ASP.NET FORMS数据库和自定义数据库来存储自定义数据。
  3. 现在我们计划设置一个新服务器,作为主服务器失败的备份
  4. 我想到的建议解决方案如下。
  5. 两台服务器都将托管ASP.NET WebApplication,两台服务器都安装了已部署数据库的SQL Server(最新
  6. 现在,一台服务器将充当主服务器并将其更改为其他SQL服务器。
  7. 现在问题:

    1. 是我的做法对吗?
    2. 如果主服务器出现故障和其他数据库出现,稍后主服务器出现后,辅助服务器的更改是否同步到主服务器?
    3. 我是否可以配置负载均衡器,以便在高负载时我们将在这两个服务器之间平衡请求负载?数据库会同步吗?
    4. 任何指针?在此先感谢。

1 个答案:

答案 0 :(得分:0)

我认为你的第一个问题的答案是:不,你需要一个带有appropriate connections string to principal and mirror database的ASP.Net网络服务器,但你的镜像必须处于自动故障转移模式。

当您使用mirroring时,您有两台服务器(为简单起见,我们不会谈论见证服务器)。第一个具有工作和可供用户访问的数据库(Principal),第二个具有Mirror数据库。此数据库无法读取或写入(一个例外:您可以从此数据库创建SNAPSHOT,但不是您的情况),此数据库处于还原状态,因为此服务器应用Principal中的事务。

所以,回答你的第三个问题是 - 不,你不能使用第二个服务器进行负载平衡。

当见证服务器(如果您使用自动故障转移)检查无法访问Principal数据库时,他会给出恢复镜像数据库的命令。此数据库现在可以访问,如果您使用连接字符串来使用镜像(请参阅示例here),clinets将连接到此服务器而不是失败的主体服务器。如果您将使用没有自动故障转移的镜像,则需要恢复镜像数据库并用手重定向连接。之后同步将丢失。在这种情况下,您需要在需要时再次设置镜像。