资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,北京邮电大学软件学院 郭文明 2003.06,郭文明 2003.06.05,*,4.4,ORACLE,数据库规划与实施,ORACLE为信息系统提供了一个开放、综合、集成的方法。使用ORACLE数据库进行信息系统开发的步骤可以归纳为如下过程:,建ORACLE,数据库,建表空间,建回滚段,建用户,建数据库对象,开发,本节介绍ORACLE数据库的规划与实施:,4.4.1 数据库应用程序类型 4.4.4 ORACLE对象设计,4.4.2 ORACLE空间设计 4.4.5 DBA工具,4.4.3 ORACLE安全设计,北京邮电大学软件学院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 数据库应用程序类型,规划和配置数据库,需要知道将要操作数据库的事务有什么,这些事务访问数据库的频率有多大。针对不同的事务访问情形,对内存的要求不同,磁盘I/O操作的情形也不同。,只有设置合适的ORACLE实例,才能使数据库应用系统获得快速、准确、可靠的事务响应。,ORACLE既可以设置成处理长的密集型事务的系统,也可以设置成处理大量的小型快速事务的系统。有三种通用的数据库设置类型:,联机事务处理(OLTP),决策支持系统(DSS),批量作业系统,混合系统,北京邮电大学软件学院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 数据库应用程序类型,联机事务处理(OLTP),OLTP系统是一个包含繁重DML的应用,其面向事务的活动主要包括更新,但也包括一些插入和删除。典型的例子是用于航空公司和旅馆的预定系统。OLTP系统可以允许有很高的并发性。,OLTP的特点是有大量短的事务高频率地访问数据库,每一个事务操作的数据量不是很多,但事务比较频繁,而且要求数据库响应事务的速度快。,一般来说OLTP系统需要24*7地响应对数据库的请求。根据这些要求,我们应该从以下几方面考虑:,1)大量的小回滚段。因为事务都不太大,对回滚段空间的需求不可能很大,但事务数量多,引发回滚段数量的增大。应该创建大量小的回滚段,把事务对回滚段的争用减到最小。标准的配置可以考虑每四个活动事务用一个回滚段,每个事务接受一个区间。,北京邮电大学软件学院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 数据库应用程序类型,联机事务处理(OLTP),2)OLTP应用的表可能插入或者删除记录,所以存放易变表和索引的表空间应被分配到它们最大的期望容量。,3)适当的估计重写日志缓冲区和日志文件大小,减少日志写和日志切换的频率,尽可能降低对响应事务请求的影响,另外频繁的检查点也可能影响事务响应速度。,4)拥有大型共享池。不同客户可能执行同样的SQL语句,SQL在共享池中缓冲,性能可提高(应用程序的SQL语句应当统一,另外WHERE中使用绑定变量查询而不是直接的值查询,使不同值的查询共享SQL的执行计划)。,5)数据拥有单独的索引。OLTP的事务请求基本在规划设计范围之内,建立单独有效的索引,并在独立的表空间中创建主键和其他索引,且存放在独立的存储器上。,6)使用小型临时段。需要小的排序应在内存中完成,尽量避免OLTP系统对临时段的请求进入磁盘。,北京邮电大学软件学院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 数据库应用程序类型,决策支持系统(DSS),DSS系统通常是一个大型的、包含历史性内容的只读数据库,通常用于简单的固定查询或特别查询。夜间处理任务被认为是DSS,,查询(选择)是DSS的主要活动,。,根据这些要求,我们应该从以下几方面考虑:,1)拥有少量的较大的回滚段。大型工作要创建大型的回滚段,使用SET TRANSACTION USER ROLLBACK SEGMENT语句使事务强制使用专用回滚段。,2)为分类排序创建大型临时表空间,DSS经常超出内存的使用空间而从内存转入磁盘(临时表空间)。,3)使用较小的共享SQL区域而采用较大的数据缓冲区高速缓冲。DSS中SQL的执行频率并不大,无需考虑SQL语句的共享,但应增加数据库缓冲区高速缓冲的容量,使得更多的数据块和回滚段在内存中高速缓冲。,北京邮电大学软件学院 郭文明 2003.06,郭文明 2003.06.05,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,郭文明 2003.06.05,4.4.1 数据库应用程序类型,批量作业系统,批作业处理系统是作用于数据库的非交互性的自动应用。它通常含有繁忙DML语句并有较低的并发性。,另外还有一些其他的应用类型:,OLAP(联机分析处理)系统可提供分析服务,。该系统在数学、统计学、集合以及大量的计算方面区别于OLTP或DSS模型。可以把OLAP看作是在OLTP系统或DSS之上的一个扩展或一个附加的功能层次。地理信息系统(Geographic Information Systems,GIS)或有关空间的数据库和OLAP数据库相集成,提供图表的映射能力。例如用于社会统计的人口统计数据库。,VCDB(可变基数数据库),这类数据库通常被用作一个处理系统的数据库后端,这样就会导致在数据处理期间,数据库中的表显著地增长或收缩。基数是指在一个给定时间里一个表中行的数目。,北京邮电大学软件学院 郭文明 2003.06,郭文明 2003.06.05,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,郭文明 2003.06.05,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,郭文明 2003.06.05,4.4.1 数据库应用程序类型,混合系统,3),在一个系统中同时运行OLTP和DSS,。这是最普遍的解决方法。系统经常作为OLTP开始活动,逐渐加入DSS需求使系统渐渐成为混合系统。,在这种情况下,DBA必须在OLTP和批量处理之间寻找平衡,并且应该偏向于OLTP用户,创建与OLTP同样多的回滚段,而且要创建少量专门为大型事务指定的大型回滚段,同时将高速缓冲和共享池保持合理的容量,使系统既支持OLTP对共享池的需求又支持DSS对数据库缓冲区高速缓冲的需求。还要确保临时表空间够批量排序使用,同时将OLTP排序控制在内存中。,推荐在这种情况下使用专用服务器,并且配置ORACLE并行服务器(Oracle Parallel Server,OPS),因为OPS允许多个实例访问同一个物理数据库,一个实例为OLTP配置,另一些为批量处理配置。,北京邮电大学软件学院 郭文明 2003.06,郭文明 2003.06.05,4.4.2ORACLE空间设,计,计,ORACLE数据库的,结,结构包括逻,辑,辑结构和物,理,理结构。在,进,进行应用系,统,统数据库设,计,计时,空间,设,设计是非常,重,重要的,它,与,与今后运行,系,系统的性能,、,、可用、维,护,护、管理等,有,有密切的关,系,系。物理结,构,构与逻辑结,构,构之间的关,系,系如下图:,Tablespace,Segment,Extent,Oracle block,Datafile,OS block,Database,Logical,Physical,北京邮电大,学,学软件学院,郭,郭,文,文明2003.06,郭文明2003.06.05,4.4.2.1 ORACLE表,空,空间设计,ORACLE表空间分,为,为两大类:,系,系统表空间,和,和非系统表,空,空间。系统,表,表空间是建,库,库时自动创,建,建的主要用,于,于存储数据,字,字典、系统,回,回滚段;非,系,系统表空间,是,是由用户创,建,建的表空间,,,,主要用于,分,分离段,方,便,便用户的数,据,据管理。ORACLE,推,推荐一种最,佳,佳灵活结构OFA(Optimal FlexibleArchitecture)可,以,以用于表空,间,间的设计。,OFA是ORACLE,软,软件安装和,数,数据文件的,推,推荐目录结,构,构,。OFA只,是,是一组建议,,,,并不是绝,对,对原则。下,面,面介绍基本OFA和扩,展,展OFA。,基本OFA,1)系统表,空,空间(SYSTEM),:,:系统表空,间,间不具有重,建,建性,只用,于,于存放数据,字,字典,其他,内,内容如数据,段,段信息等都,应,应从系统表,空,空间中移出,。,。,北京邮电大,学,学软件学院,郭,郭,文,文明2003.06,郭文明2003.06.05,4.4.2.1 ORACLE表,空,空间设计,基本OFA,2)分离应,用,用程序数据,段,段(DATA):应用,程,程序数据段,应,应是一个独,立,立的表空间,,,,即数据表,空,空间。建立,单,单独数据表,空,空间的理由,是,是:应用程,序,序与数据文,件,件分离有利,于,于减少资源,争,争用,简化,文,文件管理;,另,另外,当数,据,据段产生碎,片,片时利于管,理,理。,3)分离应,用,用程序索引,段,段(INDEX):索,引,引段不应与,相,相关的数据,段,段存储在一,个,个表空间,,以,以免产生资,源,源争用。由,于,于表增长和,不,不正确的尺,寸,寸设置可能,产,产生索引段,的,的碎片,分,离,离应用程序,索,索引段,可,以,以减少整理,数,数据表或索,引,引碎片所需,的,的管理代价,。,。从数据表,分,分离相应的,索,索引也可以,通,通过ALTER INDEX命令,来,来实现。,4)分离工,具,具段(TOOLS):,许,许多第三方,工,工具会将数,
展开阅读全文