本文教你如何設計大型Oracle數據庫希望對大家有所幫助
一概論
超大型系統的特點為
處理的用戶數一般都超過百萬有的還超過千萬數據庫的數據量一般超過TB;
系統必須提供實時響應功能系統需不停機運行要求系統有很高的可用性及可擴展性
為了能達到以上要求除了需要性能優越的計算機和海量存儲設備外還需要先進的數據庫結構設計和優化的應用系統
一般的超大型系統采用雙機或多機集群系統下面以數據庫采用Oracle 並行服務器為例來談談超大型數據庫設計方法
確定系統的ORACLE並行服務器應用劃分策略
數據庫物理結構的設計
系統硬盤的劃分及分配
備份及恢復策略的考慮
二Oracle並行服務器應用劃分策略
Oracle並行服務器允許不同節點上的多個INSTANCE實例同時訪問一個數據庫以提高系統的可用性可擴展性及性能Oracle並行服務器中的每個INSTANCE實例都可將共享數據庫中的表或索引的數據塊讀入本地的緩沖區中這就意味著一個數據塊可存在於多個INSTANCE實例的SGA區中那麼保持這些緩沖區的數據的一致性就很重要Oracle使用 PCM( Parallel Cache Management)鎖維護緩沖區的一致性Oracle同時通過I DLM(集成的分布式鎖管理器)實現PCM 鎖並通過專門的LCK進程實現INSTANCE實例間的數據一致
考慮這種情況INSTANCE對BLOCK X塊修改這時INSTANCE對BLOCK X塊也需要修改Oracle並行服務器利用PCM鎖機制使BLOCK X從INSTANCE 的SGA區寫入數據庫數據文件中又從數據文件中把BLOCK X塊讀入INSTANCE的SGA區中發生這種情況即為一個PINGPING使原來個MEMORY IO可以完成的工作變成個DISK IO和個 MEMORY IO才能夠完成如果系統中有過多的PING將大大降低系統的性能
Oracle並行服務器中的每個PCM鎖可管理多個數據塊PCM鎖管理的數據塊的個數與分配給一個數據文件的PCM鎖的個數及該數據文件的大小有關當INSTANCE 和INSTANCE 要操作不同的BLOCK如果這些BLOCK 是由同一個PCM鎖管理的仍然會發生PING這些PING稱為FALSE PING當多個INSTANCE訪問相同的BLOCK而產生的PING是TRUE PING
合理的應用劃分使不同的應用訪問不同的數據可避免或減少TRUE PING;通過給FALSE PING較多的數據文件分配更多的PCM鎖可減少 FALSE PING的次數增加PCM鎖不能減少TRUE PING
所以Oracle並行服務器設計的目的是使系統交易處理合理的分布在INSTANCE實例間以最小化PING同時合理的分配PCM鎖減少FALSE PING設計的關鍵是找出可能產生的沖突從而決定應用劃分的策略應用劃分有如下四種方法
根據功能模塊劃分不同的節點運行不同的應用
根據用戶劃分不同類型的用戶運行在不同的節點上
根據數據劃分不同的節點訪問不同的數據或索引
根據時間劃分不同的應用在不同的時間段運行
應用劃分的兩個重要原則是使PING最小化及使各節點的負載大致均衡
三數據庫物理結構的設計
數據庫物理結構設計包括確定表及索引的物理存儲參數確定及分配數據庫表空間確定初始的回滾段臨時表空間redo log files等並確定主要的初始化參數物理設計的目的是提高系統的性能整個物理設計的參數可以根據實際運行情況作調整
表及索引數據量估算及物理存儲參數的設置
表及索引的存儲容量估算是根據其記錄長度及估算的最大記錄數確定的在容量計算中考慮了數據塊的頭開銷及記錄和字段的頭開銷等等表及索引的initial和next存儲參數一般設為相等pctincrease設為
From:http://tw.wingwit.com/Article/program/Oracle/201311/18944.html