当前位置:  数据库>oracle

教你设计大型Oracle数据库

    来源: 互联网  发布时间:2014-09-07

    本文导语:  一、概论  超大型系统的特点为:  1、处理的用户数一般都超过百万,有的还超过千万,数据库的数据量一般超过1TB;  2、系统必须提供实时响应功能,系统需不停机运行,要求系统有很高的可用性及可扩展性。  为...

一、概论
  超大型系统的特点为:
  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。

    
 
 

您可能感兴趣的文章:

  • 数据库设计和同步软件 DbWench
  • 数据库设计和建模工具 DB Visual ARCHITECT
  • 数据库设计工具 Navicat Data Modeler
  • 数据库设计工具 YAD_Designer
  • Oracle数据库设计规范化的五个要求 iis7站长之家
  • 可视化数据库设计工具 DbWrench
  • linux下有什么好用的数据库设计工具?
  • applet如何实现对数据库(access)的操作,征求设计方案。
  • 这学期,我们有数据库的课程设计,写一个软件,用Java来作容易吗?
  • 在线数据库设计工具 WWW SQL Designer
  • 一个数据库设计问题
  • JBuilder中数据库设计的问题?
  • Oracle9i 数据库设计指引白皮书全集下载
  • 讨论:数据库操作的设计模式
  • MySQL 数据库设计复习笔记及项目实战
  • 讨论:J2EE数据库类的设计模式!
  • 分享20个数据库设计的最佳实践
  • mysql 数据库设计
  • 请问:大家用JBuilder设计桌面数据库应用程序时直接用dbswing,还是jdbc+swing?
  • 在一个比较大OA系统数据库设计时,有些表的主键设置成自增还是人工取最大值好呢,欢迎讨论
  • 协议的设计一般采用结构体进行数据打包,在协议设计的结构体中能不能使用指针 ?
  • 数据流图设计软件 FlowDesigner
  • 请问如何设计tcp数据包啊??
  • 3分钟数据监控的设计,请教.
  • 设计一个嵌入式透明网关,从eth0接收到的数据发送到eth1,从eth0接收到的数据转发到eth1,用原始套接字做的,但是eth0接收到eth1的数据又发给了eth1,这样在两者之间形成循环,怎么办?
  • 网页设计者需要了解的_网页字体大小数据参考
  • 善用Oracle表空间设计提升数据库性能
  • 设计问题请大家讨论一下,对于这种数据源,分页显示中是将结果保存在内存中呢,还是每页查一次好?
  • Oracle数据库设计规范化的五个要求
  • 分享网站群发站内信数据库表设计
  • 加快JDBC设计中JSP访问数据库
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何能在网上找到一个可以提供ORACLE进行JSP设计的主机展示我的作品啊,付费也行
  • 浅析基于Oracle案例知识库设计
  • jsp + oracle ?????(我的毕业设计????)
  • ORACLE 分区表的设计
  • 优化Oracle库表设计的若干方法
  • Web前端设计:Html强制不换行<nobr>标签用法代码示例
  • 智能在线表单设计器 FreeForm智能在线表单设计器
  • GOF设计模式简介- 责任链模式
  • 起个贴子,大家伙来归纳一下Java本身设计中的设计模式
  • Web前端设计:html上标<sup>标签与下标<sub>标签详解
  • 学习JAVA程序设计,有没有《WINDOWS程序设计》这样的经典书籍?
  • Docker扁平化网络设计与实现
  • QTdesigner设计好界面后,怎么写代码啊?是不是QTdesigner只是设计界面啊?(需祥解)
  • 方法体的设计实际上是对方法中自变量的设计?
  • 刚刚接触Unix系统和Unix编程。急需Unix下多线程程序设计和网络Socket程序设计方面的资料。
  • 一个老程序员的观点:Linux程序/内核设计是一门技术,Windows下的可扩展、可复用架构设计是一门艺术!
  • 高分求教,设计问题,请给设计意见
  • Android界面设计(APP设计趋势 左侧隐藏菜单右边显示content)
  • 毕业设计开题了:基于linux的个人防火墙的设计于实现,给点建议
  • PHP 设计器
  • 大家可以探讨一下Servlet的设计模式么?
  • 一份课程设计作业:模拟UNIX文件系统的设计及实现
  • 电子设计自动化软件 Fritzing
  • 名片设计软件 gLabels
  • 各位,市面上有什么设计模式的书么
  • 契约式设计工具 Contract4J


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3