淺談超大型Oracle數據庫的基礎設計和優(yōu)化設計
摘要:本文對Oracle數據庫的基礎設計的特點、并行服務器應用、劃分策略、數據庫物理結構的設計等《大型數據庫分析與設計》學習中的重點章節(jié)進行總結和論述;并從大型數據庫Oracle環(huán)境四個不同級別的調整分析入手,分析Oracle的系統(tǒng)結構和工作機理,從不同方面較全面地總結ORACLE數據庫的優(yōu)化調整方案。
本文引用地址:http://cafeforensic.com/article/202231.htmAbstract: This paper summarized and discussed the character of basic design, application of OPS, strategy of partition, and design of physical structure of Oracle data base in the important chapters of Analysis and Design of Large Data Base, analyzed the principle of system architecture and work from the four-grade adjustment of large Oracle data base; and also summarized the optimization design plan of Oracle data base from different aspects.
關鍵詞:Oracle數據庫;環(huán)境調整;優(yōu)化設計;方案
Key words: Oracle data base;environment adjustment;optimization design;plan
1 概論
對于超大型系統(tǒng),我們通常使用雙機或多機集群系統(tǒng)。在本文中,我們探討了設計超大型數據庫所采用的方法,同時,以在數據庫中使用ORACLE 8.0.6并行服務器作出舉例。
2 ORACLE并行服務器應用劃分策略
ORACLE并行服務器應用劃分有如下四種方法:①按照功能的模塊來區(qū)分,不一樣的節(jié)點運行不一樣的應用;②按照用戶來區(qū)分,不一樣類型的用戶運行在不一樣的節(jié)點之上;③按照數據來區(qū)分,對于不一樣的數據或者索引要用不一樣的節(jié)點進行訪問;④按照時間來區(qū)分,不一樣的應用要運行在不同的時間。
3 數據庫物理結構的設計
3.1 表及索引數據量估算及物理存儲參數的設置。表及索引的initial和next存儲參數一般設為相等,pctincrease設為0。
3.2 表空間的設計。在表空間設計時一般作以下考慮:①一般較大的表或索引單獨分配一個表空間。②Read only對象或Read mostly對象分成一組,存在對應的表空間中。③若表空間中的對象皆是read only對象,可將表空間設置成read only模式,在備份時,只讀表空間只需備份一次。④高頻率insert的對象分成一組,存在對應的表空間中。⑤增、刪、改的對象分成一組,存在對應表空間中。⑥表和索引分別存于不同的表空間。⑦存于同一個表空間中的表(或索引)的extent 大小最好成倍數關系,有利于空間的重利用和減少碎片。
3.3 DB BLOCK SIZE 。超大型數據庫DB BLOCK SIZE一般在4KB 至 64KB,而最常用的是8KB、 16KB或32KB。選用較大的DB
BLOCK SIZE可使INDEX的高度降低,也會提高IO效率。
3.4 Redo Log Files ORACLE 使用專用的進程redo log writer (LGWR)將日志寫入日志文件。
3.5 數據文件大小。
我們應該采用標準的文件,這樣能夠縮減空間維護的時間。
3.6 回滾段。回滾段一般建在專用的表空間中。每一個INSTANCE實例擁有各自的回滾段。
3.7 臨時表空間。臨時表空間一般建在專用的表空間中。
4 系統(tǒng)硬盤的劃分及分配
考慮以下情況:主機1上有DRD服務1,該服務對應的數據文件有1、2、13、35、67等,這時如果主機2上的INSTANCE2需要讀取數據文件13,通過DRD服務調度,主機1通過DRD服務訪問磁盤陣列上的數據文件13,把INSTANCE2需要的數據讀到內存,然后通過MEMORY IO把數據傳到主機2的INSTANCE2。寫操作是讀操作的逆過程。
5 備份及恢復策略的考慮
5.1 ORACLE備份方法:①物理備份 (用于磁盤介質損壞或數據文件損壞)。1)物理冷備份(offline backup)。2)物理熱備份(online backup)。3)歸檔日志文件備份(archived log file backup)。②邏輯備份(用于數據庫中的某些對象被破壞或用戶誤操作)。備份策略的考慮主要在以下三個方面:1)存儲的空間方面;2)針對于影響運行系統(tǒng)方面;3)影響恢復的時間方面。
5.2 ORACLE的恢復方法 采用物理備份恢復。以下三方面的恢復方法是由ORACLE提供:①數據庫級的恢復;②表空間的恢復;③數據文件的恢復。數據庫級的恢復要在以下條件中運行:關閉數據庫但Mount的狀態(tài)。然而,對于恢復表空間和數據文件時,可以運行數據庫。
5.3 采用邏輯備份恢復 其適用條件是:其一,用戶的操作失誤導致數據的破壞;其二,在數據庫中,破壞了某一個對象。
6 優(yōu)化設計
6.1 數據庫優(yōu)化自由結構OFA(Optimal flexible Architecture) 優(yōu)化自由結構是在數據庫中能夠任意的分布邏輯數據對象。所以,應該把數據庫中的邏輯對象按照它們的使用方法以及數據庫受到物理結構的影響來對邏輯對象進行分類。
6.2 充分利用系統(tǒng)全局區(qū)域SGA(SYSTEM GLOBAL AREA)
SGA有以下3方面的內容:①字典緩沖區(qū)。②數據塊緩沖區(qū)。③SQL共享池。④重做日志緩沖區(qū)。
6.3 規(guī)范與反規(guī)范設計數據庫 規(guī)范的原則是在數據依賴中逐漸的解決不適宜的部分,將模式中每一個關系模式達到一定程度上的“一事一地”的模式。但是,有時為了能提高一些查詢或者應用的性能,從而故意破壞規(guī)范規(guī)則,保留非范化限制,也就是反規(guī)范。
6.4 索引Index的優(yōu)化設計 第一,使用聚簇。聚簇按照共同的碼值把許多表中的數據都存儲在一個Oracle塊里,這樣,Oracle塊在同一時間就獲得了兩個表當中的數據。第二,管理組織索引,針對于查詢大型表的時候,索引數據或許將數據塊緩存空間用完,ORACL必須經常地通過磁盤讀寫來得到數據,所以,對大型表分區(qū)后,我們要按照有關的分區(qū)去建立分區(qū)索引。
6.5 使用最優(yōu)的數據庫連接和SQL優(yōu)化方案 第一,采用直接的OLE DB數據庫連接方式。通過ADO,我們可以采用傳統(tǒng)的ODBC以及OLE DB兩種方式對數據庫進行連接。第二,采用Connection Pool機制。其原理是在IIS+ASP體系中維持了一個連接緩沖池,基于此,下一個用戶在訪問的時候,能夠直接在其中獲得一個數據庫的連接,同時避免了重新對數據庫的連接。第三,高效率的對SQL語句進行設計。其一,可以使數據庫的查詢次數(系統(tǒng)資源的請求)減少;其二,在進行查詢時,應盡可能的采用十分類似的SQL語句;其三,對動態(tài)SQL的使用可以進行約束。
評論