oracle数据库安装及配置规范-v1.0_第1页
oracle数据库安装及配置规范-v1.0_第2页
oracle数据库安装及配置规范-v1.0_第3页
oracle数据库安装及配置规范-v1.0_第4页
oracle数据库安装及配置规范-v1.0_第5页
免费预览已结束,剩余55页可下载查看

下载本文档

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

文档简介

1、oracle 数据库安装及配置规范-v1.0Oracle 数据库系统安装及配置规范2015-10目录1. 数据库物理设计原则 121.1. 数 据 库 环 境 配 置 原 则 121.1.1. 操 作 系 统 环 境121.1.2. 内 存 要 求121.1.3. 交 换 区 设 计131.1.4. 其 他131.2. 数 据 库 设 计 原 则 131.2.1. 数 据 库 SID131.2.2.数据库全局名131.2.3.数据库类型选择141.2.4. 数 据 库 连 接 类 型 选 择141.2.5. 数 据 库 SGA 配 置141.2.6. 数据库字符集选择151.2.7. 数 据

2、库 其 他 参 数 配 置161.2.8. 数 据库控制文件配置161.2.9. 数 据库日志文件配置171.2.10. 数据库回滚段配置171.2.11. 数 据 库 临 时 段 表 空 间 配 置181.2.12. 数 据 库系统表空间配置181.3. 数 据 库 表 空 间 设 计 原 则181.3.1. 表 空 间大小定义原则191.3.2. 表 空 间 扩 展 性 设 计 原 则 191.4. 裸 设 备 的 使 用 192. 数据库逻辑设计原则 202.1. 命 名 规 范 202.1.1. 表 属 性 规 范202.1.2. 索引212.1.3. 视图222.1.4. 实 体 化

3、 视 图222.1.5. 存 储 过 程222.1.6. 触 发 器222.1.7. 函 数232.1.8. 数 据 包列232.1.9. 序 232.1.10. 表 空 间232.1.11. 数 据 文 件232.1.12. 普通变量232.1.13. 游标变量242.1.14. 记录型变量242.1.15. 表类型变量242.1.16. 数 据 库 链242.2. 命 名242.2.1. 语 言 242.2.2. 大 小 写262.2.3. 单 词 分 隔252.2.4. 保 留 字252.2.5. 命 名 长 度252.2.6. 字 段 名 称252.3. 数 据 类 型252.3.1.

4、字符型252.3.2.数字型262.3.3.日期和时间262.3.4. 大字段262.3.5. 唯一键262.4. 设 计272.4.2. 表 设 计272.4.3. 索 引 设 计302.4.4. 视 图 设 计312.4.5. 包 设 计312.4.6. 安 全 性 设 计322.5.SQL 编 写332.5.1. 字 符 类 型 数 据332.5.2. 复 杂 sql34式272.5.3. 高效性342.4.1. 范2.5.4. 健壮性352.5.5. 安全性362.5.6. 完整性373. 备份恢复设计原则 373.1. 数 据 库 exp/imp 备 份 恢 复373.1.1. 数

5、据 库 级 备 份 原 则373.1.2. 用 户 级 备 份 原 则373.1.3. 表 级 备 份 原 则383.2. 数 据 库 冷 备 份 原 则383.3. Rman 备 份 恢 复 原 则383.3.1. Catalog 数 据 库383.3.2. Archive Log403.3.3. 全 备 份 策 略 403.3.4. 增 量 备 份 策 略403.3.5. 恢 复 原 则403.4. 备 用 数 据 库 原 则413.5. 一些小经验413.6. 系统调优知识423.6.1. 生成状态报表( statspack 的使用) 423.6.2. sql 追 踪 433.6.3.

6、内 存 调 整443.6.4. 排 序 的 优 化473.6.5. 统 计 信 息484. 设计工具 491. 数据库物理设计原则1.1. 数据库环境配置原则1.1.1. 操作系统环境对于中小型数据库系统, 采用 linux 操作系统比较合适, 对于数 据库冗余要求负载均衡能力要求较高的系统,可以采用 Oracle10gRAC 的集群数据库的方法,集群节点数范围在 264 个。 对于大型数据库系统,可以采用 Sun Solaris SPARC 64位小型机系 统或 HP9 000 系列小型机系统。 RAD5 适合只读操作的数据库, RAD1 适合 OLTP数据库。1.1.2. 内存要求对于 l

7、inux 操作系统下的数据库 , 由于在正常情况下 Oracle 对 SGA的管理能力不超过 1.7G。所以总的物理内存在 4G以下。 SGA的 大小为物理内存的 50%75%。对于 64位的小型系统, Oracle 数据库 对 SGA的管理超过 2G 的限制, SGA设计在一个合适的范围内:物理 内存的 50%70%,当 SGA过大的时候会导致内存分页,影响系统性1.1.3. 交换区设计当物理内存在 2G以下的情况下, 交换分区 swap为物理内存的 3 倍,当物理内存 >2G的情况下, swap 大小为物理内存的 1 2 倍。1.1.4. 其他其他环境变量参考 Oracle 相关的安

8、装文档和随机文档。1.2. 数据库设计原则1.2.1. 数据库 SID数据库 SID是唯一标志数据库的符号, 命名长度不能超过 5个字 符。对于单节点数据库,以字符开头的 5 个长度以内字串作为 SID 的命名。对于集群数据库,当命名 SID 后,各节点 SID 自动命名为 SIDnn,其中 nn 为节点号: 1,2,,64 。例如 rac1 、rac2 、rac24 。1.2.2. 数据库全局名数据库全局名称:<sid>.domain1.2.3. 数据库类型选择对于海量数据库系统,采用 data warehouse 的类型。对于小型数据库或 OLTP类型的数据库,采用 Trans

9、action Processing 类型。1.2.4. 数据库连接类型选择Oracle 数据库有专用服务器连接类型和多线程服务器 MTS连接 类型。对于批处理服务,需要专用服务器连接方式,而对于OLTP服务则 MTS的连接方式比较合适。 由于采用 MTS后,可以通过配置网络 服务实现某些特定批处理服务采用专用服务器连接方式, 所以数据库设计时一般采用 MTS类型1.2.5. 数据库 SGA配置数据库 SGA可以采用手工配置或按物理内存比例配置, 在数据库初始设计阶段采用按比例配置方式, 在实际应用中按系统调优方式修改 SGA。1.2.6. 数据库字符集选择为了使数据库能够正确支持多国语言, 必

10、须配置合适的数据库字 符集,采用 UTF8字符集。注意:如果没有大对象, 在使用过程中进行语言转换没有什么影 响,具体过程如下(切记设定的字符集必须是 ORACLE支持,不然不 能 start )SQL> shutdown immediate;SQL> startup mount;SQL> alter system enable restricted session;SQL> alter system set job_queue_processes=0;SQL> alter database open;SQL> alter database characte

11、r set internal_use we8iso8859p1;SQL> shutdown immediate;SQL> startup1.2.7. 数据库其他参数配置. DB_FILESDb_files 是数据库能够同时打开的文件数量, 默认值是 200 个。 当数据库规划时文件数量 FILES接近或超过 200 个时候,按以下估计 值配置:DB FILES = FILES * .2. Db_block_size一个 extent 要是 5 个 blocks 的倍数为好,如:一个 blocks 是 4096字节,那一个 extent 就是 2M、4M

12、或 8M为好。 Db_block_size 是数据库最小物理单元,一旦数据库创建完成,该参数无法修改, db_block_size 按以下规则调整:数据仓库类型: db_block_size 尽可能大,采用 8192 或 16384OLTP 类型: db_block_size 用比较小的取值范围: 2048 或 4096Blocks 推荐是系统操作的块倍数(裸设备块大小是 512 字节, NTFS是 4K ,使用 8K的方式在大部分系统上通用)。1.2.8. 数据库控制文件配置. 控制文件镜象多个控制文件存放在不同的物理位置. 控制文件配置控制文件中参数设置, 最大

13、的数据文件数量不能小于数据库参数 db_files 。1.2.9. 数据库日志文件配置. 日志文件大小日志文件的大小由数据库事务处理量决定, 在设计过程中, 确保 每 20 分钟切换一个日志文件。所以对于批处理系统,日志文件大小 为几百 M 到几 G的大小。对于 OLTP系统,日志文件大小为几百 M以 内。. 日志文件组数量对于批处理系统,日志文件组为 510 组;对于 OLTP系统,日 志文件组为 3 5组,每组日志大小保持一致; 对于集群数据库系统, 每节点有各自独立的日志组。. 日志成员数量为了确保日志能够镜象作用,每日志组的成员为 2 个。1.

14、2.10. 数据库回滚段配置在 Oracle9i 数据库中,设计 Undo 表空间取代以前版本的回滚段 表空间。Undo 表空间大小的设计规范由以下公式计算:Undospace = UR * UPS *db_block_size+ 冗余量UR: 表示在 undo 中保持的最长时间数(秒),由数据库参数UNDO_RETENTIO值N决定。UPS:表示在 undo 中,每秒产生的数据库块数量。例如:在数据库中保留 2 小时的回退数据,假定每小时产生 200个数据库块。则 Undospace = 2 * 3600 * 200 * 4K = 5.8G。1.2.11. 数据库临时段表空间配置数据库临时段

15、表空间根据实际生产环境情况调整其大小, 表空间 属性为自动扩展。1.2.12. 数据库系统表空间配置系统表空间大小 1G左右,除了存放数据库数据字典的数据外, 其他数据不得存储在系统表空间。1.3. 数据库表空间设计原则1.3.1. 表空间大小定义原则当表空间大小小于操作系统对最大文件限制时, 表空间由一个文 件组成。如果表空间大小大于操作系统对最大文件限制时, 该表空间 由多个数据文件组成,表空间的总大小为估算为:Tablespace + sum ( 数据段 +索引段 )*150%。1.3.2. 表空间扩展性设计原则表空间数据文件采用自动扩展的方式, 扩展容量快大小按 2 的整 数倍( 1M

16、、2M、4M、8M、16M、32M、64M)进行扩展,创建表空间时 尽量采用 nologing 选项。表空间的最大限制一般采用 unlimited , 除非确切知道表空间数据文件的最大使用范围。(一般 windows 位系统的文件最大,位的 unix 系统系统文件最大 G,但也要注意文件格式设定的文件大小) , 建议最大为 2G。表空间采 用 local 管理方式,例如:CREATE TABLESPACE TBS_USERINFODATAFILE /oradata/tbs_userinfo.dbf'SIZE 8MREUSEAUTOEXTEND ONNEXT 2MMAXSIZE UNLI

17、MITEDNOLOGGINGEXTENT MANAGEMENTLOCALAUTOALLOCATESEGMENT SPACE MANAGEMENT AUTO;1.4. 裸设备的使用一个 scsi 设备可以 14 个分区,unix 操作系统 256个分区, 性能 比文件系统方式高 15左右,空间大于要小于 ( 实际分区大小减两个 ORACLE的数据块 ) ,比如 100M,大于为 100000K,推荐在 unix 使用 软连接 (ln) 方式把裸设备形成文件, 用加入表空间时加 resue 选项, 当然也可只接把设备加入表空间,移动裸设备使用 dd 命令。对于 windows 平台, oracle

18、 提供软连接工具,实现裸设备的使 用,计算一条记录的长度。2. 数据库逻辑设计原则2.1. 命名规范2.1.1. 表属性规范. 表名前缀为 Tbl_ 。数据表名称必须以有特征含义的单词或缩写组 成,中间可以用“ _”分割,例如: tbl_pstn_detail 。表名称不能用 双引号包含。. 表分区名前缀为 p 。分区名必须有特定含义的单词或字串。例如 :tbl_pstn_detail 的分区 p2004100101 表示该分区存储 2004100101时段的数据。. 字段名字段名称必须用字母开头, 采用有特征含义的单词或缩写, 不能 用双引号包含2.

19、1.1.4. 主键名前缀为 PK_。主键名称应是 前缀+表名 +构成的字段名。如果复 合主键的构成字段较多,则只包含第一个字段。表名可以去掉前缀。. 外键名前缀为 FK_。外键名称应是 前缀 + 外键表名 + 主键表名 + 外 键表构成的字段名。表名可以去掉前缀。2.1.2. 索引. 普通索引前缀为 IDX_。索引名称应是 前缀 +表名+构成的字段名。如果复 合索引的构成字段较多, 则只包含第一个字段, 并添加序号。 表名可 以去掉前缀。. 主键索引前缀为 IDX_PK_。索引名称应是 前缀+表名 +构成的主键字段名, 在创建表时候用 using in

20、dex 指定主键索引属性。. 唯一索引前缀为 IDX_UK_。索引名称应是 前缀 +表名+构成的字段名。. 外键索引前缀为 IDX_FK_。索引名称应是 前缀+表名 +构成的外键字段名。. 函数索引前缀为 IDX_func_ 。索引名称应是 前缀+表名+构成的特征表达 字符。. 蔟索引前缀为 IDX_clu_ 。索引名称应是 前缀 +表名+构成的簇字段。2.1.3. 视图前缀为 V_。按业务操作命名视图。2.1.4. 实体化视图前缀为 MV_。按业务操作命名实体化视图。2.1.5. 存储过程前缀为 Proc_ 。按业务操作命名存储过程。2

21、.1.6. 触发器前缀为 Trig_ 。触发器名应是 前缀 + 表名 + 触发器名2.1.7. 函数前缀为 Func_ 。按业务操作命名函数。2.1.8. 数据包前缀为 Pkg_ 。按业务操作集合命名数据包。2.1.9. 序列前缀为 Seq_ 。按业务属性命名。2.1.10. 表空间. 公用表空间前缀为 Tbs_ 。 根据存储的特性命名, 例如: tbs_parameter. 专用表空间Tbs_<表名称 >_nn。该表空间专门存储指定的某一个表,或某一 表的若干个分区的数据。2.1.11. 数据文件<表空间名 >nn.dbf 。nn =1

22、 ,2,3,4,等。2.1.12. 普通变量前缀为 Var_ 。 存放字符、数字、日期型变量。2.1.13. 游标变量前缀为 Cur_ 。存放游标记录集。2.1.14. 记录型变量前缀为 Rec_ 。 存放记录型数据。2.1.15. 表类型变量前缀为 Tab_ 。 存放表类型数据。2.1.16. 数据库链前缀为 dbl_ 。 表示分布式数据库外部链接关系。2.2. 命名2.2.1. 语言命名应该使用英文单词, 避免使用拼音, 特别不应该使用拼音简 写。命名不允许使用中文或者特殊字符。英文单词使用用对象本身意义相对或相近的单词。 选择最简单或 最通用的单词。不能使用毫不相干的单词来命名。当一个单

23、词不能表达对象含义时, 用词组组合,如果组合太长时, 采用用简或缩写,缩写要基本能表达原单词的意义。当出现对象名重名时, 是不同类型对象时, 加类型前缀或后缀以 示区别2.2.2. 大小写名称一律大写,以方便不同数据库移植, 以及避免程序调用问题。2.2.3. 单词分隔命名的各单词之间可以使用下划线进行分隔。2.2.4. 保留字命名不允许使用 SQL保留字。2.2.5. 命名长度表名、字段名、视图名长度应限制在 20个字符内 (含前缀)。2.2.6. 字段名称同一个字段名在一个数据库中只能代表一个意思。比如 telephone 在一个表中代表 “ 电话号码 ” 的意思,在另外一个表中就 不能代

24、表 “手机号码 ” 的意思。不同的表用于相同内容的字段应该采用同样的名称, 字段类型定 义。2.3. 数据类型2.3.1. 字符型固定长度的字串类型采用 char ,长度不固定的字串类型采用varchar 。避免在长度不固定的情况下采用 char 类型。如果在数据迁 移等出现以上情况,则必须使用 trim() 函数截去字串后的空格。2.3.2. 数字型数字型字段尽量采用 number 类型,要注意精度。2.3.3. 日期和时间. 系统时间由数据库产生的系统时间首选数据库的日期型,如 DATE类型。. 外部时间由数据导入或外部应用程序产生的日期时间类型采用 varch

25、ar类型,数据格式采用: YYYYMMDDHH24M。ISS2.3.4. 大字段如无特别需要, 避免使用大字段 (blob ,clob ,long ,text ,image 等)。2.3.5. 唯一键对于数字型唯一键值,尽可能用系列 sequence 产生2.4. 设计2.4.1. 范式如无性能上的必须原因, 应该使用关系数据库理论, 达到较高的 范式,避免数据冗余 , 但是如果在数据量上与性能上无特别要求,考 虑到实现的方便性可以有适当的数据冗余,但基本上要达到3NF.如非确实必要,避免一个字段中存储多个标志的做法。如 11101 表示 5 个标志的一种取值。这往往是增加复杂度,降低性能的地

26、方。2.4.2. 表设计. 逻辑段设计原则.1. Tablespace每个表在创建时候, 必须指定所在的表空间, 不要采用默认表空 间以防止表建立在系统表空间上导致性能问题。 对于事务比较繁忙的 数据表,必须存放在该表的专用表空间中。.2. Pctused默认 pctused 导致数据库物理空间利用率非常低 40%左右;对于 update 比较少或 update 不导致行增大的表, pctused 可设置在 6085 之间;对于 update 能够导致行增大的表, update 设置在 4070 之间。.3.Initrans对于需要并行查

27、询或者在 RAC 数据库中需要并行处理的表, initrans 设置为 2 的倍数,否则,不设该值。.4. Storage1) Initial尽量减少表数据段的 extents 数量,initial 的大小尽量接近数 据段的大小 64K, 128K, ,1M,2M,4M,8M,16M ,等按 2 的倍数进行圆整。例如表或分区数据段大小为 28M,则initial 取 32M。2) Next表或分区扩展 extents 的大小, 按上述方法进行圆整。 当表或分 区数据段无法按 Initial 接近值进行圆整的情况下,其大小可以按 Initial+Next 进行圆整。此时,必须设置

28、Minextents=2 。例如:表 或 分 区 数 据 段 大 小 为 150M,则 Initial=128M ; Next=32M, Minextents=2 。3) Minextents该参数表示表创建时候 Extents 的初始数量,一般取 12。4) Pctincrease表示每个扩展 Extents 的增长率,设置 pctincrease=0 能够获 得较好的存储性能. 特殊表设计原则.1. 分区表对于数据量比较大的表, 根据表数据的属性进行分区, 以得到较 好的性能。 如果表按某些字段进行增长, 则采用按字段值范围进行范 围分区;如果表按某个字段的几个

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

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

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

32、段时候必须指定指定索引段的 tablespace 、 storage 属性,具体参考 内容。2.4.4. 视图设计视图是虚拟的数据库表,在使用时要遵循以下原则:1) 从一个或多个库表中查询部分数据项;2) 为简化查询,将复杂的检索或字查询通过视图实现;3) 提高数据的安全性,只将需要查看的数据信息显示给权限有限的 人员;4) 视图中如果嵌套使用视图,级数不得超过 3 级;5) 由于视图中只能固定条件或没有条件,所以对于数据量较大或随 时间的推移逐渐增多的库表,不宜使用视图;可以采用实体化视 图代替;6) 除特殊需要,避免类似 Select * from TableName 而没

33、有检索 条件的视图;7) 视图中尽量避免出现数据排序的 SQL语句。2.4.5. 包设计存储过程、函数、外部游标必须在指定的数据包对象PACKAGE中实现。存储过程、 函数的建立如同其它语言形式的编程过程, 适合 采用模块化设计方法; 当具体算法改变时, 只需要修改需要存储过程 即可,不需要修改其它语言的源程序。 当和数据库频繁交换数据是通 过存储过程可以提高运行速度, 由于只有被授权的用户才能执行存储 过程,所以存储过程有利于提高系统的安全性。存储过程、 函数必须检索数据库表记录或数据库其他对象, 甚至 修改(执行 Insert 、Delete 、 Update、Drop、Create 等操

34、作)数据 库信息。如果某项功能不需要和数据库打交道, 则不得通过数据库存 储过程或函数的方式实现。在函数中避免采用 DML或 DDL语句。在数据包采用存储过程、 函数重载的方法, 简化数据包设计, 提 高代码效率。存储过程、函数必须有相应的出错处理功能。2.4.6. 安全性设计. 管理默认用户在生产环境中,必须严格管理 sys 和 system 用户,必须修改其 默认密码, 禁止用该用户建立数据库应用对象。 删除或锁定数据库测 试用户 scott 。. 数据库级用户权限设计必须按照应用需求, 设计不同的用户访问权限。 包括应用系统管 理用户,普通用户等,按照业务需求

35、建立不同的应用角色。用户访问另外的用户对象时, 应该通过创建同义词对象 synonym进行访问. 角色与权限确定每个角色对数据库表的操作权限,如创建、检索、更新、删 除等。每个角色拥有刚好能够完成任务的权限, 不多也不少。 在应用 时再为用户分配角色,则每个用户的权限等于他所兼角色的权限之 和。. 应用级用户设计应用级的用户帐号密码不能与数据库相同, 防止用户直接操作数 据库。用户只能用帐号登陆到应用软件,通过应用软件访问数据库, 而没有其它途径操作数据库。. 用户密码管理用户帐号的密码必须进行加密处理, 确保在任何地方的查询都不 会出现密码的明文。2

36、.5. SQL 编写2.5.1. 字符类型数据SQL中的字符类型数据应该统一使用单引号。 特别对纯数字的字 串,必须用单引号, 否则会导致内部转换而引起性能问题或索引失效 问题。利用 trim(),lower() 等函数格式化匹配条件。2.5.2. 复杂 sql对于非常复杂的 sql( 特别是有多层嵌套,带子句或相关查询 的) ,应该先考虑是否设计不当引起的。对于一些复杂 SQL可以考虑 使用程序实现。USER_TAB_COMMEN数T据S 字典Comment on 可加注解2.5.3. 高效性. 避免 In 子句使用 In 或 not In 子句时,特别是当子句中有多个值时,且

37、查 询数据表数据较多时, 速度会明显下降。 可以采用连接查询或外连接 查询来提高性能。Char 比 varchar 查询时高效。 在进行查询及建立索引时, char 比 varchar 的效率要高,当然 varchar 在存储上比 char 要好。. 避免嵌套的 Select 子句这个实际上是 In 子句的特例。. 避免使用 Select * 语句如果不是必要取出所有数据, 不要用 *来代替,应给出字段列表,. 避免不必要的排序不必要的数据排序大大的降低系统性能2.5.4. 健壮性. Insert 语句使用 Insert 语句一定要给出要

38、插入值的字段列表,这样即使更 改了表结构加了字段也不会影响现有系统的运行。. Count(*) 、 Count(id) 、count(distinct id) 的区别Select count(*) from testtab得到表 testtab 的记录数select count(id) from testtab得到表 testtab id 字段非空记录数select count(distinct id) from testtab得到表 testtab id 字段值非相同记录数. Not null 为字段类型性质的约束本约束功能在后期无语法使期失效,可使用修改字段类型

39、方式。 alter table modify字段名 类型 not nullalter table modify字段名 类型. 外键值可用 null 的问题外键列如没有明确说明 not null ,可插入 null 记录(而 null 是在外部表的记录中没有的),如无可插 null 记录的想法,要对外 键字段加 not null 约束。. 序列 sequence 跳号的问题sequence 因回滚,系统崩溃 (使用 cache 内的值将认为已用) , 多表引用都将使其跳号,所以不能用于为连续序号 utl_row.cast_to_row. unicn in

40、tersect minus 使用 ordey by 的注意事项以上语句进行连表操作, 而表同表的字段顺序的类型相同但字段 标题名可不同,使用 ordey by 时后面如果是字段名,要求所有的表 的字段标题名相同,否则用字段的顺序号select id,name,year from user1unionselect no,name,to_number(null) year from user2order by 1,name,year2.5.5. 安全性无论在使用 Select, 还是使用破坏力极大的 Update 和 Delete 语 句时,一定要检查 Where条件判断的完整性, 不要在运行时出

41、现数据 的重大丢失。如果不确定,最好先用 Select 语句带上相同条件来验 证一下结果集,来检验条件是否正确。有依赖关系的表, 例如主外键关系表, 在删除父表时必须级联删 除其子表相应数据,或则按照某种业务规则转移该数据。 9I 中表中 字段缩小及变类型,字段为空或表空, varchar 和 char 长度不变可 任意改,字段名和表名可字段可用 ALTER TABLE table SET UNUSE (column) 设定为不可用,注意无命令再设为可用。3. 备份恢复设计原则3.1. 数据库 exp/imp 备份恢复Oracle 数据库的 Exp、 Imp 提供了数据快速的备份和恢复手段,

42、提供了数据库级、 用户级和表级的数据备份恢复方式。 这种方法一般 作为数据库辅助备份手段。3.1.1. 数据库级备份原则在数据库的数据量比较小, 或数据库初始建立的情况下采用。 不 适合 7*24 的在线生产环境数据库备份。3.1.2. 用户级备份原则在用户对象表数据容量比较小、 或则用户对象初始建立的情况下使用3.1.3. 表级备份原则主要在以下场合采用的备份方式: 参数表备份、 静态表备份、 分 区表的分区备份。3.2. 数据库冷备份原则数据库冷备份必须符合以下原则:1) 数据库容量比较小。2) 数据库允许关闭的情况。3.3. Rman 备份恢复原则这种方式适用于 7*24 环境下的联机热

43、备份情形。3.3.1. Catalog 数据库单独建立备份恢复用的数据库实例, 尽可能与生产环境的数据库 分开,确保 catalog 与生产数据库的网络连接良好。在 9I 系统使用 良好的备份策略以可, 支持完全使用控制文件保存 catalog 信息,备 份策略如下:backup spfile format'/data/backup/%d_SPFILE_%T_%s_%p.bak'sql "alter system archive log current"backup archivelog all format'/data/backup/%d ARC%

44、T%s%p.bak' delete allinput;backup current controlfile format'/data/backup/%d_CTL_%T_%s_%p.bak'在 spfile 、控制文件、数据库全丢的情况下可通过下面 的方式恢复RMAN> connect targetconnected to target database (not started)RMAN> startupRMAN> restore spfile from '/data/backup/COMMDB_SPFILE_20030411_9_1.bak&

45、#39;SQL> startupORA-00205: error in identifying controlfile, check alert log for more infoRMAN> restore controlfile from 'd:DB92_CTL_20031113_9_1.BAK'Mout database:RMAN> recover database;RMAN> alter database open resetlogs;注意:对数据库设定控制文件保存备份信息为 365 天,具体语句 如下。alter system set contr

46、ol_file_record_keep_time=365 SCOPE=BOTH;3.3.2. Archive Log设置 Archive Log 的位置,确保存储介质有足够的空间来保留 指定时间内 archive log 的总量。建设定期对 RMAN进行全备份,删 除冗余归档日志文件。3.3.3. 全备份策略对于小容量数据库,可以采用全备份策略。对于大容量数据库, 必须制定全备份策略方案,备份时对 archive log 进行转储,同时冷 备份 catalog 数据库。3.3.4. 增量备份策略对于大容量数据库, 必须制定增量备份、 累积备份和全备份的周 期,备份时对 archive log

47、进行转储,同时冷备份 catalog 数据库。3.3.5. 恢复原则采用 Rman脚本进行数据库恢复。数据库恢复有以下几种:. 局部恢复主要用于恢复表空间、数据文件,一般不影响数据库其他操作。. 完全恢复数据库恢复到故障点,由 catalog 当前数据库决定。. 不完全恢复恢复到数据库的某一时间点或备份点。恢复 catalog 数据库。恢复数据库 control file。恢复到数据库某一时间点。重设日志序列。3.4. 备用数据库原则数据库系统在以下情况下可以考虑采用备用数据库 data guard 原则:数据库容量适中。数据库严格要求 7*24 不间

48、断,或间断时间要求控制在最小范围 内。数据库要求有异地备份冗余。3.5. 一些小经验使用 oemc的 oms时,首选项要求是节点和数据库分别加入系统 用户(如: administrator )和数据库 DBA用户 (system) 。节点的系 统用户必须有批处理作业登录的权限。agent 不 能 启 动 , lisnter 修 改 后 都 要 手 动 删 除 oracleora9networkagent中的 *.q 文件。oracleadminmy9ibdump 中是用户的出错日志。改变表的空间的方式 alter table hr.ssss move TABLESPACE example(要重

49、建索引) ; 或用 imp 导入时,设定导入用户只有某一 表空间的使用权,无 RESOURC角E色和 UNLIMITED TABLESPAC权E限。aleter system set log_checkpoint_to_alter=true,后可报警文件发现 checkpoint 的起动和结束时间。3.6. 系统调优知识3.6.1. 生成状态报表( statspack 的使用)使用(存放位置 )的文件生成报表用户。?rdbmsadminSpcreate.sql 建表。将 timed_statistics 设定 true 。使用生成的 perfstat 用户登录,执行以下语句手动收集信息。Exe

50、x statspack.snapExec statspack.snap(I_SNAP_LEVEL=>0,I_MODEFY_PRAMETER=>TRUE0) 级,最少 10 最大。使用下面的语句生成状态报表:?rdbmsadminSpreport.sql其他相关文件delete stats$snapshot ;清原来记录数据?rdbmsadminSaputo.sqlexec dbms_remove(作业号 ) timed_statistics=true 要求 ?rdbmsadminspdrop.sql ;3.6.2. sql 追踪设定全部用户跟踪alter system set sq

51、l_trace=true;用户级别跟踪alter session set sql_trace=true;用 户 的 跟 踪 文 件 生 成 在 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 d

52、bms_system_set_Sql_trace_in_session(sid,serial#,true)信息从下面得到SELECT bkpr, s.username, p.spid,s.sid,s.serial#,osuser,gram FROM v$bgprocess b, v$session s, v$process p WHERE p.addr = b.paddr(+)AND p.addr = s.paddr;/*p.spid用 于 sql_trace 时 日 志 编 号dbms_system.set_sql_trace_in_session(sid,erial

53、#,true)*/用户的跟踪文件生成在 adminpidudump 中 系统的跟踪文件生成在 adminpidbdumpalert_pid.log tkprof.exe 将 log 文件生成格式化文本在 av Rd(ms) 20 以上说明表空间使用过用频繁,考虑将表分开 其他表空间上系统变量 fast_start_mttr_target 的值要大到不产生 log 等 待,当然也可通过加 log 组使其不等待reao log 大小应为每 30 分钟切换一次建议表空间的利用率不超 80%buffer hit要达 80%以上为好3.6.3. 内存调整一般的内存分配原则SGA 50%(其中 80% D

54、ATA BUFFE,R15% SHARE POO,L5 其他)PGA30%OS 20%例如: 2G的 WINDOW的S平台, OS 300M,SAG 1.2G,PGA 500M 内存分配的基本单位 位系统,系统动态分配时总值不可大于 sga_max_size通过 V$SGA_DYNAMIC_FREE_MEM取O空R闲Y内存空间 在缩小时如果内存空间实际在应用中,利用率将达 ,最后将语句出错。V$SGASTAT 可看实际的使用情况Redo log buffer 一般在内,可通过 v$sessuon_wait 看是 否等, v$sysstat可也通过报警文件看是否等切换,方法可加组。可通过 nol

55、ogging (数据库也要设定支持 nologging )方法减少日志文件产 生量。java_pool 没有设定时,使用 shared_pool_size. shared_pool本缓冲区用于 sql 语句,pl sql 等的对象保存Cursor_sharingExact|Similar|force 游标共享设定Force 方式适用 OLTP数据库,Exact 方式适合数据仓库, similar 为智能方式hard parses 硬 SQL语句分析,每秒要底于 100 次, 小要加大 shared_poolsoft parse 软 SQL 语句分析, OLTP要达 90%以上,小要加大 shared_pool不建议用无命名 PL SQL段如果有大 PL SQL(存储过程 ) 对象可强制保存于内存,也可加大 SHARED_POOL_RESERVED,_大SI小ZE不可过 SHARED_POOL_SI的ZE50%, 不然实例不能起动. db_cache本缓冲区用于

温馨提示

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

最新文档

评论

0/150

提交评论