如何使用ASP.NET站点和SQL镜像



我正在尝试实现SQL镜像,以帮助ASP.NET网站在主服务器出现问题时依赖备份服务器,我已经介绍了与此主题相关的一些问题,大多数都是针对特定问题的答案。

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

  1. 我们有一个正在运行ASP.NET Web应用程序的繁忙服务器
  2. Web应用程序使用双数据库ASP.NET FORMS数据库和自定义数据库来存储自定义数据
  3. 现在,我们计划设置一个新的服务器,在主服务器出现故障时作为备份
  4. 我正在考虑的解决方案如下
  5. 两台服务器都将托管ASP.NET WebApplication,都具有部署了数据库的SQL Server(最新版本
  6. 现在,一台服务器将充当主服务器,并将更改推送到另一台SQL服务器

现在的问题:

  1. 是我的方法对吗
  2. 如果主服务器出现故障,其他数据库占用,以后主服务器启动后,从辅助服务器的更改是否同步到主服务器
  3. 我可以配置一个负载均衡器吗?这样在高负载下,我们将在这两个服务器之间平衡请求负载?数据库会同步吗

有指针吗?提前感谢。

我认为您的第一个问题的答案是:不,您需要一台ASP.Net web服务器,该服务器具有到主体数据库和镜像数据库的适当连接字符串,但您的镜像必须处于自动故障转移模式。

当您使用镜像时,您有两个服务器(为了简单起见,我们不会谈论见证服务器)。第一个具有可供用户访问的数据库(主体),第二个具有镜像数据库。此数据库无法进行读取或写入访问(有一个例外:您可以从此数据库创建SNAPSHOT,但情况并非如此),此数据库处于还原状态,因为此服务器应用来自Principal的事务。

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

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

最新更新