ORACLE数据库规划与实施.ppt
《ORACLE数据库规划与实施.ppt》由会员分享,可在线阅读,更多相关《ORACLE数据库规划与实施.ppt(47页珍藏版)》请在三一办公上搜索。
1、北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,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,数据库设计与开发讲义,4.4.1 数据库应用程序类型,规划
2、和配置数据库,需要知道将要操作数据库的事务有什么,这些事务访问数据库的频率有多大。针对不同的事务访问情形,对内存的要求不同,磁盘I/O操作的情形也不同。只有设置合适的ORACLE实例,才能使数据库应用系统获得快速、准确、可靠的事务响应。ORACLE既可以设置成处理长的密集型事务的系统,也可以设置成处理大量的小型快速事务的系统。有三种通用的数据库设置类型:联机事务处理(OLTP)决策支持系统(DSS)批量作业系统混合系统,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.1 数据库应用程序类型,联机事务处理(OLTP)OLTP系统是一个包含繁重DML的应用,其面向事务的
3、活动主要包括更新,但也包括一些插入和删除。典型的例子是用于航空公司和旅馆的预定系统。OLTP系统可以允许有很高的并发性。OLTP的特点是有大量短的事务高频率地访问数据库,每一个事务操作的数据量不是很多,但事务比较频繁,而且要求数据库响应事务的速度快。一般来说OLTP系统需要24*7地响应对数据库的请求。根据这些要求,我们应该从以下几方面考虑:1)大量的小回滚段。因为事务都不太大,对回滚段空间的需求不可能很大,但事务数量多,引发回滚段数量的增大。应该创建大量小的回滚段,把事务对回滚段的争用减到最小。标准的配置可以考虑每四个活动事务用一个回滚段,每个事务接受一个区间。,北京邮电大学软件学院 郭文明
4、 2003.06,数据库设计与开发讲义,4.4.1 数据库应用程序类型,联机事务处理(OLTP)2)OLTP应用的表可能插入或者删除记录,所以存放易变表和索引的表空间应被分配到它们最大的期望容量。3)适当的估计重写日志缓冲区和日志文件大小,减少日志写和日志切换的频率,尽可能降低对响应事务请求的影响,另外频繁的检查点也可能影响事务响应速度。4)拥有大型共享池。不同客户可能执行同样的SQL语句,SQL在共享池中缓冲,性能可提高(应用程序的SQL语句应当统一,另外WHERE中使用绑定变量查询而不是直接的值查询,使不同值的查询共享SQL的执行计划)。5)数据拥有单独的索引。OLTP的事务请求基本在规划
5、设计范围之内,建立单独有效的索引,并在独立的表空间中创建主键和其他索引,且存放在独立的存储器上。6)使用小型临时段。需要小的排序应在内存中完成,尽量避免OLTP系统对临时段的请求进入磁盘。,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.1 数据库应用程序类型,决策支持系统(DSS)DSS系统通常是一个大型的、包含历史性内容的只读数据库,通常用于简单的固定查询或特别查询。夜间处理任务被认为是DSS,查询(选择)是DSS的主要活动。根据这些要求,我们应该从以下几方面考虑:1)拥有少量的较大的回滚段。大型工作要创建大型的回滚段,使用SET TRANSACTION USE
6、R ROLLBACK SEGMENT语句使事务强制使用专用回滚段。2)为分类排序创建大型临时表空间,DSS经常超出内存的使用空间而从内存转入磁盘(临时表空间)。3)使用较小的共享SQL区域而采用较大的数据缓冲区高速缓冲。DSS中SQL的执行频率并不大,无需考虑SQL语句的共享,但应增加数据库缓冲区高速缓冲的容量,使得更多的数据块和回滚段在内存中高速缓冲。,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.1 数据库应用程序类型,决策支持系统(DSS)4)如前所述,DSS希望Oracle块一次读取尽可能多的行。因为DSS查询一般触发整个表扫描,所以希望通过读取多个连续的
7、块使系统读取的块达到最大值。把DB_BLOCK_SIZE和DB_FILE_MULTIBLOCK_READ_COUNT参数设置得尽可能高些。5)运行的SQL应当删除不必要的排序并充分利用索引,以减少对临时表空间和回滚段的压力。2种方法:在没有可以选择的良好索引时不使用任何索引或屏蔽使用某些索引(参见4.3);使用位图索引。6)不要在DSS应用代码中使用绑定变量。在OLTP下,希望最小化应用进程开销(语法分析)。然而,DSS的查询,语法分析占用整个查询时间的比例会更小。假如使用绑定变量,优化程序不能调用它所存储的统计信息(通过ANALYZE命令)以选出存取数据的最好方法。,北京邮电大学软件学院 郭
8、文明 2003.06,数据库设计与开发讲义,4.4.1 数据库应用程序类型,批量作业系统 批作业处理系统是作用于数据库的非交互性的自动应用。它通常含有繁忙DML语句并有较低的并发性。另外还有一些其他的应用类型:OLAP(联机分析处理)系统可提供分析服务。该系统在数学、统计学、集合以及大量的计算方面区别于OLTP或DSS模型。可以把OLAP看作是在OLTP系统或DSS之上的一个扩展或一个附加的功能层次。地理信息系统(Geographic Information Systems,GIS)或有关空间的数据库和OLAP数据库相集成,提供图表的映射能力。例如用于社会统计的人口统计数据库。VCDB(可变基
9、数数据库),这类数据库通常被用作一个处理系统的数据库后端,这样就会导致在数据处理期间,数据库中的表显著地增长或收缩。基数是指在一个给定时间里一个表中行的数目。,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.1 数据库应用程序类型,混合系统 混合系统混合了前面介绍的几种类型。许多实际应用系统往往是OLTP和DSS甚至其他模型的集成。从前面OLTP和DSS的需求对比来看,OLTP和DSS的基本特征似乎相反,如何协调这两种需求的矛盾?一般有三种解决方法:1)在一个系统中的OLTP和DSS之间节流,白天运行OLTP,而夜间进行批量处理。即白天运行OLTP配置的数据库,夜间
10、跳回DSS配置的实例。这种方法的实际操作模式可以是以下两种:OLTP不支持24*7工作方式,DSS时不支持OLTP;DSS操作的系统反跳之后,OLTP可以使用,但系统性能将受影响。DBA需要测试DSS和服务器反跳对Web用户的影响,必要时选择其他解决办法来调整系统服务模式。,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.1 数据库应用程序类型,混合系统 2)同时运行两个数据库,一个服务于OLTP,一个服务于DSS。OLTP数据库进行实时更新,在有规则的时间间隔内,将变化传递给DSS数据库。这种方法的实际操作模式可以多种。DBA可以夜间执行部分或全部OLTP系统的输
11、出,并输入到DSS系统。较好的解决方法是对实时方式下传递变化的连接数据库使用复制技术,将变化的数据复制记录下来,OLTP数据库只传递变化的数据给DSS数据库。第三种方法是使ORACLE中OLTP数据库的归档日志自动应用于DSS数据库,保证DSS系统紧跟在OLTP系统之后,DSS数据库不仅作为OLTP的备用数据库,而且自己又独立地服务于决策支持。尽管这种方式可能不能保证OLTP和DSS数据库的绝对同步,但在DSS的实时性要求不是很强时,是一种很好的方法。,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.1 数据库应用程序类型,混合系统 3)在一个系统中同时运行OLTP
12、和DSS。这是最普遍的解决方法。系统经常作为OLTP开始活动,逐渐加入DSS需求使系统渐渐成为混合系统。在这种情况下,DBA必须在OLTP和批量处理之间寻找平衡,并且应该偏向于OLTP用户,创建与OLTP同样多的回滚段,而且要创建少量专门为大型事务指定的大型回滚段,同时将高速缓冲和共享池保持合理的容量,使系统既支持OLTP对共享池的需求又支持DSS对数据库缓冲区高速缓冲的需求。还要确保临时表空间够批量排序使用,同时将OLTP排序控制在内存中。推荐在这种情况下使用专用服务器,并且配置ORACLE并行服务器(Oracle Parallel Server,OPS),因为OPS允许多个实例访问同一个物
13、理数据库,一个实例为OLTP配置,另一些为批量处理配置。,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.2 ORACLE空间设计,ORACLE数据库的结构包括逻辑结构和物理结构。在进行应用系统数据库设计时,空间设计是非常重要的,它与今后运行系统的性能、可用、维护、管理等有密切的关系。物理结构与逻辑结构之间的关系如下图:,Tablespace,Segment,Extent,Oracle block,Data file,OS block,Database,Logical,Physical,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.2.
14、1 ORACLE表空间设计,ORACLE表空间分为两大类:系统表空间和非系统表空间。系统表空间是建库时自动创建的主要用于存储数据字典、系统回滚段;非系统表空间是由用户创建的表空间,主要用于分离段,方便用户的数据管理。ORACLE推荐一种最佳灵活结构OFA(Optimal Flexible Architecture)可以用于表空间的设计。OFA是ORACLE软件安装和数据文件的推荐目录结构。OFA只是一组建议,并不是绝对原则。下面介绍基本OFA和扩展OFA。基本OFA 1)系统表空间(SYSTEM):系统表空间不具有重建性,只用于存放数据字典,其他内容如数据段信息等都应从系统表空间中移出。,北京
15、邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.2.1 ORACLE表空间设计,基本OFA 2)分离应用程序数据段(DATA):应用程序数据段应是一个独立的表空间,即数据表空间。建立单独数据表空间的理由是:应用程序与数据文件分离有利于减少资源争用,简化文件管理;另外,当数据段产生碎片时利于管理。3)分离应用程序索引段(INDEX):索引段不应与相关的数据段存储在一个表空间,以免产生资源争用。由于表增长和不正确的尺寸设置可能产生索引段的碎片,分离应用程序索引段,可以减少整理数据表或索引碎片所需的管理代价。从数据表分离相应的索引也可以通过ALTER INDEX命令来实现。4
16、)分离工具段(TOOLS):许多第三方工具会将数据存储在系统表空间中,为了避免这种情况,可将它们的对象移出系统表空间。,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.2.1 ORACLE表空间设计,基本OFA 5)分离回滚段(RBS):回滚段会针对巨型事务动态扩展尺寸,也会动态收缩到指定的优化尺寸(参见4.3)。回滚段的I/O通常与数据和索引表空间的I/O同步。将回滚段分离出来是出于减少I/O冲突的考虑。6)分离临时段(TEMP):临时段是数据库中动态生成的对象,用来存储巨型排序操作(如SELECT DISTINCT,UNION,CREATE INDEX等)的数据
17、。由于动态特性,临时段不应与其他类型段一起存储。通常,在建立用户时,将这些用户使用的临时数据段设置到临时表空间。7)分离用户(USER):为用户帐号建立一个USER表空间,在建立用户时将用户的操作数据放在用户表空间。以上7个表空间是最基本的表空间,也是传统OFA的基本组成部分。随着应用的深入,又有扩展的OFA。,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.2.1 ORACLE表空间设计,扩展的OFA 1)分离低使用数据段(DATA_2):在基表中,有一些是动态数据,一些是静态数据,而动态数据和静态数据常常被并发操作。静态数据在实际使用时只是被提取信息,可以把这些
18、静态数据表设置到一个专用表空间(DATA_2),从而避免并发操作冲突。2)分离低使用索引段(INDEX_2):数据表分为静态表和动态表,则索引亦如此。对于静态表的索引表应建立静态索引表空间(INDEX_2)。如果索引已经生成,可以使用ALTER INDEX语句来移动这些索引到一个新的表空间中。3)分离工具索引(TOOLS_1):如果数据库对TOOLS表空间有较多的操作,则这些工具表索引可以移到另一个表空间(TOOLS_1),这样TOOLS表空间就可看成工具数据表空间。,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.2.1 ORACLE表空间设计,扩展的OFA 4)
19、分离特殊回滚段(RBS_2):RBS表空间的回滚段必须有适当的大小和数量,以适应应用的使用。但大型事务可能超过回滚段的配置。为了避免这种情况,可以设置一个特殊回滚段,使大型事务只使用特殊回滚段。建立一个特殊表空间来容纳这个特殊回滚段。5)分离特殊用户临时段(TEMP_USER):和特殊回滚段一样,一些特殊用户在做特殊操作时,可以设置一个特殊用户临时表空间,这样便于系统管理。附加的特殊应用OFA扩展 1)SNAPS:用于快照(Snapshots)。快照表是分布式数据库处理的一种特殊表,为此类表建立相应的表空间。2)PARTITIONS:用于分区(Partition)。分区是为了分配I/O并且简化
20、巨型表的管理。3)TEMP_WORK:用于大型数据装载。,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.2.2 数据文件设置,根据ORACLE数据库结构特点,每个表空间至少要有一个数据文件,因此,应用系统的每个表空间均具有各自的数据文件。Oracle 7.2以后可以支持数据文件大小的重新定义,当表空间需要扩充时,不必为其增加数据文件,而简单地将其扩充即可,避免了预先分配过大的存储空间及过多数据文件的问题。同时可以支持数据文件的自动扩展,避免当表空间已满时,DBA手工扩充表空间对用户使用的影响。对于一个不太大的数据库,可以将数据库软件和数据文件都放置在一个磁盘上,将
21、它们设计成不同的子文件即可。对于大型数据库,需要指定哪些文件放置在哪个磁盘上。,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.2.2 数据文件设置,表空间的磁盘分配:一般情况下,90%以上的I/O操作集中在系统表空间、数据表空间、回滚表空间、索引表空间这4个表空间上,所以这4个表空间应单独存储在不同的磁盘上。系统文件的规划:ORACLE有联机日志文件、归档日志文件、控制文件和系统软件文件等,如何放置这些系统文件也是一件重要的任务。1)联机日志文件:每个数据库至少要有两个联机日志文件,由于联机日志文件中保留了数据库的当前事务,所以它无法从备份中恢复,他们是ORACL
22、E无法用备份工具恢复的唯一文件类型。这类文件应单独存储。,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.2.2 数据文件设置,系统文件的规划:2)控制文件:前面章节已经说明了控制文件的重要性,每个数据库应当至少有3个控制文件的拷贝,它们被分布在3个驱动器中。3)归档日志文件:如果归档日志文件和联机日志文件放在同一个磁盘上,当LGWR在读盘时,ARCH也在读同一磁盘,势必造成I/O冲突,所以归档日志文件和联机日志文件应分盘存储。4)ORACLE软件:Oracle软件是系统运行的核心,这些软件应放在独立的磁盘上。磁盘规划设计:磁盘规划设计可以依据下列准则:数据库必须可
23、恢复;必须对联机日志文件进行镜像;必须最小化DBWR、LGWR、ARCH之间的冲突;必须最小化DBWR磁盘间的冲突;估计数据库文件的I/O量。,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.2.2 数据文件设置,磁盘规划设计:在磁盘规划设计过程中需要做一些数据库测量,以估计其I/O量,以下给出一参照的7磁盘设计方案:,北京邮电大学软件学院 郭文明 2003.06,数据库设计与开发讲义,4.4.2.2 数据文件设置,表空间与数据文件设置举例:connect system/managercreate tablespace tsp_acctdatafile d:orac
24、leoradataorclapacct.dbfsize 32M reuse autoextend on next 4M maxsize unlimited;create tablespace tsp_publicdatafile d:oracleoradataorclappublic.dbfsize 100M reuse autoextend on next 16M maxsize unlimited;create tablespace tsp_tempdatafile d:oracleoradataorclaptemp.dbfsize 500M reuse autoextend on nex
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ORACLE 数据库 规划 实施

链接地址:https://www.31ppt.com/p-2433677.html