在数据库之间切换,同时使用两个数据库

我有一个使用一个SQL数据库的网站,但托管公司有时非常慢,我得到数据库超时,登录和类似的错误。 我可以实现我的代码同时使用两个数据库吗? 我有存储过程,数据会定期更新。

编辑:简单:当dbDefault关闭并且无法访问时,我需要使用dbSecondary,以便Web应用程序继续运行。 Ant这两个数据库必须始终相同。

编辑:一些错误:

  • 将请求发送到服务器时发生传输级错误。 (提供程序:TCP提供程序,错误:0 – 远程主机强制关闭现有连接。)
  • 建立与SQL Server的连接时发生与网络相关或特定于实例的错误。 服务器未找到或无法访问。 validation实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:命名管道提供程序,错误:40 – 无法打开与SQL Server的连接)
  • 超时已过期。 从池中获取连接之前经过的超时时间。 这可能是因为所有池连接都在使用中并且达到了最大池大小。
  • 无法打开登录请求的数据库“db”。 登录失败。 用户“root”登录失败。

负载平衡和/或故障转移群集数据库服务器通常涉及大量工作。

您需要确保在两个数据库服务器之间合并复制所有数据。 除非您有专用服务器,否则托管提供商很少提供此选项。

允许合并复制可能涉及重新设计数据库的一部分; 这可能是不可行的。

除非您愿意投入大量时间和金钱,否则只需将托管服务提供商转换为具有更好数据库支持的服务提供商,您就会好得多。 考虑到成千上万的这类公司在那里,这是一个简单的解决方案。

UPDATE

您在编辑中发现的几乎所有错误通常都归因于未能正确处理连接,命令和读取器。 您可能需要查看代码以确保正确访问sql server。 每个连接,命令和阅读器都应包含在using子句中,以确保它们正确释放回连接池。

如果您提供数据访问代码示例(请提出新问题),我们可以帮助您重写它。

并不是的。

数据一致性和完整性:

  • 您如何决定在什么时间制作什么数据或拨打什么电话?
  • 写的会发生什么?

防火墙,远程服务器等:

  • 如果您使用其他托管公司,您将如何连接?

误解:

  • 一台服务器上的两个数据库=绝对没有优势。
  • 服务器可能过载,第二个数据库会使情况变得更糟

数据库超时当然可能与代码有关,它可能无法帮助您拥有2个具有相同不良代码或设计的数据库……

不是一个好的答案,但如果您的主机提供的服务很差,那么您的选择是有限的

总而言之,如果它在您的代码中,则通过优化查询等来纠正代码。

我认为你需要的是一个故障转移服务器,如果一个服务器关闭,你可以切换。

另外

你可以在web.config中维护两个连接字符串,如果一个服务器关闭,可以切换到其他服务器。

在这两种方法中,您需要设计一个策略来同步服务器。

如果你的数据库都是同步的(这是你要做的事情的明显要求),最好的解决方案是依赖于负载均衡器,但如果你不能,我猜你的目标是对两个数据库运行查询在同一时间并返回第一个结果,否则您将不得不等待超时对第二个服务器运行请求。

那么你需要的是异步sql命令吧?