DB2數(shù)據(jù)庫(kù)分區(qū)是 DB2 企業(yè)版 DPF(Data Partitioning Feature)選件提供的,它主要用來(lái)個(gè)分區(qū)(邏輯的或物理的)上分布大型數(shù)據(jù)庫(kù)提供了必要的可伸縮性,并利用了一個(gè)無(wú)共享(shared-nothing)結(jié)構(gòu)。數(shù)據(jù)庫(kù)在一個(gè)非共享的環(huán)境中被分解為獨(dú)立的分區(qū),每個(gè)分區(qū)都具有自己的資源,例如內(nèi)存,CPU 和磁盤(pán)以及自己的數(shù)據(jù)、索引、配置文件和事務(wù)日志。數(shù)據(jù)庫(kù)分區(qū)有時(shí)稱為節(jié)點(diǎn)或數(shù)據(jù)庫(kù)節(jié)點(diǎn)。通過(guò) DPF“分治”的處理,可伸縮性可在單一服務(wù)器(縱向擴(kuò)展)或跨服務(wù)器集群(橫向擴(kuò)展)中獲得增強(qiáng)。
使用 DPF最顯而易見(jiàn)的理由之一就是提高查詢工作負(fù)載和 INSERT/UPDATE/DELETE 操作的性能。DPF 還可以克服部分 DB2 的架構(gòu)限制。例如,在 DB2 中,對(duì) 4 KB 的頁(yè)面大小而言,表的大大小是 64 GB;對(duì)于 8 KB 的頁(yè)面大小而言,表的大大小是 128 GB;對(duì)于 16 KB 的頁(yè)面大小而言,表的大大小是 256 GB;對(duì)于 32 KB 的頁(yè)面大小而言,表的大大小是 512 GB。在 DB2 中,表和表空間的大小限制是根據(jù)每個(gè)分區(qū)進(jìn)行規(guī)定的??缍鄠€(gè)分區(qū)劃分?jǐn)?shù)據(jù)庫(kù)將允許您根據(jù)環(huán)境中分區(qū)數(shù)目的因數(shù)來(lái)增加表的大大小。
DB2數(shù)據(jù)庫(kù)分區(qū)實(shí)例圖:
數(shù)據(jù)是通過(guò)Hash算法均允地散列到不同的分區(qū)內(nèi)的,每個(gè)分區(qū)只負(fù)責(zé)處理自己的數(shù)據(jù)。用戶發(fā)出 SQL 操作后,被連接的分區(qū)被稱為 Coordinate Node,它負(fù)責(zé)處理用戶的請(qǐng)求,并根據(jù) Partition key(分區(qū)鍵)將用戶的請(qǐng)求分解成多個(gè)子任務(wù)交由不同分區(qū)并行處理,最后將不同分區(qū)的執(zhí)行結(jié)果經(jīng)過(guò)匯總返回給用戶,分區(qū)對(duì)應(yīng)用來(lái)說(shuō)是透明的。
在 DB2 中,數(shù)據(jù)庫(kù)分區(qū)可以部署在集群或 MPP(多臺(tái)單個(gè)CPU的機(jī)器上,建立的一個(gè)有多個(gè)partition的DB2實(shí)例,在其中的每臺(tái)機(jī)器上建立1個(gè)Partition)環(huán)境下,也就是說(shuō)數(shù)據(jù)庫(kù)分區(qū)分布在不同的機(jī)器上;數(shù)據(jù)庫(kù)分區(qū)也可以部署在同一臺(tái) SMP(一臺(tái)有多個(gè)CPU的機(jī)器上,建立的一個(gè)有多個(gè)分區(qū)的DB2實(shí)例,其中分區(qū)數(shù)量不超過(guò)已有CPU的數(shù)量)機(jī)器上,在同一臺(tái)機(jī)器上的分區(qū)我們稱為邏輯分區(qū)。同時(shí),我們還可以在集群或 MPP 環(huán)境下部署多個(gè)分區(qū),在集群或 MPP 每一個(gè)節(jié)點(diǎn)上部署多個(gè)邏輯分區(qū)。
采用數(shù)據(jù)庫(kù)分區(qū)有幾個(gè)好處,以下簡(jiǎn)單介紹一下:
查詢擴(kuò)展性
這是采用數(shù)據(jù)庫(kù)分區(qū)最主要的原因之一。將一個(gè)大的數(shù)據(jù)庫(kù)分成多個(gè)小的數(shù)據(jù)庫(kù)可以提高查詢的性能,因?yàn)槊總€(gè)數(shù)據(jù)庫(kù)分區(qū)擁有自己的一部分?jǐn)?shù)據(jù)。假設(shè)現(xiàn)在掃描10萬(wàn)條記錄,對(duì)一個(gè)單一分區(qū)的數(shù)據(jù)庫(kù)來(lái)講,該掃描操作需要數(shù)據(jù)庫(kù)管理器獨(dú)立掃描10萬(wàn)條記錄,如果將數(shù)據(jù)庫(kù)系統(tǒng)做成10個(gè)分區(qū),并將這10萬(wàn)條記錄平均分配到這10個(gè)分區(qū)上,那么每個(gè)數(shù)據(jù)庫(kù)分區(qū)的數(shù)據(jù)庫(kù)管理器只掃描10萬(wàn)記錄。
架構(gòu)限制
非分區(qū)數(shù)據(jù)庫(kù)的大的表取決于頁(yè)面大小,4K頁(yè)大支持64 GB,32K頁(yè)大支持512 GB數(shù)據(jù)量。表和表空間大小限制是每個(gè)分區(qū)上的限制,因此將數(shù)據(jù)庫(kù)分成N個(gè)分區(qū)可以將表的大尺寸增加為單個(gè)分區(qū)表大尺寸的N倍。內(nèi)存也可能是個(gè)限制,特別是在32位操作系統(tǒng)環(huán)境,因?yàn)槊總€(gè)數(shù)據(jù)庫(kù)分區(qū)管理并擁有自己的資源,因此通過(guò)數(shù)據(jù)庫(kù)分區(qū)可以克服這個(gè)限制。
數(shù)據(jù)庫(kù)裝載性能
數(shù)據(jù)庫(kù)分區(qū)可以并行裝載數(shù)據(jù)到所有數(shù)據(jù)庫(kù)分區(qū),極大減少單表的裝載時(shí)間,這對(duì)于像實(shí)時(shí)商業(yè)智能系統(tǒng)那樣對(duì)數(shù)據(jù)裝載的時(shí)間要求特別高的系統(tǒng)特別重要。
數(shù)據(jù)庫(kù)維護(hù)性能
將數(shù)據(jù)庫(kù)分散到多個(gè)數(shù)據(jù)庫(kù)分區(qū)服務(wù)器可以加快系統(tǒng)維護(hù),因?yàn)槊總€(gè)操作都運(yùn)行在分區(qū)所管理的一個(gè)數(shù)據(jù)子集上面,這樣可以通過(guò)數(shù)據(jù)庫(kù)分區(qū)進(jìn)一步減少創(chuàng)建索引的時(shí)間,減少搜集統(tǒng)計(jì)信息的時(shí)間,因?yàn)閞unstats僅運(yùn)行在一個(gè)數(shù)據(jù)庫(kù)分區(qū)上面,減少表重整(reorg)的時(shí)間。
備份/恢復(fù)性能
將數(shù)據(jù)庫(kù)分區(qū)到不同的數(shù)據(jù)庫(kù)服務(wù)器上可以大大減少數(shù)據(jù)庫(kù)備份的時(shí)間,這也是是決定是否使用數(shù)據(jù)庫(kù)分區(qū)很重要的一點(diǎn)。DB2 通過(guò)為每個(gè)表空間分配獨(dú)立的進(jìn)程或線程來(lái)實(shí)現(xiàn)備份和恢復(fù)操作的并行處理。在分區(qū)數(shù)據(jù)庫(kù)環(huán)境的備份中,每個(gè)分區(qū)的備份是獨(dú)立的,通過(guò)并行備份數(shù)據(jù)庫(kù)分區(qū)可以大大減少備份整個(gè)數(shù)據(jù)庫(kù)的時(shí)間。
日志
在高度活動(dòng)的系統(tǒng)中,數(shù)據(jù)庫(kù)日志的性能可能會(huì)限制系統(tǒng)的整體吞吐量。在分區(qū)數(shù)據(jù)庫(kù)環(huán)境中,每個(gè)分區(qū)有自己一套日志。當(dāng)大量插入、更新、刪除操作時(shí),多個(gè)數(shù)據(jù)庫(kù)分區(qū)可以提高性能,因?yàn)槿罩臼窃诿總€(gè)數(shù)據(jù)庫(kù)分區(qū)上并行寫(xiě)入,而且每個(gè)分區(qū)需要記錄的日志更少。
DB2隨數(shù)據(jù)量或處理器和分區(qū)的增加,可以提供近線性的擴(kuò)展能力,可是,數(shù)據(jù)庫(kù)分區(qū)是否提供最多的益處依賴于處理的工作負(fù)荷、大表的大小及其他因素。目前我們項(xiàng)目的數(shù)據(jù)倉(cāng)庫(kù)也是使用數(shù)據(jù)庫(kù)分區(qū),因?yàn)閿?shù)據(jù)量較大,并且業(yè)務(wù)對(duì)CPU的需求也比較大,但是機(jī)器較老,單機(jī)無(wú)法增加更多CPU,并且一個(gè)實(shí)例上要實(shí)現(xiàn)多個(gè)分區(qū),所以采用了另外一種SMP Cluster(多臺(tái)有多個(gè)CPU的機(jī)器上,建立的一個(gè)有多個(gè)partition的DB2 Instance,在其中的每臺(tái)機(jī)器上建立多個(gè)Partition)
Oracle分區(qū) | DB2分區(qū) | Oracle 10g語(yǔ)法 | DB2 V9語(yǔ)法 |
區(qū)間分區(qū)(Range Partitioning) | 表分區(qū)(Table Partitioning) | PARTITION BY RANGE | PARTITION BY RANGE |
哈希分區(qū)(Hash Partitioning) | 數(shù)據(jù)庫(kù)分區(qū)(Database Partitioning) | PARTITION BY HASH | DISTRIBUTE BY HASH |
列表分區(qū)(List Partitioning) | 帶生成列表分區(qū)(Table Partitioning With Generated Column) | PARTITION BY LIST | PARTITION BY RANGE |
不支持 | 多維集群(Multidimensional clustering) | 無(wú) | ORGANIZE BY DIMENSION |
以數(shù)據(jù)庫(kù)分區(qū)為例,以下是DB2的數(shù)據(jù)庫(kù)分區(qū)與Oracle哈希分區(qū)特性的比較:
DB2分區(qū) | Oracle分區(qū) | |
分區(qū)架構(gòu) | Share-nothing | Share-disk |
分區(qū)特性 | 每個(gè)CPU都有私有內(nèi)存區(qū)域和私有磁盤(pán)空間,并且兩個(gè)CPU不能訪問(wèn)相同磁盤(pán)空間,CPU之間的通訊通過(guò)網(wǎng)絡(luò)連接。 | 每個(gè)CPU使用自己的私有內(nèi)存區(qū)域,通過(guò)內(nèi)部通訊機(jī)制直接訪問(wèn)所有磁盤(pán)系統(tǒng)。 |
兩者區(qū)別 | 可伸縮性 —— 隨著數(shù)據(jù)庫(kù)的增長(zhǎng)可物理性的增加計(jì)算資源(也就是數(shù)據(jù)庫(kù)分區(qū)) | 無(wú)法通過(guò)增加物理的partition來(lái)給數(shù)據(jù)庫(kù)擴(kuò)容 |
語(yǔ)句示例 | partition_tablename表選擇partition_ id字段作為分區(qū)鍵 | hash_tablename表按照hash_part字段進(jìn)行哈希分區(qū),每個(gè)分區(qū)以循環(huán)的方式放置在表空間tbsp1和tbsp2中。 |
CREATE TABLE partition_tablename | CREATE TABLE hash_tablename |
此次分享旨在簡(jiǎn)單介紹DB2分區(qū)的概念,并與Oracle的分區(qū)做比較。分區(qū)數(shù)據(jù)庫(kù)為提高查詢工作負(fù)載和 DML操作的性能提供了便利。 如果數(shù)據(jù)量較小,性能提升并不會(huì)很明顯,所以分區(qū)數(shù)據(jù)庫(kù)一般用在數(shù)據(jù)量較大,查詢需求較頻繁的數(shù)據(jù)庫(kù)。其實(shí)使用Oracle好還是DB2好并沒(méi)有絕對(duì)的選擇。例如Oracle采用完全開(kāi)放策略,可以使客戶選擇最適合的解決方案,對(duì)開(kāi)發(fā)商全力支持;DB2則最適于海量數(shù)據(jù),并且在企業(yè)級(jí)的應(yīng)用最為廣泛,可伸縮性及并行性強(qiáng)。就像廣東的老火湯很有味道,很滋補(bǔ),中國(guó)人可能都喜歡喝,但是外國(guó)人覺(jué)得他們的羅宋湯那種很粘稠的才叫做湯,中國(guó)這種頂多叫Water!所以,自己需要的,才是最好的。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前名稱:DB2分區(qū)數(shù)據(jù)庫(kù)淺析-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://chinadenli.net/article40/jjcho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、云服務(wù)器、品牌網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、虛擬主機(jī)、移動(dòng)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容