2013-01-16 20 views
0

我想分開數據庫讀取和寫入我的.NET應用程序執行,而無需修改應用程序代碼。ADO.NET透明代理分離讀寫操作?

是否有商業或開源產品,在執行代理/代理的功能時與虛擬的「SQL Server」端點一起工作,與實際的SQL Server進行通信?

然後,我會通過修改連接字符串將我的應用程序指向這樣的代理,然後根據其對ADO.NET或TDS協議或其他知識的瞭解,將讀取和寫入路由到相應的SQL Server。我知道Oracle/Java世界中存在這樣的事情,但微軟世界中有這樣的事情嗎?

回答

1

SQL Server具有名爲「Availability Group Listener」的功能,這聽起來與您在此尋找的內容非常相似。它在MSDN上記錄得很好(http://msdn.microsoft.com/en-us/library/hh213417.aspx)。

下面是這聽起來像你想的能力的文件的摘錄:

可用性組的主數據庫處理傳入只讀路由請求,並試圖找到一個在線,只讀副本即加入主副本並配置爲只讀路由。客戶端從主副本服務器接收反向連接信息並連接到所識別的只讀副本。

請注意,此功能是SQL Server特有的,並非一般適用於任何ADO.NET提供程序;因爲你的問題提到了ADO.NET和SQL Server,我不確定這是否解決了你的問題。

+0

謝謝,解決方案是SQL Server特有的是可以接受的,但是,這需要一個讀/寫選擇器作爲「ApplicationIntent = ReadOnly」添加到連接字符串中 - 從應用程序的角度來看,它直接指向只讀副本。我希望找到一些不需要在應用程序端指定意圖的東西。無論如何感謝您的信息。 – zvolkov