加急见刊

ORACLE平行服务器应用

来源:投稿网 时间:2022-11-25 10:00:04

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将日志写入日志文件。

3.5数据文件大小。

我们应该使用标准文件,以减少空间维护的时间。

3.6回滚段。回滚段一般建在特殊的表空间中。每个INSTANCE实例都有自己的回滚段。

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

4.系统硬盘的划分和分配。

考虑到以下情况:主机1上有DRD服务1,服务对应的数据文件有1.2.13.35.67等。此时,如果主机2上的INSTANCE2需要读取数据文件13,则主机1通过DRD服务访问磁盘阵列上的数据文件13,读取INSTANCE2所需的数据,然后通过MEMORYIO将数据传输到主机2的INSTANCE2。写作操作是阅读操作的逆过程。

考虑备份和恢复策略。

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有以下三个方面:①字典缓冲区。②数据块缓冲区。③SQL共享池。④重做日志缓冲区。

6.3规范和反规范设计数据库规范的原则是逐步解决数据依赖中不合适的部分,并在一定程度上实现模式中每个关系模式的一事一地模式。然而,有时为了提高一些查询或应用程序的性能,故意破坏规范规则,保留非标准化限制,即反规范。

6.4索引Index的优化设计是第一个,使用集群。集群根据共同的代码值将许多表中的数据存储在Oracle块中,以便Oracle块同时获得两个表中的数据。第二,管理组织索引。在查询大型表时,索引数据可能会耗尽数据块的缓存空间。Oracl必须经常通过磁盘读写获取数据。因此,对于大型表分区,我们应该根据相关分区建立分区索引。

6.5使用最佳数据库连接和SQL优化方案。首先,使用直接OLEDB数据库连接。通过ADO,我们可以通过传统的ODBC和OLEDB连接数据库。第二,采用ConnectionPol机制。其原理是在IIS+ASP系统中保持连接缓冲池。基于此,下一个用户可以在访问时直接获得数据库连接,避免重新连接数据库。第三,高效设计SQL语句。一是减少数据库查询次数(系统资源要求);二是查询时尽量使用非常相似的SQL语句;第三,可以限制动态SQL的使用。