水平和垂直劃分擴充套件SQL Server系統

iSQlServer發表於2009-02-27

當我提到向外擴充套件資料庫系統時,我實際上只是討論對資料庫系統進行分割或劃分,以便你能利用那些部分,把它們分配到單獨的資料庫伺服器上。這允許你在許多伺服器間分散處理能力,以適應不斷擴張的增長。

但是,額外的特性和功能需要更高的複雜程度。一個向外擴充套件的資料庫很難進行設計或管理。在你成功對一個資料庫系統實行向外擴充套件之前,你必須解決許多困難的商業和技術難題。

本文說明向外擴充套件資料庫系統的兩個選項,從而實現更高的可擴充套件性:水平資料劃分和垂直資料劃分。

水平資料劃分

使用水平資料劃分,資料庫結構在資料庫例項方面沒有變化。通常,資料庫之間唯一的不同在於例項包含的資料不同。

開發出中間層應用程式,使得例項間的資料得到適當維護,是這種解決方案的特點。可能很難決定如何在資料庫例項間劃分資料。資料分配方法十分關鍵,因為我們需要在不同伺服器間比較平均地分散資料負載。不進行這種平均分割,你就無法取得向外擴充套件資料庫的任何好處,因為查詢或事務處理的大部分IO仍然只發生在一臺伺服器上。

既然全部資料不再儲存在一臺伺服器上,因此在必要時更難對所有資料執行查詢。幸運的是,你可以建立分散式劃分檢視連線兩個伺服器例項間的資料,使得資料看起來就像儲存在一臺伺服器上。有一些特殊的檢視,它們利用連線的伺服器和在資料表上建立的約束,有效地返回資料,就好像你只查詢一臺伺服器上的資料一樣。(我將在下週的文章中詳細討論分散式劃分檢視。)

另外,值得一提的是,如果伺服器處在不同的地理位置,它們的效能可能會受到影響。在這種情況下,你可能希望複製例項間的資料,以便每臺伺服器擁有完整的資料,但只負責維護特定的一塊資料。


垂直資料劃分

垂直資料劃分包括把資料庫表分割成在不同伺服器上儲存的不同資料庫例項。每臺伺服器一般分配完成一個特殊的任務。這樣就可以對那些表中的IO進行分割。這種型別的分割取決於將系統邏輯地劃分成許多部分,以便這些部分能夠獨立操作。如果例項間需要最少量的互動進行事務處理,這種處理就很有必要。

例如,如果你的資料庫系統維護銷售、營銷和廣告資料,最好是把這些表分割成單個的資料庫例項,阻止它們共享同一臺伺服器上的IO。可能你還需要處理這兩個共享一些相同資料(例如客戶資料)的系統。能夠分割這些商業功能,你就可以在必要時向外擴充套件資料庫環境,提高系統效率。

你可以採取一些措施,如在每一臺伺服器上使用相互連線的表和檢視,以便例項可以從其它例項中檢視資料。這樣做可以減少應用程式層決定在哪找到它需要的資料時所需的額外計算量。你需要保證應用程式層具有必要的邏輯性,以決定將資料儲存在哪臺伺服器上。

修改

你可以對水平和垂直資料劃分方法進行修改,使其更好地適應你的環境。例如,你可以使用一個面向服務的架構在伺服器間分配處理能力;應用複製確保資料庫例項相互之間保持緊密同步;以及組合應用這些技巧。

Tim Chapman是肯塔基州路易維爾市一家銀行的SQL Server資料庫管理員,他有超過7年的IT行業經驗。他還通過了微軟SQL Server 2000和SQL Server 2005的認證。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-558080/,如需轉載,請註明出處,否則將追究法律責任。

相關文章