超大型Oracle数据库应用系统的设计方法(上)

 
   | |

导读:为了能达到用户的要求,除了需要性能优越的计算机和海量存储设备外,还需要先进的数据库结构设计和优化的应用系统。

关键词:Oracle 数据库 应用系统 设计

正在加载数据...

  这篇文章主要介绍了几种超大型Oracle数据库应用系统的设计方法,详细内容请参考下文。

  一、概论

  超大型系统的特点为:

  1、处理的用户数一般都超过百万,有的还超过千万,数据库的数据量一般超过1TB;

  2、系统必须提供实时响应功能,系统需不停机运行,要求系统有很高的可用性及可扩展性。

  为了能达到以上要求,除了需要性能优越的计算机和海量存储设备外,还需要先进的数据库结构设计和优化的应用系统。

  一般的超大型系统采用双机或多机集群系统。下面以数据库采用Oracle 8.0.6并行服务器为例来谈谈超大型数据库设计方法:

  确定系统的ORACLE并行服务器应用划分策略

  数据库物理结构的设计

  系统硬盘的划分及分配

  备份及恢复策略的考虑

  二、Oracle并行服务器应用划分策略

  Oracle并行服务器允许不同节点上的多个INSTANCE实例同时访问一个数据库,以提高系统的可用性、可扩展性及性能。Oracle并行服务器中的每个INSTANCE实例都可将共享数据库中的表或索引的数据块读入本地的缓冲区中,这就意味着一个数据块可存在于多个INSTANCE实例的SGA区中。那么保持这些缓冲区的数据的一致性就很重要。Oracle使用 PCM( Parallel Cache Management)锁维护缓冲区的一致性,Oracle同时通过I DLM(集成的分布式锁管理器)实现PCM 锁,并通过专门的LCK进程实现INSTANCE实例间的数据一致。

  考虑这种情况:INSTANCE1对BLOCK X块修改,这时INSTANCE2对BLOCK X块也需要修改。Oracle并行服务器利用PCM锁机制,使BLOCK X从INSTANCE 1的SGA区写入数据库数据文件中,又从数据文件中把BLOCK X块读入INSTANCE2的SGA区中。发生这种情况即为一个PING。PING使原来1个MEMORY IO可以完成的工作变成2个DISK IO和1个 MEMORY IO才能够完成,如果系统中有过多的PING,将大大降低系统的性能。

  Oracle并行服务器中的每个PCM锁可管理多个数据块。PCM锁管理的数据块的个数与分配给一个数据文件的PCM锁的个数及该数据文件的大小有关。当INSTANCE 1和INSTANCE 2要操作不同的BLOCK,如果这些BLOCK 是由同一个PCM锁管理的,仍然会发生PING。这些PING称为FALSE PING。当多个INSTANCE访问相同的BLOCK而产生的PING是TRUE PING。

  合理的应用划分使不同的应用访问不同的数据,可避免或减少TRUE PING;通过给FALSE PING较多的数据文件分配更多的PCM锁可减少 FALSE PING的次数,增加PCM锁不能减少TRUE PING。

  所以,Oracle并行服务器设计的目的是使系统交易处理合理的分布在INSTANCE实例间,以最小化PING,同时合理的分配PCM锁,减少FALSE PING。设计的关键是找出可能产生的冲突,从而决定应用划分的策略。应用划分有如下四种方法:

  1、根据功能模块划分,不同的节点运行不同的应用

  2、根据用户划分,不同类型的用户运行在不同的节点上

  3、根据数据划分,不同的节点访问不同的数据或索引

  4、根据时间划分,不同的应用在不同的时间段运行

  应用划分的两个重要原则是使PING最小化及使各节点的负载大致均衡。

  三、数据库物理结构的设计

  数据库物理结构设计包括确定表及索引的物理存储参数,确定及分配数据库表空间,确定初始的回滚段,临时表空间,redo log files等,并确定主要的初始化参数。物理设计的目的是提高系统的性能。整个物理设计的参数可以根据实际运行情况作调整。

  表及索引数据量估算及物理存储参数的设置

  表及索引的存储容量估算是根据其记录长度及估算的最大记录数确定的。在容量计算中考虑了数据块的头开销及记录和字段的头开销等等。表及索引的initial和next存储参数一般设为相等,pctincrease设为0。

原文出处:http://tech.ccidnet.com/art/1107/20090608/1792267_1.html
 
来源:赛迪网    作者:yan    
 
 
 
 
 

Oracle数据库设计

 
在使用Oracle数据库时,如何选择表中的主键列(primary key columns ),在选择是需要注意哪些问题,专家将给出解答。
 
在进行软件开发与设计时,使用特定的开发语言,比如C++,能否链接Oracle数据库,这是程序员比较关心的问题,而Oracle C++调用接口就是这样一个工具。
 
Oracle数据库中,传统表和索引组织表(IOT)有哪些区别,在特定的环境中如何选用两种表,专家给出了建议。
 
在Oracle 9i中,如果有一个图像文件大小超过了1GB,使用什么方法来对它进行存储和检索工作,专家将给出参考方法。
 
我是个Oracle数据库的初学者。我想使用Oracle复制功能。谁能帮我讲讲Oracle数据库复制的步骤?非常感谢。

热门技术手册排行

 

在本次的技术手册中,我们为您提供了PL/SQL的基础知识以及专家指导,包括了PL/SQL中的数据类型简介、PL/SQL函数与触发器以及PL/SQL中的存储过程等,相信您无论是高手还是菜鸟都可以获得有帮助的信息。

 

本系列文章由三部分组成,为Oracle数据库管理员(DBA)面试成功的必备手册。本专题内容囊括从DBA最初的面试开始,从写“杀手简历”到求职信、到面试过程到Oracle认证再到上升到公司高层最后到你成为公司里的明星DBA。专家为你一一指点迷津,最终让你登上成功的宝座。

 

要成为一名DBA,你需要具备哪些素质?DBA的薪酬待遇如何?DBA的职业道路究竟可以走向何方?我们将在本次的技术手册中为您一一解答。

 

在本次技术手册中,我们将对SQL Server存储过程的调试进行详细的介绍,包括了基础的调试方法和在调试过程中出现的T-SQL性能问题和解决方法。

 

本技术专题主要围绕sql server设计这个话题展开,侧重介绍了sql server集簇索引的设计、如何创建sql server索引、如何优化索引、索引的能与不能、处理sql server 2000索引碎片技巧以及维护sql server索引以实现查询优化等等。

查看更多
 
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
电子邮件地址:
请输入您的电子邮件地址
密码:
下次自动登录