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