您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 设计及方案 > 北京邮电大学软件工程研究生的课程---数据库设计开发-44
北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4ORACLE数据库规划与实施•ORACLE为信息系统提供了一个开放、综合、集成的方法。使用ORACLE数据库进行信息系统开发的步骤可以归纳为如下过程:建ORACLE数据库建表空间建回滚段建用户建数据库对象开发•本节介绍ORACLE数据库的规划与实施:4.4.1数据库应用程序类型4.4.4ORACLE对象设计4.4.2ORACLE空间设计4.4.5DBA工具4.4.3ORACLE安全设计北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4.1数据库应用程序类型•规划和配置数据库,需要知道将要操作数据库的事务有什么,这些事务访问数据库的频率有多大。针对不同的事务访问情形,对内存的要求不同,磁盘I/O操作的情形也不同。只有设置合适的ORACLE实例,才能使数据库应用系统获得快速、准确、可靠的事务响应。ORACLE既可以设置成处理长的密集型事务的系统,也可以设置成处理大量的小型快速事务的系统。有三种通用的数据库设置类型:–联机事务处理(OLTP)–决策支持系统(DSS)–批量作业系统–混合系统北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4.1数据库应用程序类型–联机事务处理(OLTP)OLTP系统是一个包含繁重DML的应用,其面向事务的活动主要包括更新,但也包括一些插入和删除。典型的例子是用于航空公司和旅馆的预定系统。OLTP系统可以允许有很高的并发性。OLTP的特点是有大量短的事务高频率地访问数据库,每一个事务操作的数据量不是很多,但事务比较频繁,而且要求数据库响应事务的速度快。一般来说OLTP系统需要24*7地响应对数据库的请求。根据这些要求,我们应该从以下几方面考虑:1)大量的小回滚段。因为事务都不太大,对回滚段空间的需求不可能很大,但事务数量多,引发回滚段数量的增大。应该创建大量小的回滚段,把事务对回滚段的争用减到最小。标准的配置可以考虑每四个活动事务用一个回滚段,每个事务接受一个区间。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4.1数据库应用程序类型–联机事务处理(OLTP)2)OLTP应用的表可能插入或者删除记录,所以存放易变表和索引的表空间应被分配到它们最大的期望容量。3)适当的估计重写日志缓冲区和日志文件大小,减少日志写和日志切换的频率,尽可能降低对响应事务请求的影响,另外频繁的检查点也可能影响事务响应速度。4)拥有大型共享池。不同客户可能执行同样的SQL语句,SQL在共享池中缓冲,性能可提高(应用程序的SQL语句应当统一,另外WHERE中使用绑定变量查询而不是直接的值查询,使不同值的查询共享SQL的执行计划)。5)数据拥有单独的索引。OLTP的事务请求基本在规划设计范围之内,建立单独有效的索引,并在独立的表空间中创建主键和其他索引,且存放在独立的存储器上。6)使用小型临时段。需要小的排序应在内存中完成,尽量避免OLTP系统对临时段的请求进入磁盘。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4.1数据库应用程序类型–决策支持系统(DSS)DSS系统通常是一个大型的、包含历史性内容的只读数据库,通常用于简单的固定查询或特别查询。夜间处理任务被认为是DSS,查询(选择)是DSS的主要活动。根据这些要求,我们应该从以下几方面考虑:1)拥有少量的较大的回滚段。大型工作要创建大型的回滚段,使用SETTRANSACTIONUSERROLLBACKSEGMENT语句使事务强制使用专用回滚段。2)为分类排序创建大型临时表空间,DSS经常超出内存的使用空间而从内存转入磁盘(临时表空间)。3)使用较小的共享SQL区域而采用较大的数据缓冲区高速缓冲。DSS中SQL的执行频率并不大,无需考虑SQL语句的共享,但应增加数据库缓冲区高速缓冲的容量,使得更多的数据块和回滚段在内存中高速缓冲。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4.1数据库应用程序类型–决策支持系统(DSS)4)如前所述,DSS希望Oracle块一次读取尽可能多的行。因为DSS查询一般触发整个表扫描,所以希望通过读取多个连续的块使系统读取的块达到最大值。把DB_BLOCK_SIZE和DB_FILE_MULTIBLOCK_READ_COUNT参数设置得尽可能高些。5)运行的SQL应当删除不必要的排序并充分利用索引,以减少对临时表空间和回滚段的压力。2种方法:在没有可以选择的良好索引时不使用任何索引或屏蔽使用某些索引(参见4.3);使用位图索引。6)不要在DSS应用代码中使用绑定变量。在OLTP下,希望最小化应用进程开销(语法分析)。然而,DSS的查询,语法分析占用整个查询时间的比例会更小。假如使用绑定变量,优化程序不能调用它所存储的统计信息(通过ANALYZE命令)以选出存取数据的最好方法。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4.1数据库应用程序类型–批量作业系统批作业处理系统是作用于数据库的非交互性的自动应用。它通常含有繁忙DML语句并有较低的并发性。另外还有一些其他的应用类型:OLAP(联机分析处理)系统可提供分析服务。该系统在数学、统计学、集合以及大量的计算方面区别于OLTP或DSS模型。可以把OLAP看作是在OLTP系统或DSS之上的一个扩展或一个附加的功能层次。地理信息系统(GeographicInformationSystems,GIS)或有关空间的数据库和OLAP数据库相集成,提供图表的映射能力。例如用于社会统计的人口统计数据库。VCDB(可变基数数据库),这类数据库通常被用作一个处理系统的数据库后端,这样就会导致在数据处理期间,数据库中的表显著地增长或收缩。基数是指在一个给定时间里一个表中行的数目。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4.1数据库应用程序类型–混合系统混合系统混合了前面介绍的几种类型。许多实际应用系统往往是OLTP和DSS甚至其他模型的集成。从前面OLTP和DSS的需求对比来看,OLTP和DSS的基本特征似乎相反,如何协调这两种需求的矛盾?一般有三种解决方法:1)在一个系统中的OLTP和DSS之间节流,白天运行OLTP,而夜间进行批量处理。即白天运行OLTP配置的数据库,夜间跳回DSS配置的实例。这种方法的实际操作模式可以是以下两种:OLTP不支持24*7工作方式,DSS时不支持OLTP;DSS操作的系统反跳之后,OLTP可以使用,但系统性能将受影响。DBA需要测试DSS和服务器反跳对Web用户的影响,必要时选择其他解决办法来调整系统服务模式。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4.1数据库应用程序类型–混合系统2)同时运行两个数据库,一个服务于OLTP,一个服务于DSS。OLTP数据库进行实时更新,在有规则的时间间隔内,将变化传递给DSS数据库。这种方法的实际操作模式可以多种。DBA可以夜间执行部分或全部OLTP系统的输出,并输入到DSS系统。较好的解决方法是对实时方式下传递变化的连接数据库使用复制技术,将变化的数据复制记录下来,OLTP数据库只传递变化的数据给DSS数据库。第三种方法是使ORACLE中OLTP数据库的归档日志自动应用于DSS数据库,保证DSS系统紧跟在OLTP系统之后,DSS数据库不仅作为OLTP的备用数据库,而且自己又独立地服务于决策支持。尽管这种方式可能不能保证OLTP和DSS数据库的绝对同步,但在DSS的实时性要求不是很强时,是一种很好的方法。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4.1数据库应用程序类型–混合系统3)在一个系统中同时运行OLTP和DSS。这是最普遍的解决方法。系统经常作为OLTP开始活动,逐渐加入DSS需求使系统渐渐成为混合系统。在这种情况下,DBA必须在OLTP和批量处理之间寻找平衡,并且应该偏向于OLTP用户,创建与OLTP同样多的回滚段,而且要创建少量专门为大型事务指定的大型回滚段,同时将高速缓冲和共享池保持合理的容量,使系统既支持OLTP对共享池的需求又支持DSS对数据库缓冲区高速缓冲的需求。还要确保临时表空间够批量排序使用,同时将OLTP排序控制在内存中。推荐在这种情况下使用专用服务器,并且配置ORACLE并行服务器(OracleParallelServer,OPS),因为OPS允许多个实例访问同一个物理数据库,一个实例为OLTP配置,另一些为批量处理配置。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4.2ORACLE空间设计•ORACLE数据库的结构包括逻辑结构和物理结构。在进行应用系统数据库设计时,空间设计是非常重要的,它与今后运行系统的性能、可用、维护、管理等有密切的关系。物理结构与逻辑结构之间的关系如下图:TablespaceSegmentExtentOracleblockDatafileOSblockDatabaseLogicalPhysical北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4.2.1ORACLE表空间设计•ORACLE表空间分为两大类:系统表空间和非系统表空间。系统表空间是建库时自动创建的主要用于存储数据字典、系统回滚段;非系统表空间是由用户创建的表空间,主要用于分离段,方便用户的数据管理。ORACLE推荐一种最佳灵活结构OFA(OptimalFlexibleArchitecture)可以用于表空间的设计。OFA是ORACLE软件安装和数据文件的推荐目录结构。OFA只是一组建议,并不是绝对原则。下面介绍基本OFA和扩展OFA。–基本OFA1)系统表空间(SYSTEM):系统表空间不具有重建性,只用于存放数据字典,其他内容如数据段信息等都应从系统表空间中移出。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4.2.1ORACLE表空间设计–基本OFA2)分离应用程序数据段(DATA):应用程序数据段应是一个独立的表空间,即数据表空间。建立单独数据表空间的理由是:应用程序与数据文件分离有利于减少资源争用,简化文件管理;另外,当数据段产生碎片时利于管理。3)分离应用程序索引段(INDEX):索引段不应与相关的数据段存储在一个表空间,以免产生资源争用。由于表增长和不正确的尺寸设置可能产生索引段的碎片,分离应用程序索引段,可以减少整理数据表或索引碎片所需的管理代价。从数据表分离相应的索引也可以通过ALTERINDEX命令来实现。4)分离工具段(TOOLS):许多第三方工具会将数据存储在系统表空间中,为了避免这种情况,可将它们的对象移出系统表空间。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4.2.1ORACLE表空间设计–基本OFA5)分离回滚段(RBS):回滚段会针对巨型事务动态扩展尺寸,也会动态收缩到指定的优化尺寸(参见4.3)。回滚段的I/O通常与数据和索引表空间的I/O同步。将回滚段分离出来是出于减少I/O冲突的考虑。6)分离临时段(TEMP):临时段是数据库中动态生成的对象,用来存储巨型排序操作(如SELECTDISTINCT,UNION,CREATEINDEX等)的数据。由于动态特性,临时段不应与其他类型段一起存储。通常,在建立用户时,将这些用户使用的临时数据段设置到临时表空间。7)分离用户(USER):为用户帐号建立一个USER表空间,在建立用户时将用户的操作数据放在用户表空间。以上7个表空间是最基本的表空间,也是传统OFA的基本组成部分。随着应用的深入,又有扩展的OFA。北京邮电大学软件学院郭文明2003.06《数据库设计与开发》讲义4.4.2.1ORACLE表空间设计–扩展的OFA1)分离低使用数据段(DATA_2):在基表中,有一些是动态数据,一些是静态数据,而动态数据和静态数据常常被并发操作。静态数据在实际使用时只是被提取信息,可以把这些静态
本文标题:北京邮电大学软件工程研究生的课程---数据库设计开发-44
链接地址:https://www.777doc.com/doc-145261 .html