|
隨著服務器硬件的功能變得越來越強大,而價格一路急劇下跌,許多公司(尤其是小公司)發(fā)現(xiàn)如今購買數(shù)據(jù)庫服務器面臨眾多選擇。這意味著,經(jīng)驗相對欠缺的數(shù)據(jù)庫管理員們也被要求設計功能越來越強大的系統(tǒng)。你在為大型系統(tǒng)設計數(shù)據(jù)庫系統(tǒng)時,能夠買到有許多硬盤和充足內存的大型數(shù)據(jù)庫服務器。以下是你在設計系統(tǒng)時應當遵守的一些基本原則。
•存儲系統(tǒng)
人們在設計磁盤陣列時最常犯下的錯誤就是,只計算所需的閑置容量。閑置容量只是設計存儲子系統(tǒng)時要考慮的一部分而已;另一個部分就是存儲系統(tǒng)需要支持的輸入/輸出操作次數(shù)。
應當遵守的一條基本原則就是,寫操作頻繁的數(shù)據(jù)庫最好使用RAID 10陣列,而讀操作頻繁的數(shù)據(jù)庫通常最好使用RAID 5陣列。原因在于,如果把數(shù)據(jù)寫到RAID 5陣列,性能會受到影響。由于把數(shù)據(jù)寫到RAID 5陣列上,存儲系統(tǒng)必須在寫數(shù)據(jù)之前計算出奇偶檢驗位,而算出奇偶檢驗位需要相當長的時間,這意味著寫到RAID 5陣列上的性能會降低。
由于這種性能影響,我們總是建議你應當把事務日志放到RAID 10陣列上。事務日志是寫操作始終很頻繁的文件,不管數(shù)據(jù)庫是以讀操作為主的數(shù)據(jù)庫,還是以寫操作為主的數(shù)據(jù)庫。tempdb數(shù)據(jù)庫也應當放在RAID 10陣列上,具體來說放在與事務日志文件所在陣列不同的另一個RAID 10陣列上。
對每個磁盤陣列進行分區(qū)時,應當確保分區(qū)正確對齊。默認情況下,Windows 2003及以下版本沒有正確對齊分區(qū),這會導致磁盤子系統(tǒng)的性能達不到最理想水平?梢酝ㄟ^使用diskpart.exe實用程序(Windows 2000中的diskpar.exe)創(chuàng)建分區(qū)來解決這個問題。這樣創(chuàng)建的每個分區(qū)其對齊偏移量應為64kb;在默認情況下,創(chuàng)建的每個分區(qū)其對齊偏移量為32kb。Windows 2008在默認情況下創(chuàng)建的分區(qū)其對齊偏移量為128kb。
•物理數(shù)據(jù)庫構建
微軟最近開始推薦使用的一項比較新的技術就是,針對兩個至四個CPU核心當中的每個核心,數(shù)據(jù)庫應當有一個物理數(shù)據(jù)庫文件。應當為數(shù)據(jù)庫里面的每個文件組做到這一點。
如果你的服務器有兩個四核CPU,那么共有八個核心。我們假定數(shù)據(jù)庫有兩個文件組,一個名為Data,另一個名為Indexes。那么每個文件組都應當有兩個至四個物理文件。這項技術讓SQL Server可以對磁盤輸入/輸出進行優(yōu)化。可能的話,你應當盡量分散文件,以便位于每個存儲陣列上的文件盡可能少。
tempdb數(shù)據(jù)庫的配置應有點不同。配置tempdb數(shù)據(jù)庫時,建議針對每個CPU核心,數(shù)據(jù)庫應當有一個物理文件。這樣系統(tǒng)就可以為tempdb數(shù)據(jù)庫盡量加快輸入/輸出操作。與用戶數(shù)據(jù)庫一樣,放在每個磁盤陣列上的文件也應當盡可能少。
你在數(shù)據(jù)庫里面應當始終至少有兩個文件組。第一個文件組包括表,第二個組包括索引。你需要讓它們位于不同的文件組,那樣查詢索引時,裝入到表的操作不會受到影響,反之亦然。
•系統(tǒng)內存
在過去,購買只安裝了數(shù)GB內存的數(shù)據(jù)庫服務器相當常見。那是因為內存的價格還很昂貴。
如今,內存價格相當便宜;只要你能承受得了,應當購買盡量多的內存。內存越多,數(shù)據(jù)庫的運行速度幾乎總是越快。例外情況就是,如果你安裝的內存超過了數(shù)據(jù)庫的大小。舉例來說,如果你有3 GB大小的數(shù)據(jù)庫,但安裝了8GB內存,那么為服務器添加更多內存對提升數(shù)據(jù)庫的性能沒有幫助,因為SQL Server可能已經(jīng)能把整個數(shù)據(jù)庫裝入到內存中。
在決定為SQL Server分配多大內存時,絕對不要讓SQL Server把所有內存都分配給它。因為Windows操作系統(tǒng)需要內存來運行,安裝在數(shù)據(jù)庫服務器上的其他任何軟件同樣需要內存來運行,比如備份軟件和反病毒軟件等。 建議留出一兩GB內存用于操作系統(tǒng)及所用的其他軟件。這個內存量的大小取決于安裝了哪些軟件。
因為沒有兩個數(shù)據(jù)庫服務器是一樣的,所以沒有明確的原則規(guī)定你的硬件解決方案應當是什么樣子。你有眾多選擇;要設計一款將來可以使用多年的可靠的解決方案,關鍵在于明白自己的數(shù)據(jù)庫需求,明白自己使用的硬件,明白這些需求在哪些環(huán)節(jié)得到了滿足,以便既沒有購買對現(xiàn)在而言配置過低的硬件,也沒有購買對下一年而言配置過高的硬件。
|
|
【收藏】【打印】【進入論壇】 |
|
|
|
|
|
|
|