2010-08-10 114 views
3

我開始設計一個新的實驗室測試數據管理系統,包含許多(大約30個)測試站。離線存儲一些SQL Server數據

系統必須能夠在網絡中斷的情況下脫機收集數據。

每個工作站都會保留測試結構(規格,實體類型,業務規則/工作流程等)的最新只讀副本,但不包含測試數據。如果找不到服務器,則實際的測試數據將存儲在本地。

需要進行某種同步才能準備網絡中斷。同步會拉動更新的測試結構。另一個同步會推送未保存的測試數據。

你如何推薦我做到這一點?任何警告?

想法/思考:

  1. 每一臺機器上安裝SQL Server和編寫腳本來同步服務器和客戶端(似乎昂貴和矯枉過正)。
  2. 使用同步腳本在應用程序定義的原始數據文件中保存本地數據副本。
  3. SQL Server中內置了什麼讓客戶端能夠離線收集數據?
  4. 本地保存所有數據,然後單擊「傳輸」按鈕將數據推送到網絡。

環境:MS SQL服務器的Windows Server上運行2008

回答

2

使用本地SQL Express實例並通過Service Broker推送數據。請參閱High Volume Contiguos Real Time Audit and ETL以解釋爲什麼從幾個角度包括價格,性能和可靠性,這比複製更好。

使用複製時,在所有外圍節點上需要比SQL Express更高的許可證(因爲Express只能是複製拓撲中的訂閱者)。使用SSB推送數據可以在外圍實現SQL Express實例,並且只需要一箇中央非明確許可的服務器。這意味着您可以在幾十個工作站上輕鬆部署解決方案,而無需擔心SQL Server許可成本。

另一個優點是性能和吞吐量。 SSB旨在處理成千上萬的通信對等方,並設計了一個複雜的分層流量控制,能夠在出現網絡故障時處理數千個目的地的重試(我知道這一切是因爲我是SSB的成員球隊)。通過比較複製使用TDS協議進行數據交換,它依賴於SQL Agent作業並以簡單的方式處理網絡中斷,這可能導致許多週期在重試時被燒燬,當事情已經不好時更糟。總的來說,SSB可以處理大型部署(我知道+1500服務器的部署情況,而MySpace已經公開了它們的deployment of +500 servers,它們依靠SSB來交換數據。總體而言,在大規模情況下,SSB以任何方式優於複製。

我還會爭辯說,基於消息傳遞而不是表格行復制的解決方案更適合於描述問題:將結果推送到中央服務器。

一個退步(而不是次要的)是最初部署SSB所需的陡峭的學習曲線。技術訣竅在那裏,但很難找到,而SSB缺乏像複製監視器這樣的優化工具,這使得部署簡單的複製拓撲結構變得非常簡單。另一方面,SSB在升級部署方面有很大的優勢,如2005/2008/2008R2 versions are perfectly compatible

0

聽起來像SQL Server複製是你想要檢查的解決方案。合併複製將允許本地測試站從服務器接收數據的副本,併發送在網絡中斷期間收集的數據。

+0

[Jinx!](http://www.urbandictionary.com/define.php?term=jinx&defid=652606):-) – 2010-08-10 21:49:28