SQL Azure數據庫部署最佳實踐(上)
雖然SQL Azure是基于SQL Server技術的,并且SQL Server的大多數***實踐都適用于SQL Azure,但在構建新類型的應用系統時,面對一些體系結構和特征的差異還需要進一步的考慮和深究。
例如,當數據庫負載過多時,需要考慮數據庫連接方式的不同和SQL Azure數據源連接不暢,并且開發應用程序處理在傳統SQL Server應用程序中未遇到的問題。這篇文章將為你提供若干建議和***實踐來幫助你進行SQL Azure數據庫部署。
如果您的前端應用程序在Windows Azure主機上,則應將應用程序和SQL Azure數據庫放置在同一機器上,這將通過減少應用程序和數據庫服務器之間的延遲來優化連接。傳統上,Web服務器和數據庫服務器在同一臺機器上,但SQL Azure主機放置在世界上的幾個數據中心。因此,從系統配置方面看,Windows Azure的應用程序應跟SQL Azure放在相同的機器上。
正如傳統數據庫通過向外擴展而不是向上擴展來處理負載應對更大、更頻繁的使用。SQL Azure數據庫因為資源的限制更適用于此規則。當SQL Azure發現一個數據庫使用了過多的CPU和磁盤I / O時,它通過節制吞吐量來確保其他數據庫不會受到影響。由于在數據庫一級實施節流,可在水平或垂直方向的多個數據庫中分散大量數據,通過這種方式,連接不暢的機會將會減少,任何潛在的連接不暢也只會影響一部分數據集。
此外,如果需要在兩臺數據庫間啟動SQL Azure的故障切換,小數據庫可以做得更快。同樣,如果你有一臺只讀的數據庫服務器從SQL Server得到刷新,您可以在SQL Azure中創建多個數據庫使得應用程序可以循環或者隨機選擇訪問其中哪一個數據庫。這種方式,您可以在SQL Azure上分布負載并減少連接不暢的機會。
另一件要注意的是SQL Azure服務器的連接更容易受到干擾,你的應用程序應該能夠更好的處理它們并提供重連接的透明性。相比較傳統的SQL Server環境,有若干場景可能發生連接的中斷。例如,如果你離開本地網絡,連接失敗會發生在多個點上包括路由器、交換機、區域互聯網中斷等,還有SQL Azure數據庫的工作方式。如果你的數據庫服務器出現故障,SQL Azure將啟動一個新服務器聯機并恢復您的數據庫。這是一個很快的過程,只用幾秒鐘,但任何現有連接將被中斷。
【編輯推薦】