超大型Oracle数据库的基础设计和优化设计

(整期优先)网络出版时间:2011-04-14
/ 2

超大型Oracle数据库的基础设计和优化设计

张舒

张舒ZhangShu(同济大学软件学院,天津300202)

(TongjiUniversityCollegeofSoftwareEngineering,Tianjin300202,China)

摘要:本文对Oracle数据库的基础设计的特点、并行服务器应用、划分策略、数据库物理结构的设计等《大型数据库分析与设计》学习中的重点章节进行总结和论述;并从大型数据库Oracle环境四个不同级别的调整分析入手,分析Oracle的系统结构和工作机理,从不同方面较全面地总结ORACLE数据库的优化调整方案。

Abstract:Thispapersummarizedanddiscussedthecharacterofbasicdesign,applicationofOPS,strategyofpartition,anddesignofphysicalstructureofOracledatabaseintheimportantchaptersof"AnalysisandDesignofLargeDataBase",analyzedtheprincipleofsystemarchitectureandworkfromthefour-gradeadjustmentoflargeOracledatabase;andalsosummarizedtheoptimizationdesignplanofOracledatabasefromdifferentaspects.

关键词:Oracle数据库;环境调整;优化设计;方案

Keywords:Oracledatabase;environmentadjustment;optimizationdesign;plan

中图分类号:TP393文献标识码:A文章编号:1006-4311(2011)10-0178-01

1概论

对于超大型系统,我们通常使用双机或多机集群系统。在本文中,我们探讨了设计超大型数据库所采用的方法,同时,以在数据库中使用ORACLE8.0.6并行服务器作出举例。

2ORACLE并行服务器应用划分策略

ORACLE并行服务器应用划分有如下四种方法:①按照功能的模块来区分,不一样的节点运行不一样的应用;②按照用户来区分,不一样类型的用户运行在不一样的节点之上;③按照数据来区分,对于不一样的数据或者索引要用不一样的节点进行访问;④按照时间来区分,不一样的应用要运行在不同的时间。

3数据库物理结构的设计

3.1表及索引数据量估算及物理存储参数的设置。表及索引的initial和next存储参数一般设为相等,pctincrease设为0。

3.2表空间的设计。在表空间设计时一般作以下考虑:①一般较大的表或索引单独分配一个表空间。②Readonly对象或Readmostly对象分成一组,存在对应的表空间中。③若表空间中的对象皆是readonly对象,可将表空间设置成readonly模式,在备份时,只读表空间只需备份一次。④高频率insert的对象分成一组,存在对应的表空间中。⑤增、删、改的对象分成一组,存在对应表空间中。⑥表和索引分别存于不同的表空间。⑦存于同一个表空间中的表(或索引)的extent大小最好成倍数关系,有利于空间的重利用和减少碎片。

3.3DBBLOCKSIZE。超大型数据库DBBLOCKSIZE一般在4KB至64KB,而最常用的是8KB、16KB或32KB。选用较大的DB

BLOCKSIZE可使INDEX的高度降低,也会提高IO效率。

3.4RedoLogFilesORACLE使用专用的进程redologwriter(LGWR)将日志写入日志文件。

3.5数据文件大小。我们应该采用标准的文件,这样能够缩减空间维护的时间。

3.6回滚段。回滚段一般建在专用的表空间中。每一个INSTANCE实例拥有各自的回滚段。

3.7临时表空间。临时表空间一般建在专用的表空间中。

4系统硬盘的划分及分配

考虑以下情况:主机1上有DRD服务1,该服务对应的数据文件有1、2、13、35、67等,这时如果主机2上的INSTANCE2需要读取数据文件13,通过DRD服务调度,主机1通过DRD服务访问磁盘阵列上的数据文件13,把INSTANCE2需要的数据读到内存,然后通过MEMORYIO把数据传到主机2的INSTANCE2。写操作是读操作的逆过程。

5备份及恢复策略的考虑

5.1ORACLE备份方法:①物理备份(用于磁盘介质损坏或数据文件损坏)。1)物理冷备份(offlinebackup)。2)物理热备份(onlinebackup)。3)归档日志文件备份(archivedlogfilebackup)。②逻辑备份(用于数据库中的某些对象被破坏或用户误操作)。备份策略的考虑主要在以下三个方面:1)存储的空间方面;2)针对于影响运行系统方面;3)影响恢复的时间方面。

5.2ORACLE的恢复方法采用物理备份恢复。以下三方面的恢复方法是由ORACLE提供:①数据库级的恢复;②表空间的恢复;③数据文件的恢复。数据库级的恢复要在以下条件中运行:关闭数据库但Mount的状态。然而,对于恢复表空间和数据文件时,可以运行数据库。

5.3采用逻辑备份恢复其适用条件是:其一,用户的操作失误导致数据的破坏;其二,在数据库中,破坏了某一个对象。

6优化设计

6.1数据库优化自由结构OFA(OptimalflexibleArchitecture)优化自由结构是在数据库中能够任意的分布逻辑数据对象。所以,应该把数据库中的逻辑对象按照它们的使用方法以及数据库受到物理结构的影响来对逻辑对象进行分类。

6.2充分利用系统全局区域SGA(SYSTEMGLOBALAREA)

SGA有以下3方面的内容:①字典缓冲区。②数据块缓冲区。③SQL共享池。④重做日志缓冲区。

6.3规范与反规范设计数据库规范的原则是在数据依赖中逐渐的解决不适宜的部分,将模式中每一个关系模式达到一定程度上的“一事一地”的模式。但是,有时为了能提高一些查询或者应用的性能,从而故意破坏规范规则,保留非范化限制,也就是反规范。

6.4索引Index的优化设计第一,使用聚簇。聚簇按照共同的码值把许多表中的数据都存储在一个Oracle块里,这样,Oracle块在同一时间就获得了两个表当中的数据。第二,管理组织索引,针对于查询大型表的时候,索引数据或许将数据块缓存空间用完,ORACL必须经常地通过磁盘读写来得到数据,所以,对大型表分区后,我们要按照有关的分区去建立分区索引。

6.5使用最优的数据库连接和SQL优化方案第一,采用直接的OLEDB数据库连接方式。通过ADO,我们可以采用传统的ODBC以及OLEDB两种方式对数据库进行连接。第二,采用ConnectionPool机制。其原理是在IIS+ASP体系中维持了一个连接缓冲池,基于此,下一个用户在访问的时候,能够直接在其中获得一个数据库的连接,同时避免了重新对数据库的连接。第三,高效率的对SQL语句进行设计。其一,可以使数据库的查询次数(系统资源的请求)减少;其二,在进行查询时,应尽可能的采用十分类似的SQL语句;其三,对动态SQL的使用可以进行约束。

参考文献:

[1]周渝斌.基于ORACLE8i的大型数据库技术讲座之一数据库优化篇[J].电脑编程技巧与维护,2002.

[2]瓮正科,王新英.Oracle8.XForWindowsNT实用教程[M].清华大学出版社,2001.