SQL Server資料庫橫向擴充技巧

來源:互聯網
上載者:User

一般人們會選擇縱向擴充(scale up)SQL Server資料庫,而非橫向擴充 (scale out)。縱向擴充很容易:增加硬體、處理能力、記憶體、磁碟和提高網路 速度。其原理就是仍然在一台伺服器上運行資料庫,但是增加了伺服器的處理能 力和資源。這種方法很昂貴,但是非常簡單直接。

然而,一些應用程式的 增長速度會超過一台伺服器的處理極限,因此縱向擴充並不能解決問題。這時應 該選擇橫向擴充SQL Server,將資料庫部署到多台伺服器上。SQL Server對此提 供了一些支援,而方法選擇取決於您的具體需求和可接受程度。

採用雲技 術

有時候,最簡單的方法就是將問題交由其他人處理。微軟的Windows Azure雲端服務包含一個雲端式的SQL Server版本SQL Azure。這在技術上並非真正 意義的橫向擴充,因為它是一種無限縱向擴充方法。所以,轉移到Azure並不需要 對您的應用程式進行大改動。實際上,您只需要將應用程式遷移到SQL Azure,然 後支付儲存、處理和資料轉送費用。這些都是收費服務,但是您不需要再擔心擴 展問題。

複製

SQL Server原生複製是一種支援橫向擴充的解決方 案,與資料庫的建立和使用方式有關。您只需要在多台伺服器上複製多個資料庫 副本,然後將不同的使用者指向各台伺服器。這種方法通常最適合支援地理位置分 散的使用者,如亞洲辦公室的使用者使用伺服器1,而北美辦公室的使用者則使用伺服器 2。每一台伺服器都擁有完整的資料副本,並且會複製夥伴伺服器的所有修改。

這種方法不支援自動負載平衡,並且最適合用在使用者固定只使用一部分數 據的情況。換而言之,如果亞洲使用者只需要編輯與他們辦公室相關的資料——例 如,主要是亞洲客戶的資訊,那麼複製能夠保證其他資料庫副本也包含這些記錄 的副本。如果所有使用者都需要編輯完整的資料集,那麼複製就變得有一些複雜, 因為SQL Server必須在支援使用者的同時,編輯位於不同伺服器的同一個資料。

SQL Server的合併式複寫能夠處理這種衝突,但是您必須進行一些自訂合 並編程,這意味著您的開發人員必須開發一些演算法,確定使用者並發訪問資料時誰 擷取編輯許可權。客戶應用程式也需要增加編程;使它們不僅向資料庫提交資料修改 ,也要迴圈檢查這些修改是否被其他並發使用者重寫。使用者也需要重新培訓,因為 用戶端應用程式可能會提示:“您正在編程的資料已經發生變化。您需要重新檢 查,確定您的編輯是否仍然有效。”

聯合資料庫

另一個重要的橫 向擴充方法是聯合。通過這種方法,您可以將資料庫劃分到多台伺服器上。垂直 分割將同一個表的不同行儲存到不同的伺服器上。同時,地理分區是最常用的方 法:將所有亞洲資料記錄儲存在一台伺服器上,而所有歐洲資料則儲存在另一台 伺服器上。這種方法不同於整體複製:每一個位置的伺服器都不具備完整的資料 庫,而只擁有該位置的資料。通過實現一種SQL Server分散式資料分割檢視而形成完 整的表,使用者就可以瀏覽一個“聯合”或組合的資料檢視。水平分割則將表的字 段儲存在不同的伺服器上,因此各台伺服器一起協作構成組合的表。

這些 資料庫的建立並不簡單,其中涉及一種整體操作。您需要掌握關於資料訪問和使 用的詳細資料,才能夠實現正確的部署。此外,您還需要一位SQL Server資料庫 架構師,他應該全面理解這些技術,分析您的業務情況,並且能夠正確地建立這 些組件。

在一些情況中,實現這種橫向擴充對用戶端應用程式的改動很小 。對於本身在設計上大量使用視圖和預存程序進行資料訪問的應用程式,更是如 此。因為這些元素只是是在後台抽象,在用戶端上不會發生變化。但是,這些應 用程式並不常見;通常,實現橫向擴充都需要修改用戶端程式,使用戶端與後台結 構分離。

橫向擴充並不簡單

毫無疑問,實現SQL Server橫向擴充 非常複雜——這也是Azure等雲資料庫系統流行的原因之一。此外,有一些第三方 供應商能夠協助實現橫向擴充技術,而不需要完全依賴SQL Server的原生特性。 您需要自己下功夫瞭解這些方法,理解資料訪問和使用方法,這樣才能夠選擇最 符合您要求的方法。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.