4

我們計劃在未來幾個月內實施sql server 2005集羣。我想知道在嘗試實現這一目標時需要採取哪些步驟/預防措施作爲數據庫開發人員?我們是否需要更改任何ado.net代碼(在前端)/存儲過程等等?有哪些最佳實踐需要遵循?爲SQL Server集羣準備數據庫

原因我問這個問題是:對於asp.net負載平衡,你必須確保你的代碼會話/應用程序/緩存都符合負載平衡的環境。 (所以如果您使用inproc會話,則必須重寫該代碼,以便它可以在負載平衡的環境中運行)。現在這是在您的Web服務器級別。我只是想在數據庫服務器級別試圖擴展時做正確的事情

如果這個問題很愚蠢,我很抱歉。請原諒我關於此主題的有限知識:-)

回答

3

您必須不做前端更改才能實現SQL Server羣集,只需簡單地連接到SQL Server實例即可。

但是,SQL Server故障轉移羣集不是負載平衡。它用於在主節點上任何硬件發生故障時添加冗餘。您的其他(輔助)節點在您的主節點發生故障之前不會執行任何操作,在這種情況下,故障轉移會自動進行,並且您的數據庫在延遲10-20秒後再次進行連接。

另一個問題是輔助節點上的緩存爲空,所以在故障轉移後您可能會看到一些性能影響。您可以使用SQL Server database mirroring在您的鏡像服務器上實現「溫暖」緩存,但無法做類似於羣集的操作。

2

數據庫集羣與負載平衡不同。它的高可用性,而不是「向外擴展」

基本上:

  • 2服務器(或節點)與共享磁盤(即只能由一個節點在任何時間被擁有)
  • 一個是「活性「運行一個虛擬的Windows服務器和SQL Server實例
  • 一個正在監視其他(」被動「)的連接到虛擬windows服務器的其他(」被動「)

如果節點1離線,則節點2接管。或者可以手動進行故障切換。

這意味着:服務在節點1上關閉,節點2控制磁盤和服務並啓動。任何連接都將中斷,並且不會傳輸任何狀態或會話。