時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
本文教你如何設(shè)計大型Oracle數(shù)據(jù)庫,希望對大家有所幫助。
一、概論
超大型系統(tǒng)的特點為:
1、處理的用戶數(shù)一般都超過百萬,有的還超過千萬,數(shù)據(jù)庫的數(shù)據(jù)量一般超過1TB;
2、系統(tǒng)必須提供實時響應(yīng)功能,系統(tǒng)需不停機(jī)運(yùn)行,要求系統(tǒng)有很高的可用性及可擴(kuò)展性。
為了能達(dá)到以上要求,除了需要性能優(yōu)越的計算機(jī)和海量存儲設(shè)備外,還需要先進(jìn)的數(shù)據(jù)庫結(jié)構(gòu)設(shè)計和優(yōu)化的應(yīng)用系統(tǒng)。
一般的超大型系統(tǒng)采用雙機(jī)或多機(jī)集群系統(tǒng)。下面以數(shù)據(jù)庫采用Oracle 8.0.6并行服務(wù)器為例來談?wù)劤笮蛿?shù)據(jù)庫設(shè)計方法:
確定系統(tǒng)的ORACLE并行服務(wù)器應(yīng)用劃分策略
數(shù)據(jù)庫物理結(jié)構(gòu)的設(shè)計
系統(tǒng)硬盤的劃分及分配
備份及恢復(fù)策略的考慮
二、Oracle并行服務(wù)器應(yīng)用劃分策略
Oracle并行服務(wù)器允許不同節(jié)點上的多個INSTANCE實例同時訪問一個數(shù)據(jù)庫,以提高系統(tǒng)的可用性、可擴(kuò)展性及性能。Oracle并行服務(wù)器中的每個INSTANCE實例都可將共享數(shù)據(jù)庫中的表或索引的數(shù)據(jù)塊讀入本地的緩沖區(qū)中,這就意味著一個數(shù)據(jù)塊可存在于多個INSTANCE實例的SGA區(qū)中。那么保持這些緩沖區(qū)的數(shù)據(jù)的一致性就很重要。Oracle使用 PCM( Parallel Cache Management)鎖維護(hù)緩沖區(qū)的一致性,Oracle同時通過I DLM(集成的分布式鎖管理器)實現(xiàn)PCM 鎖,并通過專門的LCK進(jìn)程實現(xiàn)INSTANCE實例間的數(shù)據(jù)一致。
考慮這種情況:INSTANCE1對BLOCK X塊修改,這時INSTANCE2對BLOCK X塊也需要修改。Oracle并行服務(wù)器利用PCM鎖機(jī)制,使BLOCK X從INSTANCE 1的SGA區(qū)寫入數(shù)據(jù)庫數(shù)據(jù)文件中,又從數(shù)據(jù)文件中把BLOCK X塊讀入INSTANCE2的SGA區(qū)中。發(fā)生這種情況即為一個PING。PING使原來1個MEMORY IO可以完成的工作變成2個DISK IO和1個 MEMORY IO才能夠完成,如果系統(tǒng)中有過多的PING,將大大降低系統(tǒng)的性能。
Oracle并行服務(wù)器中的每個PCM鎖可管理多個數(shù)據(jù)塊。PCM鎖管理的數(shù)據(jù)塊的個數(shù)與分配給一個數(shù)據(jù)文件的PCM鎖的個數(shù)及該數(shù)據(jù)文件的大小有關(guān)。當(dāng)INSTANCE 1和INSTANCE 2要操作不同的BLOCK,如果這些BLOCK 是由同一個PCM鎖管理的,仍然會發(fā)生PING。這些PING稱為FALSE PING。當(dāng)多個INSTANCE訪問相同的BLOCK而產(chǎn)生的PING是TRUE PING。
合理的應(yīng)用劃分使不同的應(yīng)用訪問不同的數(shù)據(jù),可避免或減少TRUE PING;通過給FALSE PING較多的數(shù)據(jù)文件分配更多的PCM鎖可減少 FALSE PING的次數(shù),增加PCM鎖不能減少TRUE PING。
所以,Oracle并行服務(wù)器設(shè)計的目的是使系統(tǒng)交易處理合理的分布在INSTANCE實例間,以最小化PING,同時合理的分配PCM鎖,減少FALSE PING。設(shè)計的關(guān)鍵是找出可能產(chǎn)生的沖突,從而決定應(yīng)用劃分的策略。應(yīng)用劃分有如下四種方法:
1、根據(jù)功能模塊劃分,不同的節(jié)點運(yùn)行不同的應(yīng)用
2、根據(jù)用戶劃分,不同類型的用戶運(yùn)行在不同的節(jié)點上
3、根據(jù)數(shù)據(jù)劃分,不同的節(jié)點訪問不同的數(shù)據(jù)或索引
4、根據(jù)時間劃分,不同的應(yīng)用在不同的時間段運(yùn)行
應(yīng)用劃分的兩個重要原則是使PING最小化及使各節(jié)點的負(fù)載大致均衡。
三、數(shù)據(jù)庫物理結(jié)構(gòu)的設(shè)計
數(shù)據(jù)庫物理結(jié)構(gòu)設(shè)計包括確定表及索引的物理存儲參數(shù),確定及分配數(shù)據(jù)庫表空間,確定初始的回滾段,臨時表空間,redo log files等,并確定主要的初始化參數(shù)。物理設(shè)計的目的是提高系統(tǒng)的性能。整個物理設(shè)計的參數(shù)可以根據(jù)實際運(yùn)行情況作調(diào)整。
表及索引數(shù)據(jù)量估算及物理存儲參數(shù)的設(shè)置
表及索引的存儲容量估算是根據(jù)其記錄長度及估算的最大記錄數(shù)確定的。在容量計算中考慮了數(shù)據(jù)塊的頭開銷及記錄和字段的頭開銷等等。表及索引的initial和next存儲參數(shù)一般設(shè)為相等,pctincrease設(shè)為0。
關(guān)鍵詞標(biāo)簽:Oracle,數(shù)據(jù)庫
相關(guān)閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權(quán)語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法