`
xgbjmxn
  • 浏览: 269418 次
  • 性别: Icon_minigender_1
  • 来自: 新乡
社区版块
存档分类
最新评论

超大型Oracle数据库应用系统的设计

    博客分类:
  • db
阅读更多
超大型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。
  ● 表空间的设计
  ORACLE数据库的表和索引是透过表空间tablespace存储在数据库中的。在tablespace设计时一般作以下考虑:
  1、一般较大的表或索引单独分配一个tablespace。
  2、Read only对象或Read mostly对象分成一组,存在对应的tablespace中。
  3、若tablespace中的对象皆是read only对象,可将tablespace设置成read only模式,在备份时,read only tablespace只需备份一次。
  4、高频率insert的对象分成一组,存在对应的tablespace中。
  5、增、删、改的对象分成一组,存在对应的tablespace中。
  6、表和索引分别存于不同的tablespace。
  7、存于同一个 tablespace中的表(或索引)的extent 大小最好成倍数关系,有利于空间的重利用和减少碎片。
  ● DB BLOCK SIZE
  超大型数据库DB BLOCK SIZE一般在4KB 至 64KB,而最常用的是8KB、 16KB或32KB。选用较大的DB BLOCK SIZE可使INDEX的高度降低,也会提高IO效率。
  ● Redo Log Files
  ORACLE 使用专用的进程redo log writer (LGWR)将日志写入日志文件。一般日志文件最好建在专用的镜像盘上。日志文件组的个数及文件的大小的设定与系统交易量的大小有关。ORACLE并行服务器中每个INSTANCE使用各自的一组rego log files。一般的每组日志文件的个数为3-7个,每个的大小为200MB-500MB。
  ● 数据文件大小
  建议用标准的文件大小,如200M、1GB、2GB、4GB、8GB等,可简化空间的维护工作。
  ● 回滚段
  回滚段一般建在专用的表空间中。每一个INSTANCE实例拥有各自的回滚段。设置回滚段的一般原则是: initial 及 next 存储参数的值是相等的,同时还是DB BLOCK SIZE的倍数。每个回滚段的minextents设为20,optimal参数的值保证回滚段缩小时不低于20个extents。
  ● 临时表空间
  临时表空间一般建在专用的表空间中。每一个INSTANCE实例拥有各自的临时表空间。这样使用临时表空间时不会有PING。设置临时表空间的initial=next。
  四、系统硬盘的划分及分配
  在多机集群环境下,ORACLE并行服务器通过操作系统提供的DRD服务来共享同一个数据库。每一个INSTANCE对数据库的数据文件的访问都是通过该数据文件所在的DRD服务进行的。
  考虑以下情况:主机1上有DRD服务1,该服务对应的数据文件有1、2、13、35、67等,这时如果主机2上的INSTANCE2需要读取数据文件 13,通过DRD服务调度,主机1通过DRD服务访问磁盘阵列上的数据文件13,把INSTANCE2需要的数据读到内存,然后通过MEMORY IO把数据传到主机2的INSTANCE2。写操作是读操作的逆过程。
  通过以上分析可知,系统硬盘的划分及分配的原则是尽量减少MEMORY IO。
  五、备份及恢复策略的考虑
  数据库的备份与恢复在系统设计中占很重要的地位。好的备份及恢复策略可以降低系统的运行风险,减少因硬件故障而造成的损失。
  ORACLE备份方法:
  1.物理备份
  将数据库的物理文件通过操作系统的命令或工具备份到备份介质上。物理备份往往用于存储介质故障时恢复数据库系统的数据。
  根据数据库运行方式的不同,可进行不同的物理备份:
  a)物理冷备份(offline backup)
  物理冷备份要求数据库在关闭(所有INSTANCEs停止)的情况下进行。这种备份必须是完全备份,即需备份所有的数据文件、控制文件(control file)、日志文件(redo log file)、初始参数文件等等。
  物理冷备份的步骤简单,但要求系统能够停止。
  b)物理热备份(online backup)
  物理热备份是在数据库系统正常运行的情况下进行的数据库备份。这种备份可以是数据库的部分备份,既备份数据库的某个表空间(tablespace)或某个数据文件(datafile),也可备份控制文件(control file)。
  物理热备份要求数据库在ARCHIVELOG模式下运行。这种备份一般用于应用系统不能停机的情况。
  c)归档日志文件备份(archived log file backup)
  要使数据库系统能够恢复到故障点前一时刻状态,或恢复到某指定时刻状态,数据库必须采用ARCHIVELOG模式。在ARCHIVELOG模式下,数据库系统会产生归档日志文件(archive log files)。归档日志文件也需备份到备份介质上。在恢复时,这些文件可使数据库恢复到最近状态。
  归档日志文件产生在指定目录下,这些文件一生成就可以备份到备份介质上,DBA可根据磁盘空间情况,定时将它们备份出去。
  2.逻辑备份
  逻辑备份是通过ORACLE提供的Export工具,将数据库的结构定义及其数据卸出到特定格式的文件中,并备份该文件。
  在实际应用中,逻辑备份与物理备份并用。一般来说,物理备份用于磁盘介质损坏或数据文件损坏;逻辑备份用于数据库中的某些对象被破坏或用户误操作。
  备份策略的考虑主要在以下三个方面:
  ● 存储空间
  ● 对现行运行的系统的性能影响
  ● 恢复时间的影响
  如果需要节省空间和恢复时间就需要增加备份的频率,但是备份操作会明显增加现行运行的系统的负载。、
  ORACLE的恢复方法
  根据不同的备份方法采用不同的恢复方法。
  使用物理备份恢复
  ORACLE提供了三种恢复手段:
  1、数据库级的恢复
  2、表空间(Tablespace)的恢复
  3、数据文件的恢复
  数据库级的恢复要求数据库在关闭但Mount的状态下进行。表空间及数据文件的恢复可在数据库运行的状态下进行。
  使用逻辑备份恢复
  当数据库中的某一对象被损坏,或用户的误操作使数据破坏(如误删表) 时可用逻辑备份恢复。用逻辑备份只能恢复到备份时刻的状态。
  总之,数据库系统的设计是一门高深的学问。本文是作者基于几年管理超大型计费系统经验和教训,参考ORACLE8.0.6文档的基础上完成的
分享到:
评论

相关推荐

    移动通信领域超大型ORACLE数据库的设计

    在移动通信领域,设计超大型ORACLE...综上所述,设计移动通信领域的超大型ORACLE数据库是一个涉及多方面考量的复杂工程,需要深入理解数据库原理,结合实际业务需求,灵活应用设计原则,确保系统的高效、可靠运行。

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

    超大型Oracle数据库的设计与优化涉及到多个关键环节,包括系统架构、并行服务器应用、数据库物理结构设计、日志管理以及性能调优等。 1. **并行服务器应用** Oracle并行服务器(OPS)是一种实现数据库负载均衡和高...

    浅谈超大型Oracle数据库的基础设计和优化设计.pdf

    因此,本文重点讨论了超大型Oracle数据库的基础设计和优化设计,旨在帮助用户更好地理解和应用Oracle数据库。 首先,我们来分析Oracle的逻辑结构和程序结构。Oracle的逻辑结构主要由存储单元和数据库对象组成。存储...

    超简单oracle数据库导入导出

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,它的强大功能和灵活性使其在企业级应用中备受青睐。本文将深入探讨“超简单Oracle数据库导入导出”这一主题,包括如何创建表空间、建立用户,以及如何...

    oracle数据库应用与开发总结范文.pdf

    在Oracle数据库应用与开发中,了解其系统结构至关重要。Oracle分布式数据库系统结构支持数据在多台计算机之间分布,提高系统的可用性和性能。客户/服务器系统结构是传统的数据库访问模式,其中客户端应用程序通过...

    Oracle数据库基础教程-参考答案

    - **Oracle 10g**:为网格计算设计,支持集群、工作负载和数据中心自动化,增加了数据库自我调整、高可用性、超大型数据库支持等功能,标志着Oracle向网格计算领域的重要迈进。 #### 五、数据库服务器安装与卸载...

    Linux上超大型Oracle9i数据库优化探索.pdf

    在Linux操作系统上运行超大型Oracle9i数据库需要考虑到操作系统的稳定性和效率。Linux以其开源、稳定和高性能的特点,成为了许多大型数据库系统的首选平台。文章中提到的64位Linux AS4操作系统提供了对大内存和多...

    Oracle数据库高级技术交流

    Oracle数据库的高级技术交流主要涉及的是Oracle的分区技术,这是一种针对超大型数据库(VLDB)进行性能优化和管理的关键特性。分区技术的核心理念是“分而治之”,它将大表和索引划分为可独立管理的小部分,使得管理...

    Oracle数据库基础知识讲义.pptx

    Oracle数据库是全球知名的关系型数据库管理系统,由美国甲骨文公司(Oracle Corporation)开发和维护。自1970年代以来,Oracle一直在数据库领域扮演着重要角色,不断更新和优化其产品以适应技术和市场的需求。 ...

    ORACLE数据库设计与优化.docx

    6. **超大型数据库应用系统设计**: - 超大型系统需要处理大量用户和数据,要求高可用性和可扩展性。 - 可采用双机或多机集群系统,如Oracle并行服务器,允许多个实例访问同一数据库。 - Oracle并行服务器通过PCM...

    Oracle数据库的查询优化

    ### Oracle数据库的查询优化 #### 一、何时需要考虑查询优化 在开发应用程序时,编写高效、优化的SQL语句对于提升系统性能至关...通过以上方法,可以在Oracle数据库中实现有效的查询优化,从而提高整体的应用性能。

    Oracle数据库简介.pdf

    1. **优越的性能**:Oracle数据库设计用于处理大规模事务和高并发操作,尤其适合大型和超大型应用系统。 2. **基于角色的权限管理**:通过角色分配权限,Oracle增强了安全性,并简化了数据库管理员对用户和权限的...

    Oracle数据库18天培训

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,由甲骨文公司开发,其英文名"Oracle"来源于古希腊神话中的神谕,寓意着精准和智慧。Oracle数据库以其复杂性和强大的功能著称,广泛应用于企业资源规划(ERP...

    01-oracle数据库简单使用1

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,尤其在企业级应用中占据重要地位。本文将围绕"01-oracle数据库简单使用1"的主题,详细介绍Oracle数据库的基础知识,包括Oracle服务、数据库版本、用户...

    oracle相关oracle相关oracle相关oracle相关oracle相关

    最后,"超大型ORACLE数据库应用系统的设计--Oracle专区--IT胖子2.htm"和"超大型ORACLE数据库应用系统的设计--Oracle专区--IT胖子1.htm"可能探讨了在处理大规模数据时,如何优化架构、负载均衡、分区策略等,这对于...

    Oracle超大型数据库逻辑迁移实践.pdf

    Oracle超大型数据库逻辑迁移是一项复杂且关键的任务,尤其在通信行业这样的大数据环境中。本文主要探讨了如何使用Oracle的Export/Import、Database Link和Data Pump技术进行高效的数据迁移。以下是对这些技术的详细...

    Oracle超大型数据库数据迁移方法论.pdf

    Oracle超大型数据库的数据迁移是一项复杂且关键的任务,尤其对于那些容量超过1T的数据库。本文主要探讨了在Oracle环境中,如何有效地进行此类数据库的数据迁移,尤其是逻辑迁移的策略和技术。 首先,数据库迁移有两...

Global site tag (gtag.js) - Google Analytics