-【优秀资料】Oracle数据库设计指引全集_第1页
-【优秀资料】Oracle数据库设计指引全集_第2页
-【优秀资料】Oracle数据库设计指引全集_第3页
-【优秀资料】Oracle数据库设计指引全集_第4页
-【优秀资料】Oracle数据库设计指引全集_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库物理设计原则1.1数据库环境配置原则1.1.1操作系统环境:对丁屮小型数据库系统,釆用linux操作系统比较合适,对丁数据库冗余要求负载均衡能力 要求较高的系统,可以采m oracle9i rac的集群数据库的方法,集群节点数范围在2-64 个。对于人型数据库系统,町以采川sun solaris sparc 64位小型机系统或hp9000系列 小型机系统。rad5适合只读操作的数据库,rad1适合oltp数据库1.1.2内存要求对于linux操作系统卜的数据库,市于在正常情况f oracle对sga的管理能力不超过1.7g。 所以总的物理内存在4g以下。sga的人小为物理内存的50%75

2、%o对于64位的小型系 统,oracle数据库对sga的管理超过2g的限制,sga设计在一个介适的范围内:物理内 存的50%70%,当sga过大的时候会导致内存分页,影响系统性能。1.1.3交换区设计当物理内存在2g以下的情况下,交换分区swap为物理内存的3倍,当物理内存>2g的情 况下,swap大小为物理内存的12倍。1.1.4其他环境变量参考oracle相关的安装文档和随机文档。1.2数据库设计原则1.2.1数据库sid数据库sid是唯一标志数据库的符号,命名长度不能超过5个字符。对于单节点数据库, 以字符开头的5个氏度以内字串作为sid的命名。对于集郡数据库,当命名sid后,各节

3、 点sd自动命名为sidnn,其中nn为节点号:1, 2,,64。例如rac1、rac2> rac24o 1.2.2数据库全局名specify the ?o:bowing database informationan oracle9l database is untauely identified by a global databasetypl<ally of theformdomain*.global database name (racgstaxoma database is referenced by an ora<le9i instance on each clus

4、ter database nod<? each instance is uniquely identified by an oracle system identifier (sid) for each cluster database ln$ran<e the sid is comprised of a common prefix for tn© database and a number for each instance that is automatically generated a suggested sid prefix has been entered f

5、or you which you can accept or change to a value you prefer.sid prefix:数据库全局名称:1.2.3数据库类型选择对于海量数据库系统,采用data warehouse的类型。对于小型数据库或oltp类型的数据 库,采用 transaction processing 类型。q jximbasc cpriflguiationalepjlpja; darabasc tcmpmicssele<t a template from the following list to create a database1.2.4数据廉连接类型

6、选择oracle数据丿牟有&用服务器连接类型和多线程服务器mts连接类型。对于批处理服务,需 要专用服务器连接方式,而对于oltp服务则mts的连接方式比较合适。由于采用mts后, 町以通过配置网络服务实现某些特定批处理服务采川专川服务器连接方式,所以数据庄设计 时一般采用mts类型。1.2.5数据库sga配置数据库sga可以采用手工配宜或按物理内存比例配宜,在数据库初始设计阶段采用按比例 配置方式,在实际应用中按系统调优方式修改sga.pr<entae of physical rnemoy <189 mb> for ora<ie:datab&se ty

7、”tondefa warehousingshow distribution of memory.c us tomshared pool:|q 36&&o 80bytif:buffer ca<he:m syjava pool:iq 3886080hlytoslarge pool:|lg7r72wpga:fnytatoul mamcry for oraclommemorylocationsarchive* typicald-it-ikxaie configurationstep 6 of b j.lniuiization .pyramelerso total momcry i

8、ncludes *>om9 of ofa<iq process sis© and th© default: fcr th© qmpt/ paramevors if any1.2.6数据库字符集选择为了使数据库能够正确支持多国语言,必须配置合适的数据库字符集,采川utf8字符集。注意:如果没有大对彖,在使用过程屮进行语書转换没有什么影响,具体过程如下(切记设 定的字符集必须是oracle支持,不然不能start)sql> shutdown immediate;sql> startup mount;sql> al ter system e

9、nable restricted session;sql> alter system set job queue_processes=0;sql> alter database open;sql> alter database character set intornal_uscwe8iso8859pl;sql> shutdown immediate;sql> startup1.2.7数据库其他参数配置 db_fi lesdbjiles是数据库能够同时打开的文件数量,默认值是200个。肖数据库规划时文件数量files接近或超过200个时候,按以下估计

10、值配置:db_files 二 files *.2 db_block_size一个extent要是5个blocks的倍数为好,如:-个blocks是4096字节,那一个extent就 是2m. 4m或8m为好。db_block_size是数据库最小物理单元,一旦数据库创建完成,该 参数无法修改,db_block_size按以下规则调整:数据仓库类型:db_block_size尽可能人,采用8192或16384oltp类型:db_block_size用比较小的取值范围:2048或4096blocks推荐是系统操作的块倍数(裸设备块人小是512字节,ntfs是4k,使用8k的方式 在

11、大部分系统上通用)。1.2.8数据库控制文件配置控制文件镜彖多个控制文件存放在不同的物理位置。控制文件配置控制文件中参数设置,最大的数据文件数量不能小于数据库参数db_fileso1.2.9数据库日志文件配置 h志文件大小f!志文件的人小山数据库事务处理量决定,在设计过程中,确保每20分钟切换一个fi志文 件。所以对于批处理系统,h志文件大小为儿百m到儿g的大小。对于oltp系统,日志 文件大小为几百m以内。日志文件组数量对于批处理系统,h志文件组为510组;对于oltp系统,h志文件组为3-5组,每组 口志大小保持一致;对于集群数据库系

12、统,每节点有各白独立的口志组。 口志成员数量 为了确保fl志能够镜象作用,每fi志组的成员为2个。1.2.10数据库回滚段配置在oracle9i数据库中,设计undo表空间取代以前版本的回滚段表空间。undo表空间大小的设计规范由以下公式计算:undospace = ur* ups * db_block_size+ 冗余量ur:表示在undo屮保持的最长时间数(秒),由数据库参数undo_retention值决定。ups:表示在undo中,每秒产生的数据库块数量。例如:在数据库中保留2小时的回退数据,假定每小时产牛.200个数据库块。则undospace =2 * 3600 *

13、200 * 4k = 5.8g1.2.11数据库临时段表空间配置数据库临时段表空间根据实际生产环境情况调整其大小,表空间属性为自动扩展。1.2.12数据库系统表空间配置系统农空间大小1g左右,除了存放数据库数据字典的数据外,其他数据不得存储在系统农 空间。1.3数据库表空间设计原则1.3.1表空间大小定义原则当表空间人小小丁操作系统对最人文件限制时,表空间由一个文件组成。如果表空间人小 人于操作系统对最人文件限制时,该表空间由多个数据文件纽成,表空间的总人小为估算为:tablespace + sum (数据段 + 索引段)*150%。1.3.2表空间扩展性设计原则表空间数据文件采用口动扩展的方

14、式,扩展容量快人小按2的整数倍(1m、2m. 4m、8m、 16m、32m> 64m)进行扩展,创建表空间时尽量采用nologing选项。表空间的最人限制- 般采用unlimited,除th确切知道表空间数据文件的最人使用范围。(般windows 3 2位 系统的文件最大2g, 6 4位的unix系统系统文件最大1 2 8 g,但也要注意文件格式设定 的文件大小),建议最大为2g。表空间采用local管理方式,例如:create tablespace tbsjjser1nfodatafile'/oradata/tbs userinfo.dbf,size 8mreuseautoex

15、tend onnext 2mmaxsize unlimitednologgingextent managementlocalautoallocatesegment space management auto;1.4裸设备的使用一个scsi设备可以14个分区,unix操作系统256个分区,性能比文件系统方式高15%左右, 空间人于要小于(实际分区人小减两个oracle的数据块),比如100m,人于为100000k, 推荐在unix使用软连接(in)方式把裸设备形成文件,用加入表空间时加resue选项,当然 也可只接把设备加入表空间,移动裸设备使用dd命令对于windows平台,oracle捉供软

16、连接工具,实现裸设备的使用,计算一条记录的长度2数据库逻辑设计原则2.1命名规范2.1.1表属性规范 表名前缀为tbl_。数据表名称必须以有特征含义的单词或缩写组成,中间可以用二'分割,例如: tbl_pstn_detailo表名称不能用双引号包含。前缀为p o分区名必须有特定含义的单词或字串。例如:tbl_pstn_detail的分区p2004100101该分区存储2004100101吋段的数据。字段名字段名称必须用字母开头,采用有特征含义的单词或缩写,不能用双引号包含。主键名前缀为pk_。主键名称应是前缀+表名+构成的字段名。如果复合主键的

17、构成字段较多,则 只包含第一个字段。表名可以去掉前缀。外键名前缀为fk_。外键名称应是前缀+外键表名+主键表名+外键表构成的字段名。表名 可以去掉前缀。2.1.2索引普通索引前缀为idx_。索引名称应是前缀+表名+构成的字段名。如果复合索引的构成字段较多, 则只包含第一个字段,并添加序号。表名可以去掉前缀。主键索引前缀为idx_pk_。索引名称应是前缀+表名+构成的上键字段名,在创建表时候川using index指定主键索引属性。唯一所以前缀为idx_uk_o索引名称应是前缀+表名+构成的字段名。外键索引前缀为idx_fk_

18、0索引名称应是前缀+表名+构成的外键字段名。函数索引前缀为idx_func_o索引名称应是前缀+表名+构成的特征表达字符。簇索引前缀为idx_clu_o索引名称应是前缀+表名+构成的簇字段。2.1.3视图前缀为v_。按业务操作命名视图。2.1.4实体化视图前缀为mv_。按业务操作命名实体化视图。2.1.5存储过程前缀为proc_ o按业务操作命名存储过程2.1.6触发器前缀为trig_ o触发器名应是前缀+表名+触发器名。2.1.7函数前缀为func_。按业务操作命名函数2.1.8数据包前缀为pkg_ o按业务操作集合命名数据包。2.1.9序列前缀为seq_。按业务

19、属性命名。2.1.10表空间公用表空间前缀为tbs_。根据存储的特性命名,例如:tbs_parameter。专用表空间tbs_v表名称_nn«该表空间专门存储指定的某一个表,或某一表的若干个分区的数据v表空间名nn.dbf。nn =1, 2, 3, 4 等。2.1.12普通变量前缀为var_ o存放字符、数字、fi期型变量。2.1.13游标变量前缀为cur_ o存放游标记录集。2.1.14记录型变量前缀为rec_ o存放记录型数据。2.1.15表类型变量前缀为tab_。存放表类型数据。2.1.16数据库链前缀为dbl_ o表示分布式数据库外部链接关系。

20、2.2命名2.2.1语言命名应该使用英文单词,避免使用拼音,特别不应该使用拼音简写。命名不允许使用小文或 者特殊字符。英文单词使川川对象本身意义相对或相近的单词。选择最简单或最通川的单词。不能使川毫 不相干的单词来命名当一个单词不能农达对象含义吋,用词组组合,如果组合太长吋,采用用简或缩写,缩场要 基本能表达原单词的意义。当出现对象名重名时,是不同类型对象时,加类型前缀或后缀以示区别。2.2.2人小写名称一律大写,以方便不同数据库移植,以及避免程序调用问题。2.2.3单词分隔命名的各单词之间可以使用下划线进行分隔。2.2.4保留字命名不允许使用sql保留字。2.2.5命名长度表名、字段名、视图

21、名长度应限制在20个字符内(含前缀)。2.2.6字段名称同一个字段名在一个数据库中只能代表一个意思。比如telephone在一个表中代表“电话号 码”的意思,在另外一个表中就不能代表“手机号码”的意思。不同的表用于相同内容的字段应该采用同样的名称,字段类型定义。2.3数据类型2.3.1字符型固定氏度的字串类型采用char, t度不固左的字串类型采用varcharo避免在长度不固左的 情况下采用char类型。如果在数据迁移等出现以上情况,则必须便用trim()函数截公字巾 后的空格。2.3.2数字型数字型字段尽量采用number类型。2.3.3日期和时间系统时间由数据库产生的系统时

22、间首选数据库的日期型,如date类型。夕卜部时间由数据导入或外部应用程序产生的日期时间类型采用varchar类型,数据格式采用:yyyymmddhh24miss。大字段如无特别需要,避免使用大字段(blob, clob, long, text, image等)。 唯一键对于数字型唯一键值,尽可能用系列sequence产生。2.4设计2.4.1范式如无性能上的必须原因,应该使用关系数据库理论,达到较高的范式,避免数据冗余,但是 如果在数据量上与性能上无特别要求,考虑到实现的方便性对以有适卅的数据冗余,但阜本 上要达到3nf.如非确实必要,避免一个字段屮存

23、储多个标志的做法。如11101表示5个标 志的一种取值。这往往是增加复杂度,降低性能的地方。2.4.2表设计逻辑段设计原则.1 tablespace每个表在创建时候,必须指定所在的表空间,不要釆用默认表空间以防止表建立在系统表 空间上导致性能问题。对于事务比较繁忙的数据表,必须存放在该表的专用表空间中。.2 pct used默认pctused导致数据库物理空间利用率非常低40%左右;对于update比较少或 update不导致行增大的表,pctused可设置在60-85之间;对于update能够导致行增 大的表,update设置在4070之间2.4.2

24、.1.3 i nitrans对于需要并行查询或者在rac数据库中需要并行处理的表,initrans设置为2的倍数,否 则,不设该值。.4 storage.4.1 i nitial尽量减少表数据段的extents数量,initial的大小尽量接近数据段的大小64k, 128k,, 1m, 2m, 4m, 8m, 16m,等按2的倍数进行圆整。例如表或分区数据段大小为 28m,则 initial 取 32m。.4.2 next表或分区扩展extents的大小,按上述方法进行圆整。当表或分区数据段无法按initial 接近值进行圆整的情况下,其大小可以按in

25、itiaknext进行圆整。此时,必须设置 minextents=2o 例如:表或分区数据段大小为 1 50m,则 i nitial= 128m; next=32m,minextents= 2o.4.3 minextents该参数表示表创建时候extents的初始数量,一般取1一2。.4.4 pctincrease表示每个扩展extents的增长率,设置pctincrease= 0能够获得较好的存储性能。特殊表设计原则.1分区表对于数据量比较大的表,根据表数据的属性进行分区,以得到较好的性能。如果表按某些 字段进行增长,则采用按字段值范围

26、进行范围分区;如果表按某个字段的几个关键值进行 分布,则采用列表分区;对于静态表,则采用hash分区或列表分区;在范围分区中,如果 数据按某关键字段均衡分布,则采用子分区的复合分区方法。.2聚簇表如果某几个静态表关系比较密切,则可以采用聚簇表的方法。完整性设计原则.1主键约束关联表的父表要求有主健,主健字段或组合字段必须满足非空属性和唯一性要求。对于数 据量比较大的父表,要求指定索引段。.2外键关联对于关联两个表的字段,一般应该分别建立主键、外键。实际是否建立外键,根据对数据 完整性的要求决定。为了提高性能,对于数据量比较大的标要求对外健

27、建立索引。对于有 要求级联删除属性的外键,必须指定on delete cascade。.3 null值对于字段能否null,应该在sql建表脚本中明确指明,不应使用缺省。由于null值在参 加任何运算中,结果均为null。所以在应用程序中必须利用nvl()函数把可能为null值 得字段或变量转换为非null的默认值。例如:nvl (sale,0)o对于字段有检查性约束,要求指定check规则。.5触发器触发器是一种特殊的存储过程,通过数据表的dml操作而触发执行,起作用是为确保数据 的完整性和一致性不被破坏而创建,实现数据的完整约束。触发器的before或after

28、事务属性的选择时候,对表操作的事务属性必须与应用程序事务 属性保持一致,以避免死锁发生。在大型导入表中,尽量避免使用触发器。 注释表、字段等应该有中文名称注释,以及需要说明的内容。2.4.3索引设计对于查询中需要作为查询条件的字段,可以考虑建立索引。最终根据性能的需要决定是否 建立索引。对于复合索引,索引字段顺序比较关键,把查询频率比较高的字段排在索引组 合的最前面。在分区表中,尽量采用local分区索引以方便分区维护。除非时分区local索引,否则在创建索引段时候必须指定指定索引段的tablespace、 storage属性,具体参考内容。2.4.4视图设计视图是

29、虚拟的数据库表,在使用时要遵循以下原则:从一个或多个库表中查询部分数据项;为简化查询,将复杂的检索或字查询通过视图实现;提高数据的安全性,只将需要查看的数据信息显示给权限有限的人员;视图中如果嵌套使用视图,级数不得超过3级;由于视图中只能固定条件或没有条件,所以对于数据量较大或随时间的推移逐渐增多的库 表,不宜使用视图;可以采用实体化视图代替。除特殊需要,避免类似select * from tablename而没有检索条件的视图;视图中尽量避免出现数据排序的sql语句。存储过程、函数、外部游标必须在指定的数据包对象package中实现。存储过程、函数 的建立如同其它语言形式的编程过程,适合采用

30、模块化设计方法;当具体算法改变时,只 需要修改需要存储过程即可,不需要修改其它语言的源程序。当和数据库频繁交换数据是 通过存储过程可以提高运行速度,由于只有被授权的用户才能执行存储过程,所以存储过 程有利于提高系统的安全性。存储过程、函数必须检索数据库表记录或数据库其他对象,甚至修改(执行i nsert、delete. update. drop、create等操作)数据库信息。如果某项功能不需要和数据库打交道,则 不得通过数据库存储过程或函数的方式实现。在函数中避免采用dml或ddl语句。在数据包釆用存储过程、函数重载的方法,简化数据包设计,提高代码效率。存储过程、 函数必须有相应的出错处理功

31、能。2.4.6安全性设计管理默认用户在生产环境中,必须严格管理sys和system用户,必须修改其默认密码,禁止用该用户 建立数据库应用对象。删除或锁定数据库测试用户scott o数据库级用户权限设计必须按照应用需求,设计不同的用户访问权限。包括应用系统管理用户,普通用户等,按 照业务需求建立不同的应用角色。用户访问另外的用户对象时,应该通过创建同义词对象synonym进行访问。角色与权限确定每个角色对数据库表的操作权限,如创建、检索、更新、删除等。每个角色拥有刚好 能够完成任务的权限,不多也不少。在应用时再为用户分配角色,则每个用户的权限等于 他所兼

32、角色的权限之和。应用级用户设计应用级的用户帐号密码不能与数据库相同,防止用户直接操作数据库。用户只能用帐号登 陆到应用软件,通过应用软件访问数据库,而没有其它途径操作数据库。用户密码管理用户帐号的密码必须进行加密处理,确保在任何地方的查询都不会出现密码的明文。2.5.1字符类型数据sql中的字符类型数据应该统一使用单引号。特别对纯数字的字串,必须用单引号,否则 会导致内部转换而引起性能问题或索引失效问题。利用trim(),lower()等函数格式化匹配 条件。2.5.2 复杂 sql对于非常复杂的sql(特别是有多层嵌套,带子句或相关查询的),应该先考虑是否设计不当

33、 引起的。对于一些复杂sql可以考虑使用程序实现。user_tab_comments 数据字典comment on可加注解2.5.3高效性避免in子句使用in或not in子句时,特别是当子句中有多个值时,且查询数据表数据较多时,速度 会明显下降。可以采用连接查询或外连接查询来提高性能。char比varchar查询时高询在进行查询及建立索引时,char比varchar的效率要高,当然varchar在存储上比char 要好避免嵌套的select子句这个实际上是in子句的特例。避免使用select *语句如果不是必要取出所有数据,不要用*来代替,应给出字段

34、列表,注:不含select count(*)。避免不必要的排序不必要的数据排序大大的降低系统性能。2.5.4健壮性 i nsert 语句 使用i nsert语句一定要给出要插入值的字段列表,这样即使更改了表结构加了字段也不会影响现有系统的运行。 count(*county)、count(distinct id)的区别select coun t(*) from test tab得到表testtab的记录数select count(id) from testtab得到表testtab id字段非空记录数select count(distinet id) f

35、rom testtab得到表testtab id字段值非相同记录数 not null为字段类型性质的约束本约束功能在后期无语法使期失效,可使用修改字段类型方式alter table modify 字段名 类型 not nullalter table modify 字段名 类型外键值可用null的问题外键列如没有明确说明not null,可插入null记录(而null是在外部表的记录中没有的), 如无可插null记录的想法,要对外键字段加not null约束。序列sequence跳号的问题sequence因回滚,系统崩溃(使用cache内的值将认为已用)

36、,多表引用都将使其跳乃, 所以不能用于为连续序号ut l_row. cast_to_row unicn intersect' minus 使用 ordey by 的注意事项以上语句进行连表操作,而表同表的字段顺序的类型相同但字段标题名可不同,使用ordey by时后面如果是字段名,要求所有的表的字段标题名相同,否则用字段的顺序号select id, name, year from userlunionselect no, name, to number(null) year from user2order by 1,name, year2.5.5安全性 wh

37、ere 条件无论在使用select,还是使用破坏力极大的update和delete语句吋,定要检查where条 件判断的完整性,不要在运行时出现数据的重大丢失。如果不确定,最好先用select语句 带上相同条件來果一下结果集,來检验条件是否正确。2.5.6完整性冇依赖关系的表,例如主外键关系表,在删除父表时必须级联删除咲子表和应数据,或则按 照某种业务规则转移该数据。9i中表中字段缩小及变类烈,字段为空或表空,varchar和char 长度不变可任意改,字段名和表名可字段可用alter table table set unused (column) 设定为不可用,注意无命令再设为可用3备份恢复

38、设计原则3.1数据库exp/imp备份恢复oracle数据怩的妝p、imp提供了数据快速的备份和恢复手段,提供了数据库级、用户级和 表级的数据备份恢复方式。这种方法一般作为数据库辅助备份手段。3.1.1数据库级备份原则在数据库的数据屋比较小,或数据库初始建立的悄况下采用。不适合严24的在线牛:产环境 数据库备份。3.1.2用户级备份原则在用户对象表数据容量比较小、或则用户对象初始建立的情况下使用。3.1.3表级备份原则主要在以下场合采用的备份方式:参数表备份静态表备份3.2数据库冷备份原则数据丿牟冷备份必须符合以下原则: 数据库容量比较小。数据库允许关闭的情况。3.3 rm an备份恢复原则这

39、种方式适用于7*24环境下的联机热备份情形。3.3.1 catalog 数据库单独建立备份恢复用的数据库实例,尽对能与生产环境的数据库分开,确保catalog与生产 数据库的网络连接良好。在9i系统使用良好的备份策略以可,支持完全使用控制文件保存 catalog信息,备份策略如下:backup spfile format'/data/backup/%d_spfile_%t_%s_%p. bak,;sql z,alter system archive log currebackup archivelog all formatj/data/backup/%d arc %t %s %p. b

40、ak, delete allinput;backup current controlfile format'/data/backup/%d_ctl_%t_%s_%p. bak,;在spfi le>控制文件、数据库全丢的情况下口j通过下面的方式恢复rman> connect targetconnected to target database (not started)rman> startuprman> restore spfile from'/ht”backup/c0mmdbspfile_20030411_91. bak,;sql> startu

41、p0ra-00205: error in identifying controlfile, checkalert log for more informan> restore controlfile from'd:db92 ctl 20031113 9 l.bak,;mout database:rman> recover database;rman> alter database open resetlogs;注意:对数据库设定控制文件保存备份信息为365天,具体语句如下。alter system set conttol_f订e_record_keep_time二36

42、5scope=botii;3.3.2 archive log设置archive log的位置,确保存储介质冇足够的空间來保留指定时间内archive log的总 量。建设定期对rman进行全备份,删除兀余归档h志文件。3.3.3全备份策略对于小容量数据库,可以采用全备份策略。对于大容量数据库,必须制定全备份策略方案, 备份时对archive log进行转储,同时冷备份catalog数据库。3.3.4增量备份策略对于大容量数据库,必须制定增量备份、累积备份和全备份的周期,备份时对archive log进行转储,同时冷备份catalog数据库。3.3.5恢复原则采用rman脚本进行数据库恢复。数据

43、库恢复有以下儿种:局部恢复主要用于恢复表空间、数据文件,一般不影响数据库其他操作。完全恢复数据库恢复到故障点,由catalog当前数据库决定。不完全恢复恢复到数据库的某一时间点或备份点。恢复catalog数据库。恢复数据库control file。恢复到数据库某一时间点。重设日志序列。3.4备用数据库原则数据库系统在以下情况下可以考虑采用备用数据库data guard原则:数据库容量适中。数据库严格要求7*24不间断,或间断时间要求控制在最小范围内。数据库要求有异地备份冗余。3.5 一些小经验使川oemc的oms时,首选项要求是节点和数据库分别加入系统

44、川户(如:administrator) 和数据库dba用户(system)o节点的系统用户必须有批处理作业登录的权限agent不能川动,lisnter修改后都要手动删除oracleora9networkagent屮的* .q文件 oracleadminmy9ibdump 屮是川户的出错 fl志 改变表的空间的方式alter table hr.ssss move tablespace example (要重建索引);或用 imp导入时,设定导入用户只有某一表空间的使用权,无resource角色和unlimited tablespace 权限aleter system set log_checkp

45、oint_to_alter= true, ju 4报警文件发现 checkpoint 的起动和 结束时间。3.6系统调优知识生成状态报表(statspack的使用)使用(存放位置rdbmsxadminv)的文件生成报表用户?rdbmsadminspcreate.sql 建表将 timed_statistics 设定 true使用生成的perfstat用户登录,执行以下语句手动收集信息exex statspack.snapexec statspack.snap( i _snap_level= > 0,1 _modefy_prameter= > true) 0 级,最少

46、10 最大使用下面的语句生成状态报表*ardbmsadminspreport.sql其他相关文件delete stats$snapshot ;清原来记录数据?rdbmsadminsaputo.sqlselect job from user jobs 取用户作业号exec dbms_remove(作业号)timed_statistics= true 要求?rdbmsadminspdrop.sql ;361.2 sql 追踪设定全部用八跟踪alter system set sql_trace=true;用户级别跟踪alter session set sql_trace=true;用户的跟踪文件生成

47、在adminpidudumppid _ora_ spid.trc中,spid从下面语句得 到select bkpr, s.username, p.spid,s.sid,s.serial# from v$bgprocess b, v$session s, v$process p where p.addr = b.paddr(+) and p.addr = s.paddr and s.username=user;dba对特定用户跟踪exec dbms_system_set_sql_tracej n_session(sid,serial# ,true)信息从下面得到select b.n

48、ame bkpr, s.username, p.spid,s.sid,s.serial#,osuser,gramfrom v$bgprocess b, v$session s, v$process pwhere p.addr = b.paddr(+)and p.addr = s.paddr;/*p.spid 用于 sql_trace 时 li志编号,d bm s_sy st em. set_sq l_t r acej n_session(sid,erial#,true) *7用户的跟踪文件生成在adminpidudump中系统的跟踪文件生成在 adminpidbdumpalert_

49、pidj.logtkprof.exe将log文件生成格式化文本在av rd(ms) 20以上说明表空间使用过用频繁,考虑将表分开其他表空间上系统变量fast_start_mttr_target的值要人到不产生log等待,当然也可通过加log组使其不 等待reao log大小应为每30分钟切换一次建议衣空间的利用率不超80%buffer hit要达80%以上为好内存调整-般的内存分配原则sga50% (其中 80% data buffer, 15% share fwl, 5 其他)pga30%os 20%例如:2g 的 wl ndows 的平台,os300m, sag 1.2g,p

50、ga 500m内存分配的基本单位s g a=128m4 ms g a128m64位系统1 6 m, 3 2 m系统8 m动态分配时总值不可人于sga_max_size通过v$sgzldynamiq_fre乞memory収空闲内存空间在缩小时如果内存空间实际在应用屮,cpu利用率将达1 0 0%,最后将语句出错。v$sgastat可看实际的使用情况redo log buffer -般在 5 m 内,可通过 v$sessuon_wait 看是否等,v$sysstat对也通过报警文件看是否等切换,方法对加组。吋通过nologging (数据库也耍设定支持 nologging)方法减少日志文件产生量。

51、java_pool 没有设定时,使用 shared_pool_size.1 shared_pool本缓冲区用于sql语旬,plsql等的对象保存cursor_sharing exact| smilar| force游标共享设定force力式适用oltp数据库,exact力式适合数据仓库,similar为智能力式 hard parses硬sql语句分析,每秒要底于100次,小要加大shared_poolsoft parse软sql语句分析,oltp要达90%以上,小要加人shared_pool不建议用无命名pl sql段如果有人pl sql(存储过程)对象可强制保存于内存,也可加人shared_fool_reserved_size,人小不可过 shared_fwl_size的 50%,不然实例不 能起动.2 db_cache本缓冲区用于数据库数据对象保存db_cache_advice为on,可以提出通过企业管理器看到系统建议通过 select

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论