我想在不修改应用程序代码的情况下分离我的 .NET 应用程序执行的数据库读取和写入。
是否有商业或开源产品,可以作为虚拟“SQL Server”端点工作,同时执行代理/代理的功能,与实际的 SQL Server 通信?
然后我会通过修改连接字符串将我的应用程序指向这样的代理,然后它会根据其对 ADO.NET 或 TDS 协议或其他东西的了解将读取和写入路由到相应的 SQL Server。我知道甲骨文/Java世界中存在这样的东西,但微软世界中有这样的东西吗?
我想在不修改应用程序代码的情况下分离我的 .NET 应用程序执行的数据库读取和写入。
是否有商业或开源产品,可以作为虚拟“SQL Server”端点工作,同时执行代理/代理的功能,与实际的 SQL Server 通信?
然后我会通过修改连接字符串将我的应用程序指向这样的代理,然后它会根据其对 ADO.NET 或 TDS 协议或其他东西的了解将读取和写入路由到相应的 SQL Server。我知道甲骨文/Java世界中存在这样的东西,但微软世界中有这样的东西吗?
SQL Server 具有称为“可用性组侦听器”的功能,听起来与您在此处寻找的非常相似。它在 MSDN ( http://msdn.microsoft.com/en-us/library/hh213417.aspx ) 上有很好的记录。
这是文档的摘录,听起来像是您想要的功能:
可用性组的主数据库处理传入的只读路由请求,并尝试查找连接到主副本并配置为只读路由的联机只读副本。客户端从主副本服务器接收回连接信息并连接到识别的只读副本。
请注意,此功能是特定于 SQL Server 的,一般不适用于任何 ADO.NET 提供程序;由于您的问题同时提到了 ADO.NET 和 SQL Server,我不确定这是否能解决您的问题。