分类:
2010-08-26 14:33:25
本章给出作者在规划和设计Oracle应用环境工作的一些经验的描述,供有兴趣的技术人员参考。
要确认你的应用系统系统的类型。一般目前的应用类型有如下几种。
此外也有查询操作(SELECT)。比如民航或列车的预订系统。银行交易系统等。这种系统的特点是:要求有很高的并发性和及时的反应效果。
决策支持系统(DSS=Decision
Support System)是一个包含有大量历史数据的、一般只读的数据库系统。通常的处理主要是查询,而这种查询是一些固定的查询和统计。它的特点是:大量的查询、需要建立大的索引、大块的进行增、删、改处理。所以安装时选择大的数据库块。
联机分析系统(OLAP=
Online Analytical Processing)是一个可提供分析的数据库系统。它主要是采用数学、统计学、集合聚集计算对数据进行大量的计算,以得到希望的统计结果(图表、趋势图等)。它的特点是:系统要进行全表扫描;需要快速的磁盘I/O处理和快速的CPU速度,但是并发的用户数较少。
在了解你的应用系统类型后,接下来就是要估计你应用系统的数据量等。
l 数据文件路径
考虑将表数据与索引分开原则,先估计你的数据文件占空间的总数。
l 日志文件路径
日志文件要与数据文件分开,日志文件存放的路径。
l 归档日志文件路径
如果要采用归档运行,则建议将归档日志文件要与日志文件分开,归档文件存放的路径。
l 控制文件路径
控制文件要与其它文件分开,控制文件存放的路径要确定。
l Oracle产品安装路径
要安装Oracle系统,必须留出足够的磁盘空间,当然就要确定路径。
l Oracle产品安装交换区
要安装Oracle系统,必须留出足够的磁盘空间作为交换区,当然就要留出交换区。
当数据库服务器在开箱后,就开始规划如何安装操作系统软件。因为一般的小型机或多数服务器机器在出厂后是不安装任何软件的。所有安装操作系统和其他所需要的软件都是在机器安装完成后由供应商进行的。
为了使所安装的操作系统能满足Oracle系统的基本要求,有的服务器的操作系统需要注意某些Oracle的要求:
l
操作交换区
交换区是Oracle的一项基本的要求。可以根据Oracle的发行要求来确定。一般交换区大小的要求是该服务器内存的2倍至4倍之间。过小的交换区可能导致Oracle系统安装的失败,所以建议交换区最好是内存的4倍为佳。
l
硬盘格式化的考虑
在安装操作系统时,安装程序会提示将硬盘化分为不同大小的部分。在安装操作系统时就开始考虑哪个硬盘(或路径)是用来安装Oracle系统的,哪个硬盘(或路径)是用来存放数据文件的等。建议用于存放Oracle数据库系统的目录一定比Oracle系统发行要求的2倍以上。
l
安装点的考虑
除了考虑交换磁盘的大小外,还要考虑Oracle数据库系统的数据文件的目录所对应的硬盘的大小。Oracle系统所在硬盘最好不要与其他的软件混在一起。一般建议在安装时将数据文件、日志文件及控制文件要分别存放到不同的磁盘路径上。数据文件占空间最大,可考虑磁盘的划分2/3用来存放数据文件;其次就是控制文件空间的考虑,如果你的版本为9i以上版本,而且可能采用RMAN和归档模式运行的话,控制文件也随着时间的推移而不断增长。所以,控制文件所在路径也要留有足够的空间。一般考虑在500MB左右。第3个要考虑的就是重做日志文件的路径。日志文件一般比较小,但是为了安全,日志文件要求有几组,每组至少两个日志文件(叫成员)。每个文件(成员)大小在几MB到几十MB之间。一般建议三组日志文件,每组有两个文件。日志文件所在路径保留在300MB左右自由空间即可。
l
归档文件磁盘大小考虑
如果你的应用系统要求比较苛刻,可能采用归档模式运行。这样,还得考虑归档文件所在磁盘的大小问题。一般归档文件是一个不断增长的文件。所以除了将归档文件与日志文件等分开外,必须为归档文件所在路径留有足够的空间。一般不得少于几GB,最好该路径为1GB以上为适宜。
为了获得性能良好的运行环境,建议不要将较大的其它软件系统与Oracle系统安装在一起。建议最好不要Oracle的OEM部件安装在与Oracle RDBMS在一起,可安装另外的机器上。
为了安装我们的规划来安装Oracle系统,建议你采用“自定义”来安装你的Oracle系统。这样,你才可以按照要求规划你的数据文件、控制文件及日志文件等。
当服务器平台已完成操作系统的安装后,就应该开始认真的考虑下面的问题:
l
操作系统的信号量
Oracle在某些UNIX操作系统(如HP-UX、Solaris、Linux、SCO UnixWare)环境下安装需要合适的操作系统信号量。应该根据Oracle版本发行的要求进行设置,比如在SUN 环境下,需要以root 登录并根据Oracle安装手册的参数要求修改/etc目录的system文件。然后在进行Oracle RDBMS的安装。
l
是否采用升级方案
如果你的环境已经安装过旧版本的Oracle软件,则Oracle安装程序会提示你采用升级安装,我们建议不要采用升级安装,因为会使系统的性能受到影响。一般建议采用非升级安装,采用人工升级。也就是先用EXP 将原有系统导出,再安装新版本Oracle后再用IMP导入,具体的操作技巧见另外文档。
l
安装类型方案
采用自定义安装进行Oracle数据库系统的安装,这样考虑根据需要定义包括字符集、数据库块的大小、数据文件的大小等。
l
安装点的考虑
Oracle的安装点就是指数据文件、日志文件和控制文件的安置路径,为了使系统在以后运行性能达到优化,建议将数据文件、日志文件和控制文件的安置路径与数据库系统存放在不同的路径上。最好在安装Oracle系统前,先规划好数据文件、日志文件和控制文件路径。
l
SYSTEM表空间对应数据文件
在自定义安装会话中,建议你根据需要设置system表空间所对应的数据文件的大小。一般要设置比默认值的2倍。该数据文件的大小最好是在300MB至500MB间。因为数据文件太小不利于系统的运行。
l
临时表空间对应的数据文件
临时表空间对应的数据文件可以根据将来系统存放的应用的处理情况来定。比如系统将来可能要经常进程排序处理,则需要设置较大的临时表空间,也可能需要再建立新的临时表空间。这里建议临时表空间的数据文件在1000MB至4000MB左右。
l
回滚段表空间对应的数据文件
如果是Oracle8i及以前的版本,则考虑为RBS表空间建立较大的数据文件。最好数据文件在300MB至500MB之间,如果不够在完成安装后再进行扩展。但是不要采用默认值。
l
日志文件的大小
日志文件的大小对于Oracle系统的运行也是相当重要。默认值是太小。建议日志文件大小在10MB至50MB左右(Oracle9i /Oracle 10g 默认大小为100MB)。
l
控制文件的大小
如果是Oracle8及以上版本,控制文件文件除了存放数据文件信息和日志文件信息外,换存放恢复信息等。所以控制文件所在目录应该有足够的扩展空间。一般建议在该目录应该有200MB 以上空间。
l
数据库实例的块大小
如果你的应用系统是OLTP的话,可以采用较小的数据块(data block)。如果是DSS类型的应用系统,则可以设置较大的数据块,目前Oracle产品所允许的数据库块可以是2KB至64KB之间。无论你选择较大的块或较小的块,它的值都必须是2的整数倍,比如2048,4096,8192等。但需要注意的是,如果操作系统为64位,则可选择较大的块。总结如下:
Oracle系统的最小处理单元
物理文件由多个数据块组成
系统默认的典型大小为4K或
8K
建议不要选择小于
2K 或大于 32K
数据块(Data block)由一个或多个操作系统块组成
l
字符集的选择
字符集是Oracle系统专门支持的一项技术。详细请参考另外的章节。一般不要与另外的已经存放的Oracle系统的字符集产生冲突即可。但如果你的环境是一个新的平台,不需要与其它平台进行数据交换的话,建议选择默认的字符集。这样可以利于将来的修改。
一部分设计师和用户都这样认为,用户的应用系统有几个子系统,就应该建立几个数据库实例(INSTANCE)。将每个应用系统建立在一个独立的数据库实例上。这样的考虑主要是对Oracle系统的结构或工作方式不够了解造成。一般来说,如果用户的应用系统不是非常庞大,服务器的内存也有限,建议不要在同一台服务器上创建两个以上的数据库实例。因为每个数据库实例在启动后都会占用大量的内存和CPU时间。如果有多个不同的应用系统,只要分别为不同的应用系统建立不同的表空间即可。
一般在安装成功后,管理员确认Oracle系统正常启动和关闭没有问题后,除了要修改SYS和SYSTEM帐户的口令外,最好还要做下面的工作:
将所有文件,特别是数据文件、控制文件几次日志文件的设置为不可删除的状态。避免任何人有意无意的删除。如果你的环境是UNIX操作系统,建议将所有文件设置为不可删除状态。
在修改了SYS和SYSTEM帐户的口令后,基本可避免任何人都可随意创建新用户的操作。这时,管理员自己应该在创建新用户时,一定要为用户指定默认的永久表空间和临时表空间。
l SYS和SYSTEM口令保护
记住修改了SYS和SYSTEM帐户的口令,不要再创建具有DBA权限的用户。
l 修改必要的参数
尽管采用了自定义的安装,也存在一些参数需要修改的问题。如SORT_AREA_SIZE、OPEN_CURSORS等,建议DBA根据环境规模和应用类型等进行必要的修改与设置,在系统实际运行三个月之后再进行调整。
本章简单描述在Oracle应用系统常见到的问题,对中大型系统有一定的参考价值。
对于大型应用系统,一般都配备有网络管理人员、数据库管理人员等,在承接应用系统设计和开发的公司一般都有项目负责人员、系统总架构师及软件开发人员等。一般来说,设计数据结构的应用系统总设计师,应该对Oracle系统的特点有很深的了解才行,但是就我个人所遇到的情况往往并不是这样。多数应用系统总设计师所设计的数据库结构、数据库逻辑设计与物理设计等都离Oracle的特点相差较大,一般所给出的文档,Oracle系统管理员不能完全理解或不准确,这主要是国内多数的总设计师在工作岗位被提拔到总设计师后就不再编程,也不再做具体的操作工作了,这样就导致许多新的技术不甚了解。当然设计出的文档就不可能与Oracle系统的要求很密切了。基于这样一种情况,我建议系统的总设计师要与Oracle系统管理员一道制定整个应用系统的逻辑设计和物理设计。
Oracle9i/
–划分个子系统:
•专家系统
•卫星图像识别系统
•GIS系统
•…
–确保系统表空间(system)的单一性
•系统表空间用于存放Oracle内部数据字典;
•不要将应用系统的对象创建在system表空间上;
•为各子系统创建多个表空间。
–采用本地管理表空间 :
•Oracle9i版本默认为本地表空间;
•应用系统所用的表采用本地类型;
•各表空间的大小与块大小要根据所存储的对象来确定;
•…
–数据表空间和索引空间分开
•应用系统所用表空间应将表与其所对应的索引分开存放—在创建脚本中指定,不是创建后再修改;
•存放索引的表空间一般为存放表的表空间的一半;
•为各子系统的索引表空间最好是不同表空间。
–撤消表空间的设计 :
•安装时定义大的撤消表空间;
•或创建专门的撤消表空间;
•撤消表空间大小一般在2GB左右;
–临时表空间设计规划 :
•临时表空间用于排序(内存不够时才用);
•创建大的临时表空间(不要使用默认的大小) ;
•临时表空间一般在1GB左右;
•临时表空间建议对应的文件为非自动增长。
–表空间与数据文件设计 ,考虑:
•表空间存放对象的数据类型(含LOB?) ;
•表空间中对象的稳定性-稳定性高的存放在一个表空间中 ;
•数据的重要性 –重要数据另行看待;
•数据是否可重建 –非可重建的数据要保护;
•同类数据放在同类表空间 。
–创建块扩展不同的表空间:
•Oracle9i以后允许创建块大小不同的表空间;
•块的大小为基本块的倍数;
•块的大小为:16K,64K 128K 2M 8M 16M及32M ;
•块大小大的表空间用于存放大对象(LOB)类型。
-表和索引分开
-将大表,大的索引进行分区或放在不同磁盘上
-将频繁进行连接查询的表用簇将它们聚在一起
-将那些不常连接的表放在一个盘上,如数据字典等
–确定各分系统年数据量:
•计算每个表和索引的年数据量;
•估计各个大对象数据的行数量和总行数;
•子系统相关的所有的表数据量总和=某表空间的大小 ;
•某个表空间的大小=数据文件1+数据文件2…。