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