如何設計大型Oracle數(shù)據(jù)庫
下文中將教給大家大型Oracle數(shù)據(jù)庫的設計方法,希望對大家能夠有所幫助。
一、超大型系統(tǒng)的特點為:
1、處理的用戶數(shù)一般都超過百萬,有的還超過千萬,數(shù)據(jù)庫的數(shù)據(jù)量一般超過1TB;
2、系統(tǒng)必須提供實時響應功能,系統(tǒng)需不停機運行,要求系統(tǒng)有很高的可用性及可擴展性。
為了能達到以上要求,除了需要性能優(yōu)越的計算機和海量存儲設備外,還需要先進的數(shù)據(jù)庫結(jié)構(gòu)設計和優(yōu)化的應用系統(tǒng)。
一般的超大型系統(tǒng)采用雙機或多機集群系統(tǒng)。下面以數(shù)據(jù)庫采用Oracle 8.0.6并行服務器為例來談談超大型數(shù)據(jù)庫設計方法:
確定系統(tǒng)的ORACLE并行服務器應用劃分策略
數(shù)據(jù)庫物理結(jié)構(gòu)的設計
系統(tǒng)硬盤的劃分及分配
備份及恢復策略的考慮
二、Oracle并行服務器應用劃分策略
Oracle并行服務器允許不同節(jié)點上的多個INSTANCE實例同時訪問一個數(shù)據(jù)庫,以提高系統(tǒng)的可用性、可擴展性及性能。Oracle并行服務器中的每個INSTANCE實例都可將共享數(shù)據(jù)庫中的表或索引的數(shù)據(jù)塊讀入本地的緩沖區(qū)中,這就意味著一個數(shù)據(jù)塊可存在于多個INSTANCE實例的SGA區(qū)中。那么保持這些緩沖區(qū)的數(shù)據(jù)的一致性就很重要。Oracle使用 PCM( Parallel Cache Management)鎖維護緩沖區(qū)的一致性,Oracle同時通過I DLM(集成的分布式鎖管理器)實現(xiàn)PCM 鎖,并通過專門的LCK進程實現(xiàn)INSTANCE實例間的數(shù)據(jù)一致。
考慮這種情況:INSTANCE1對BLOCK X塊修改,這時INSTANCE2對BLOCK X塊也需要修改。Oracle并行服務器利用PCM鎖機制,使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并行服務器中的每個PCM鎖可管理多個數(shù)據(jù)塊。PCM鎖管理的數(shù)據(jù)塊的個數(shù)與分配給一個數(shù)據(jù)文件的PCM鎖的個數(shù)及該數(shù)據(jù)文件的大小有關。當INSTANCE 1和INSTANCE 2要操作不同的BLOCK,如果這些BLOCK 是由同一個PCM鎖管理的,仍然會發(fā)生PING。這些PING稱為FALSE PING。當多個INSTANCE訪問相同的BLOCK而產(chǎn)生的PING是TRUE PING。
合理的應用劃分使不同的應用訪問不同的數(shù)據(jù),可避免或減少TRUE PING;通過給FALSE PING較多的數(shù)據(jù)文件分配更多的PCM鎖可減少 FALSE PING的次數(shù),增加PCM鎖不能減少TRUE PING。
所以,Oracle并行服務器設計的目的是使系統(tǒng)交易處理合理的分布在INSTANCE實例間,以最小化PING,同時合理的分配PCM鎖,減少FALSE PING。設計的關鍵是找出可能產(chǎn)生的沖突,從而決定應用劃分的策略。應用劃分有如下四種方法:
1、根據(jù)功能模塊劃分,不同的節(jié)點運行不同的應用
2、根據(jù)用戶劃分,不同類型的用戶運行在不同的節(jié)點上
3、根據(jù)數(shù)據(jù)劃分,不同的節(jié)點訪問不同的數(shù)據(jù)或索引
4、根據(jù)時間劃分,不同的應用在不同的時間段運行
應用劃分的兩個重要原則是使PING最小化及使各節(jié)點的負載大致均衡。
三、數(shù)據(jù)庫物理結(jié)構(gòu)的設計
數(shù)據(jù)庫物理結(jié)構(gòu)設計包括確定表及索引的物理存儲參數(shù),確定及分配數(shù)據(jù)庫表空間,確定初始的回滾段,臨時表空間,redo log files等,并確定主要的初始化參數(shù)。物理設計的目的是提高系統(tǒng)的性能。整個物理設計的參數(shù)可以根據(jù)實際運行情況作調(diào)整。
表及索引數(shù)據(jù)量估算及物理存儲參數(shù)的設置
表及索引的存儲容量估算是根據(jù)其記錄長度及估算的***記錄數(shù)確定的。在容量計算中考慮了數(shù)據(jù)塊的頭開銷及記錄和字段的頭開銷等等。表及索引的initial和next存儲參數(shù)一般設為相等,pctincrease設為0。
大型Oracle數(shù)據(jù)庫還是非常有用的,在平時的工作中會給大家?guī)秃芏嗝?,所以大?**是掌握大型Oracle數(shù)據(jù)庫設計方法,便于大家日后使用。
【編輯推薦】