


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Oracle 数据库系统安装及配置标准2022-10目录1. 数据库物理设计原那么 51.1. 数据库环境配置原那么 51.1.1. 操作系统环境 51.1.2. 内存要求 51.1.3. 交换区设计 51.1.4. 其他 61.2. 数据库设计原那么 61.2.1. 数据库 SID 61.2.2. 数据库全局名 61.2.3. 数据库类型选择 61.2.4. 数据库连接类型选择 71.2.5. 数据库SGA配置 71.2.6. 数据库字符集选择 81.2.7. 数据库其他参数配置 91.2.8. 数据库控制文件配置 91.2.9. 数据库日志文件配置 101.2.10. 数据库回滚段配置 1
2、01.2.11. 数据库临时段表空间配置 111.2.12. 数据库系统表空间配置 111.3. 数据库表空间设计原那么 111.3.1. 表空间大小定义原那么 111.3.2. 表空间扩展性设计原那么 121.4. 裸设备的使用 122. 数据库逻辑设计原那么 132.1. 命名标准 132.1.1. 表属性标准 132.1.2. 索引 142.1.3. 视图 152.1.4. 实体化视图 152.1.5. 存储过程 152.1.6. 触发器 152.1.7. 函数 162.1.8. 数据包 162.1.9. 序列 162.1.10. 表空间 162.1.11. 数据文件 162.1.12.
3、 普通变量 162.1.13. 游标变量 172.1.14. 记录型变量 172.1.15. 表类型变量 172.1.16. 数据库链 172.2. 命名 172.2.1. 语言 172.2.2. 大小写 182.2.3. 单词分隔 182.2.4. 保存字 182.2.5. 命名长度 182.2.6. 字段名称 182.3. 数据类型 182.3.1. 字符型 182.3.2. 数字型 192.3.3. 日期和时间 192.3.4. 大字段 192.3.5. 唯一键 192.4. 设计 202.4.1. 范式 202.4.2. 表设计 202.4.3. 索引设计 232.4.4. 视图设计
4、242.4.5. 包设计 242.4.6. 平安性设计 252.5. SQL编写262.5.1. 字符类型数据 262.5.2. 复杂 sql 272.5.3. 高效性 272.5.4. 健壮性 282.5.5. 平安性 292.5.6. 完整性 303. 备份恢复设计原那么 303.1. 数据库exp/imp 备份恢复 303.1.1. 数据库级备份原那么 303.1.2. 用户级备份原那么 303.1.3. 表级备份原那么 313.2. 数据库冷备份原那么 313.3. Rman 备份恢复原那么 313.3.1. Catalog 数据库 313.3.2. Archive Log 323.3
5、.3. 全备份策略 333.3.4. 增量备份策略 333.3.5. 恢复原那么 333.4. 备用数据库原那么 343.5. 一些小经验 343.6. 系统调优知识 353.6.1. 生成状态报表statspack 的使用 353.6.2. sql 追踪 363.6.3. 内存调整 373.6.4. 排序的优化 403.6.5. 统计信息 414. 设计工具 421. 数据库物理设计原那么1.1. 数据库环境配置原那么1.1.1. 操作系统环境对于中小型数据库系统,采用linux操作系统比拟适宜,对于数 据库冗余要求负载均衡能力要求较高的系统, 可以采用Oracle10gRAC 的集群数据库
6、的方法,集群节点数范围在264个。对于大型数据库 系统,可以采用Sun Solaris SPARC 64位小型机系统或HP 9000系 列小型机系统。RAD5适合只读操作的数据库,RAD1适合OLTP数据 库。1.1.2. 内存要求对于linux操作系统下的数据库,由于在正常情况下 Oracle对 SGA的管理能力不超过1.7G。所以总的物理内存在4G以下。SGA的 大小为物理内存的50%75%对于64位的小型系统,Oracle数据库 对SGA的管理超过2G的限制,SGA设计在一个适宜的范围内:物理 内存的50%-70%当SGA过大的时候会导致内存分页,影响系统性 能。1.1.3. 交换区设计
7、当物理内存在2G以下的情况下,交换分区swap为物理内存的3倍,当物理内存2G的情况下,swap大小为物理内存的1 2倍。1.1.4. 其他其他环境变量参考Oracle相关的安装文档和随机文档。1.2. 数据库设计原那么1.2.1. 数据库SID数据库SID是唯一标志数据库的符号,命名长度不能超过5个字 符。对于单节点数据库,以字符开头的5个长度以内字串作为SID的 命名。对于集群数据库,当命名SID后,各节点SID自动命名为SIDnn, 其中nn为节点号:1, 2,64。例如rac1、rac2、rac24。1.2.2.数据库全局名数据库全局名称:<sid>.doma in1.2.
8、3. 数据库类型选择对于海量数据库系统,采用 data warehouse的类型。对于小型数据库或OLTF类型的数据库,采用Transaction Processing 类型124.数据库连接类型选择Oracle数据库有专用效劳器连接类型和多线程效劳器MTS连接类型。对于批处理效劳,需要专用效劳器连接方式,而对于OLTP服务那么MTS的连接方式比拟适宜。由于采用MTS后,可以通过配置网络 效劳实现某些特定批处理效劳采用专用效劳器连接方式,所以数据库设计时一般采用MTS类型Select叭口* m护nut datebM*酗孰吾 by厂 Oeilic-adi ServerFor neh cl ) n
9、t «nMetlon th* databufi will* rawurcA dtrilcuted to Mrvlrion iy that chant. 廿£昌 tiswr=E- r 亶h«a rt jn-ibeTr &r t>- tai cl lerit cz n rw»ct:lc»ns-归k必曲Id t电 bfr $Zilll b*扮urinI臼口 ue r is io t Ha- databa rFd "Sffirvtr Mic>d$&£iiHtral dl*nt teinnecEiWri%
10、stair* 电 口.sbvMiciiSdirmpycw, uw th祁md. wh«nthan imj*ll nunibw & tifiri Mftd ba cohnKt to th* dibbBiiSi'fVIlimMOUfl1 Whiltt (riTf jClVntlV UlllifinfiM r MCiurOM. T h* OFBOlt tlMTI-tfserver te e w III eriAbibcLEd It Shaj-t J ConP afiartiHtwrs1.2.5. 数据库SGA配置数据库SGA可以采用手工配置或按物理内存比例配置, 在数据库初
11、始设计阶段采用按比例配置方式,在实际应用中按系统调优方式修改SGApjxahaEC CZcnfijjijiraMoriJ 玉即电fJ 日jjjTjg 二 IrHUiihN£ 】:尹上! ujjmArc h tvv1*I-d mory£hiur acter ScIjeEjfet 勺 i= I Ml TyptcaHpwcttMw* N phHcul m.iriby <m mn fcr 0Li白tNbE弓匕¥»bhow distrils*jti>:n of HEimory-.F i Ib LocaE i<"n :厂匚URl4HnS
12、Ki a.rv d pool:S' irfer匸:柱血忖亍PCAlT和21 M omwy l or Oraclw =3 MTti I morrKary Irwluci云-fl >Mf <rf &r Pr<Ka: t la« nd thP Oa ft uIn 心thj s-rnp:拙 pr鼻rvidF鼻“ if 裂穴_1.26数据库字符集选择为了使数据库能够正确支持多国语言,必须配置适宜的数据库字 符集,采用UTF8字符集。注意:如果没有大对象,在使用过程中进行语言转换没有什么影响,具体过程如下切记设定的字符集必须是 ORACL支持,不然不能 star
13、tSQL> shutdow n immediate;SQL> startup mount;SQL> alter system en able restricted sessi on;SQL> alter system set job_queue_processes=0;SQL> alter database ope n;SQL> alter database character set intern al_use we8iso8859p1;SQL> shutdow n immediate;SQL> startup127.数据库其他参数配置127.
14、1. DB_FILESDb_files是数据库能够同时翻开的文件数量,默认值是 200个 当数据库规划时文件数量FILES接近或超过200个时候,按以下估计 值配置:1272Db_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用比拟小的
15、取值范围:2048 或4096Blocks推荐是系统操作的块倍数裸设备块大小是512字节,NTFS是 4K,使用8K的方式在大局部系统上通用。1.2.8. 数据库控制文件配置. 控制文件镜象多个控制文件存放在不同的物理位置。. 控制文件配置控制文件中参数设置, 最大的数据文件数量不能小于数据库参数 db_files 。1.2.9. 数据库日志文件配置. 日志文件大小日志文件的大小由数据库事务处理量决定, 在设计过程中, 确保 每 20 分钟切换一个日志文件。所以对于批处理系统,日志文件大小 为几百M到几G的大小。对于OLTF系统,日志文件大小为几百 M
16、以 内。. 日志文件组数量对于批处理系统,日志文件组为 510组;对于OLTP系统,日 志文件组为 35组,每组日志大小保持一致; 对于集群数据库系统, 每节点有各自独立的日志组。. 日志成员数量为了确保日志能够镜象作用,每日志组的成员为 2 个。1.2.10. 数据库回滚段配置在Oracle9i数据库中,设计Undo表空间取代以前版本的回滚段 表空间。Undo 表空间大小的设计标准由以下公式计算:Undospace = UR * UPS *db_block_size+ 冗余量UR: 表示在 undo 中保持的最长时间数秒,由数据库参数UND0_RETENTlO决定
17、。UPS表示在undo中,每秒产生的数据库块数量。1.2.11. 数据库临时段表空间配置数据库临时段表空间根据实际生产环境情况调整其大小, 表空间 属性为自动扩展。1.2.12. 数据库系统表空间配置系统表空间大小1G左右,除了存放数据库数据字典的数据外, 其他数据不得存储在系统表空间。1.3. 数据库表空间设计原那么1.3.1. 表空间大小定义原那么当表空间大小小于操作系统对最大文件限制时, 表空间由一个文 件组成。 如果表空间大小大于操作系统对最大文件限制时, 该表空间 由多个数据文件组成,表空间的总大小为估算为:Tablespace + sum 数据段+索引段*1 50%。132.表空间
18、扩展性设计原那么表空间数据文件采用自动扩展的方式,扩展容量快大小按2的整 数倍1M 2M 4M 8M 16M 32M 64M进行扩展,创立表空间时 尽量采用nologing选项。表空间的最大限制一般采用 unlimited , 除非确切知道表空间数据文件的最大使用范围。一般 windows 3 2位系统的文件最大2G,64位的 unix系统系统文件最大128 G,但也要注意文件格式设定的文件大小,建议最大为2G表空间采用local管理方式,例如:CREATE TABLESPACE TBS_USERINFO DATAFILE /oradata/tbs_useri nfo.dbf'SIZE
19、 8MREUSEAUTOEXTEND ONNEXT2MMAXSIZE UNLIMITEDNOLOGGINGEXTENT MANAGEMENTLOCALAUTOALLOCATESEGMENT SPACE MANAGEMENT AUTO;1.4. 裸设备的使用一个scsi设备可以14个分区,unix操作系统256个分区,性能 比文件系统方式高15%左右,空间大于要小于(实际分区大小减两个ORACLE勺数据块),比方100M大于为100000K推荐在unix使用软连接(ln)方式把裸设备形成文件,用参加表空间时加resue选项, 当然也可只接把设备参加表空间,移动裸设备使用 dd 命令。对于 win
20、dows 平台, oracle 提供软连接工具,实现裸设备的使 用,计算一条记录的长度。2. 数据库逻辑设计原那么2.1. 命名标准2.1.1. 表属性标准. 表名前缀为 Tbl_ 。数据表名称必须以有特征含义的单词或缩写组成, 中间可以用“ _分割,例如: tbl_pstn_detail 。表名称不能用双引 号包含。. 表分区名前缀为 p 。分区名必须有特定含义的单词或字串。例如 :tbl_pstn_detail 的分区 p2004100101 表示该分区存储 2004100101时段的数据。. 字段名字段名称必须用字母开头, 采用有特征含义的单词或
21、缩写, 不能 用双引号包含。. 主键名前缀为PK_主键名称应是 前缀+表名+构成的字段名。如果复合主键的构成字段较多,那么只包含第一个字段。表名可以去掉前缀。. 外键名前缀为FK外键名称应是前缀+外键表名+主键表名+外 键表构成的字段名。表名可以去掉前缀。2.1.2. 索引. 普通索引前缀为IDX_。索引名称应是 前缀+表名+构成的字段名。如果复 合索引的构成字段较多,那么只包含第一个字段,并添加序号。表名可 以去掉前缀。. 主键索引前缀为IDX_PK_索引名称应是前缀+表名+构成的主键字段名, 在创立表时候用 using index 指
22、定主键索引属性。. 唯一索引前缀为IDX_UK_索引名称应是 前缀+表名+构成的字段名。. 外键索引前缀为IDX_FK仝索引名称应是 前缀+表名+构成的外键字段名。. 函数索引前缀为IDX_func_。索引名称应是 前缀+表名+构成的特征表达 字符。. 蔟索引前缀为IDX_clu_。索引名称应是 前缀+表名+构成的簇字段。2.1.3. 视图前缀为V_。按业务操作命名视图。2.1.4. 实体化视图前缀为MV_按业务操作命名实体化视图。2.1.5. 存储过程前缀为 Proc_ 。按业务操作命名存储过程。2.1.6. 触发器前缀为 Trig_
23、。触发器名应是 前缀 + 表名 + 触发器名。2.1.7. 函数前缀为 Func_ 。按业务操作命名函数。2.1.8. 数据包前缀为 Pkg_ 。按业务操作集合命名数据包。2.1.9. 序列前缀为 Seq_ 。按业务属性命名。2.1.10. 表空间. 公用表空间前缀为 Tbs_ 。 根据存储的特性命名, 例如: tbs_parameter. 专用表空间Tbs_v表名称_nn。该表空间专门存储指定的某一个表,或某一 表的假设干个分区的数据。2.1.11. 数据文件表空间名 nn.dbf。nn =1 , 2, 3, 4,等。2.1.12. 普通变量前缀为 Var_
24、。 存放字符、数字、日期型变量。2.1.13. 游标变量前缀为 Cur_ 。存放游标记录集。2.1.14. 记录型变量前缀为 Rec_ 。 存放记录型数据。2.1.15. 表类型变量前缀为 Tab_ 。 存放表类型数据。2.1.16. 数据库链前缀为 dbl_ 。 表示分布式数据库外部链接关系。2.2. 命名2.2.1. 语言命名应该使用英文单词, 防止使用拼音, 特别不应该使用拼音简 写。命名不允许使用中文或者特殊字符。英文单词使用用对象本身意义相对或相近的单词。 选择最简单或 最通用的单词。不能使用毫不相干的单词来命名。当一个单词不能表达对象含义时, 用词组组合,如果组合太长时, 采用用简
25、或缩写,缩写要根本能表达原单词的意义。当出现对象名重名时, 是不同类型对象时, 加类型前缀或后缀以 示区别2.2.2. 大小写名称一律大写,以方便不同数据库移植, 以及防止程序调用问题。2.2.3. 单词分隔命名的各单词之间可以使用下划线进行分隔。2.2.4. 保存字命名不允许使用SQL呆留字。2.2.5. 命名长度表名、字段名、视图名长度应限制在 20个字符内 含前缀。2.2.6. 字段名称同一 个字段 名 在一个数据库 中只能 代表一 个意思。 比方 telephone 在一个表中代表 “ 号码 的意思,在另外一个表中就 不能代表 “ 号码 的意思。不同的表用于相同内容的字段应该采用同样的
26、名称, 字段类型定 义。2.3. 数据类型2.3.1. 字符型固定长度的字串类型采用 char ,长度不固定的字串类型采用varchar 。防止在长度不固定的情况下采用 char 类型。 如果在数据迁 移等出现以上情况,那么必须使用 trim() 函数截去字串后的空格。2.3.2. 数字型数字型字段尽量采用number类型,要注意精度。2.3.3. 日期和时间. 系统时间由数据库产生的系统时间首选数据库的日期型,如DATE类型。. 外部时间由数据导入或外部应用程序产生的日期时间类型采用 varchar类型,数据格式采用: YYYYMMDDHH24M。 ISS2.3.
27、4. 大字段如无特别需要, 防止使用大字段 (blob , clob , long , text , image 等)。2.3.5. 唯一键对于数字型唯一键值,尽可能用系列 sequence 产生。2.4. 设计2.4.1. 范式如无性能上的必须原因, 应该使用关系数据库理论, 到达较高的 范式,防止数据冗余 , 但是如果在数据量上与性能上无特别要求,考 虑到实现的方便性可以有适当的数据冗余,但根本上要到达3NF如非确实必要,防止一个字段中存储多个标志的做法。如11101表示 5个标志的一种取值。这往往是增加复杂度,降低性能的地方。2.4.2. 表设计. 逻辑段设计原那么2.4.
28、2.1.1. Tablespace每个表在创立时候, 必须指定所在的表空间, 不要采用默认表空 间以防止表建立在系统表空间上导致性能问题。 对于事务比拟繁忙的 数据表,必须存放在该表的专用表空间中。.2. Pctused默认 pctused 导致数据库物理空间利用率非常低 40%左右;对于 update 比拟少或 update 不导致行增大的表, pctused 可设置在 6085 之间;对于 update 能够导致行增大的表, update 设置在 4070 之 间。.3. Initrans对于需要并行查询或者在RAC 数据库中需要并行处理的表,initrans
29、设置为 2 的倍数,否那么,不设该值。.4. Storage1) Initial尽量减少表数据段的 extents 数量, initial的大小尽量接近数据段的大小 64K 128K ,1M 2M 4M 8M 16M ,,等按 2 的倍数进行圆整。例如表或分区数据段大小为28M那么initial取32M2) Next表或分区扩展 extents 的大小,按上述方法进行圆整。 当表或分 区数据段无法按 Initial 接近值进行圆整的情况下,其大小可以按 Initial+Next 进行圆整。此时,必须设置 Minextents=2 。例如:表 或分区数据段大小为 150M,贝S I
30、nitial=128M; Next=32M,Minextents=2 。3) Minextents该参数表示表创立时候 Extents 的初始数量,一般取 12。4) Pctincrease表示每个扩展 Extents 的增长率,设置 pctincrease=0 能够获得 较好的存储性能。. 特殊表设计原那么.1. 分区表对于数据量比拟大的表, 根据表数据的属性进行分区, 以得到较 好的性能。 如果表按某些字段进行增长, 那么采用按字段值范围进行范 围分区;如果表按某个字段的几个关键值进行分布, 那么采用列表分区; 对于静态表,那么采用 hash 分区或列表分区;在
31、范围分区中,如果数 据按某关键字段均衡分布,那么采用子分区的复合分区方法。.2. 聚蔟表如果某几个静态表关系比拟密切,那么可以采用聚蔟表的方法。. 完整性设计原那么.1. 主键约束关联表的父表要求有主健, 主健字段或组合字段必须满足非空属 性和唯一性要求。对于数据量比拟大的父表,要求指定索引段。.2. 外键关联对于关联两个表的字段,一般应该分别建立主键、外键。 实际是 否建立外键,根据对数据完整性的要求决定。为了提高性能,对于数 据量比拟大的标要求对外健建立索引。 对于有要求级联删除属性的外 键,必须指定 on delete cascad
32、e 。24233. NULL值对于字段能否 null ,应该在 sql 建表脚本中明确指明,不应使用缺省。由于NULLL直在参加任何运算中,结果均为 NULL所以在应 用程序中必须利用nvl()函数把可能为NULL值得字段或变量转换为 非NULL的默认值。例如:NVL sale,0。242.34 Check条件对于字段有检查性约束,要求指定 check 规那么。.5. 触发器触发器是一种特殊的存储过程,通过数据表的DMI操作而触发执 行,起作用是为确保数据的完整性和一致性不被破坏而创立, 实现数 据的完整约束。触发器的 before 或 after 事务属性的选择时候,对表操作的
33、事 务属性必须与应用程序事务属性保持一致, 以防止死锁发生。 在大型 导入表中,尽量防止使用触发器。. 注释表、字段等应该有中文名称注释,以及需要说明的内容。2.4.3. 索引设计对于查询中需要作为查询条件的字段, 可以考虑建立索引。 最终 根据性能的需要决定是否建立索引。 对于复合索引, 索引字段顺序比 较关键,把查询频率比拟高的字段排在索引组合的最前面。 在分区表 中,尽量采用 local 分区索引以方便分区维护。除非时分区 local 索引,否那么在创立索引段时候必须指定指定索引段的 tablespace 、storage 属性,具体参考 内容。2.4.4.
34、 视图设计视图是虚拟的数据库表,在使用时要遵循以下原那么:1) 从一个或多个库表中查询局部数据项;2) 为简化查询,将复杂的检索或字查询通过视图实现;3) 提高数据的平安性,只将需要查看的数据信息显示给权限有 限的人员;4) 视图中如果嵌套使用视图,级数不得超过 3 级;5) 由于视图中只能固定条件或没有条件,所以对于数据量较大 或随时间的推移逐渐增多的库表,不宜使用视图;可以采用 实体化视图代替;6) 除特殊需要,防止类似 Select * from TableName 而没有 检索条件的视图;7) 视图中尽量防止出现数据排序的 SQL语句。2.4.5. 包设计存储过程、函数、外部游标必须在
35、指定的数据包对象 PACKAG中 实现。存储过程、 函数的建立如同其它语言形式的编程过程,适合采 用模块化设计方法; 当具体算法改变时, 只需要修改需要存储过程即 可,不需要修改其它语言的源程序。 当和数据库频繁交换数据是通过 存储过程可以提高运行速度, 由于只有被授权的用户才能执行存储过 程,所以存储过程有利于提高系统的平安性。存储过程、 函数必须检索数据库表记录或数据库其他对象, 甚至 修改执行 Insert 、 Delete 、 Update、 Drop、Create 等操作数据 库信息。如果某项功能不需要和数据库打交道, 那么不得通过数据库存 储过程或函数的方式实现。在函数中防止采用D
36、ML或 DDL语句。在数据包采用存储过程、函数重载的方法,简化数据包设计,提 高代码效率。存储过程、函数必须有相应的出错处理功能。2.4.6. 平安性设计. 管理默认用户在生产环境中,必须严格管理 sys 和 system 用户,必须修改其 默认密码, 禁止用该用户建立数据库应用对象。 删除或锁定数据库测 试用户 scott 。. 数据库级用户权限设计必须按照应用需求, 设计不同的用户访问权限。 包括应用系统管 理用户,普通用户等,按照业务需求建立不同的应用角色。用户访问另外的用户对象时,应该通过创立同义词对象 synonym进行访问. 角色与权限确定
37、每个角色对数据库表的操作权限,如创立、检索、更新、删 除等。每个角色拥有刚好能够完成任务的权限,不多也不少。在应用 时再为用户分配角色,那么每个用户的权限等于他所兼角色的权限之 和。. 应用级用户设计应用级的用户帐号密码不能与数据库相同, 防止用户直接操作数 据库。用户只能用帐号登陆到应用软件,通过应用软件访问数据库, 而没有其它途径操作数据库。. 用户密码管理用户帐号的密码必须进行加密处理, 确保在任何地方的查询都不 会出现密码的明文。2.5. SQL 编写2.5.1. 字符类型数据SQL中的字符类型数据应该统一使用单引号。特别对纯数字的字串,必须用单引号, 否那
38、么会导致内部转换而引起性能问题或索引失效 问题。利用 trim(),lower() 等函数格式化匹配条件。2.5.2. 复杂 sql对于非常复杂的 sql( 特别是有多层嵌套,带子句或相关查询的 ) , 应该先考虑是否设计不当引起的。对于一些复杂SQL可以考虑使用程 序实现。user_tab_commeNTS 字典Comment on 可加注解2.5.3. 高效性. 防止 In 子句使用 In 或 not In 子句时,特别是当子句中有多个值时,且查 询数据表数据较多时, 速度会明显下降。 可以采用连接查询或外连接 查询来提高性能。char 比 varchar 查询时高效。 在进
39、行查询及建立索引时, char 比 varchar 的效率要高,当然 varchar 在存储上比 char 要好。. 防止嵌套的 Select 子句这个实际上是 In 子句的特例。. 防止使用 Select * 语句如果不是必要取出所有数据, 不要用 *来代替,应给出字段列表, 注:不含 select count(*) 。. 防止不必要的排序不必要的数据排序大大的降低系统性能。2.5.4. 健壮性. Insert 语句使用 Insert 语句一定要给出要插入值的字段列表,这样即使更 改了表结构加了字段也不会影响现有系统的运行。2.5.4.
40、2. 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 为字段类型性质的约束本约束功能在后期无语法使期失效,可使用修改字段类型方式。alter table modify字段名类型 not nullalter ta
41、ble modify字段名类型2.544. 外键值可用null的问题外键列如没有明确说明 not null ,可插入null记录而null 是在外部表的记录中没有的,如无可插 null记录的想法,要对外 键字段加not null约束。2.545. 序列sequenee跳号的问题2.546. unicn in terseet min us使用 ordey by 的考前须知以上语句进行连表操作,而表同表的字段顺序的类型相同但字段标题名可不同,使用ordey by时后面如果是字段名,要求所有的表的字段标题名相同,否那么用字段的顺序号select id,n ame,year from user1uni
42、onselect no,n ame,to_ nu mber( nu II) year from user2 order by 1,n ame,year2.5.5. 平安性无论在使用Select,还是使用破坏力极大的Update和Delete语句时,一定要检查Where条件判断的完整性,不要在运行时出现数据 的重大丧失。如果不确定,最好先用 Select语句带上相同条件来验 证一下结果集,来检验条件是否正确。2.5.6. 完整性有依赖关系的表, 例如主外键关系表, 在删除父表时必须级联删 除其子表相应数据,或那么按照某种业务规那么转移该数据。 9I 中表中 字段缩小及变类型,字段为空或表空, v
43、archar 和 char 长度不变可 任意改,字段名和表名可字段可用 ALTER TABLE table SET UNUSED (column) 设定为不可用,注意无命令再设为可用。3. 备份恢复设计原那么3.1. 数据库 exp/imp 备份恢复Oracle 数据库的 Exp、Imp 提供了数据快速的备份和恢复手段, 提供了数据库级、 用户级和表级的数据备份恢复方式。 这种方法一般 作为数据库辅助备份手段。3.1.1. 数据库级备份原那么在数据库的数据量比拟小, 或数据库初始建立的情况下采用。 不 适合 7*24 的在线生产环境数据库备份。3.1.2. 用户级备份原那么在用户对象表数据容量
44、比拟小、 或那么用户对象初始建立的情况下 使用。3.13表级备份原那么主要在以下场合采用的备份方式:参数表备份、静态表备份、分 区表的分区备份。3.2. 数据库冷备份原那么数据库冷备份必须符合以下原那么:1数据库容量比拟小。2数据库允许关闭的情况。3.3. Rman备份恢复原那么这种方式适用于7*24环境下的联机热备份情形。3.3.1. Catalog 数据库单独建立备份恢复用的数据库实例,尽可能与生产环境的数据库 分开,确保catalog与生产数据库的网络连接良好。在91系统使用良好的备份策略以可,支持完全使用控制文件保存catalog信息,备 份策略如下:backup spfile for
45、mat 7data/backup/%d_SPFILE_%T_%s_%p.bak'sql "alter system archive log current"backup archivelog all format 7data/backup/%d_ARC_%T_%s_%p.bak' delete all in put;backup curre nt con trolfile format7data/backup/%d_CTL_%T_%s_%p.bak'在spfile、控制文件、数据库全丢的情况下可通过下面 的方式恢复RMAN> connect t
46、argetconn ected to target database (not started)RMAN> startupRMAN> restore spfile from7data/backup/COMMDB_SPFILE_20030411_9_1.bak'SQL> startupORA-00205: error in ide ntifyi ng con trolfile, check alert log for more infoRMAN> restore con trolfile from 'd:DB92_CTL_20031113_9_1.BAK&
47、#39;Mout database:RMAN> recover database;RMAN> alter database ope n resetlogs;注意:对数据库设定控制文件保存备份信息为 365天,具体语句如下alter system set control_file_record_keep_time=365 SCOPE=BOTH;3.3.2. Archive Log设置Archive Log的位置,确保存储介质有足够的空间来保存指定时间内archive log的总量。建设定期对 RMAN进行全备份,删除冗余归档日志文件。3.3.3. 全备份策略对于小容量数据库,可以采用
48、全备份策略。对于大容量数据库, 必须制定全备份策略方案,备份时对 archive log 进行转储,同时冷 备份 catalog 数据库。3.3.4. 增量备份策略对于大容量数据库, 必须制定增量备份、 累积备份和全备份的周 期,备份时对 archive log 进行转储,同时冷备份 catalog 数据库3.3.5. 恢复原那么采用Rman脚本进行数据库恢复。数据库恢复有以下几种:. 局部恢复主要用于恢复表空间、数据文件,一般不影响数据库其他操作。. 完全恢复数据库恢复到故障点,由 catalog 当前数据库决定。. 不完全恢复恢复到数据库的某一时间
49、点或备份点。恢复 catalog 数据库。恢复数据库 control file 。恢复到数据库某一时间点。重设日志序列。3.4. 备用数据库原那么数据库系统在以下情况下可以考虑采用备用数据库 data guard 原那么:数据库容量适中。数据库严格要求 7*24 不间断,或间断时间要求控制在最小范围 内。数据库要求有异地备份冗余。3.5. 一些小经验使用oemc的oms时,首选项要求是节点和数据库分别参加系统 用户如:administrator 和数据库 DBA用户(system)。节点的系 统用户必须有批处理作业登录的权限。agent 不 能 启 动 , lisnter 修 改 后 都 要
50、手 动 删 除 oracleora9networkagent 中的 *.q 文件。oracleadminmy9ibdump 中是用户的出错日志。 改变表的空间的方式 alter table hr.ssss move TABLESPACE example要重建索引;或用imp导入时,设定导入用户只有某一 表空间的使用权,无RESOURCE色和UNLIMITED TABLESPACE艮。aleter system set log_checkpoint_to_alter=true ,后可报警 文件发现 checkpoint 的起动和结束时间。3.6. 系统调优知识3.6.1. 生成状态报表 stat
51、spack 的使用使用存放位置的文件生成报表用户。将 timed_statistics 设定 true 。使用生成的 perfstat 用户登录,执行以下语句手动收集信息。Exec statspack.snap(I_SNAP_LEVEL=>0,I_MODEFY_PRAMETER=>TRUE0) 级,最少 10 最大。使用下面的语句生成状态报表:其他相关文件delete stats$snapshot ; 清原来记录数据select job from user_jobs 取用户作业号 exec dbms_remove( 作业号 ) timed_statistics=true 要求?rd
52、bmsadminspdrop.sql ;3.6.2. sql 追踪设定全部用户跟踪alter system set sql_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(+
53、) AND p.addr = s.paddr and s.username=user;DBA寸特定用户跟踪exec dbms_system_set_Sql_trace_in_session(sid,serial#,true)信息从下面得到FROMv$bgprocess b, v$session s, v$process p WHERpE.addr = b.paddr(+)AND p.addr = s.paddr;/*p.spid 用 于 sql_trace 时 日 志 编 号 , dbms_system.set_sql_trace_in_session(sid,erial#,true)*/用户
54、的跟踪文件生成在 adminpidudump 中系统的跟踪文件生成在 adminpidbdumpalert_pid.log在 av Rd(ms) 20 以上说明表空间使用过用频繁,考虑将表分开 其他表空间上系统变量 fast_start_mttr_target 的值要大到不产生 log 等待, 当然也可通过加 log 组使其不等待reao log 大小应为每 30 分钟切换一次 建议表空间的利用率不超 80% buffer hit 要达 80%以上为好3.6.3. 内存调整一般的内存分配原那么SGA 50%其中 80% DATA BUFFE,R15% SHARE POO,L5 其他 PGA30
55、%OS 20%例如:2G的 WINDOWS平台,OS 300M SAG 1.2G,PGA 500M 内存分配的根本单位SGA?=128M 4MSGA?128M64位系统16M,32M系统8M动态分配时总值不可大于 sga_max_size通过 V$SGA_DYNAMIC_FREE_ME取ORY内存空间在缩小时如果内存空间实际在应用中,CPU利用率将达100%,最后将语句出错。V$SGASTAT可看实际的使用情况Redo log buffer一般在 5M内,可通过 v$sessuon_wait 看是否等, v$sysstat可也通过报警文件看是否等切换, 方法可加组。可通过 nologging 数据库也要设定支持 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语句分析
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏灌云万邦人力资源有限公司招聘工作人员考前自测高频考点模拟试题带答案详解
- 2025年河北张家口宣化区受灾地区临时公益性岗位考试模拟试题及答案解析
- 2025四川教师试题及答案
- 2025重庆市永川区陈食街道办事处全日制公益性岗位招聘1人考试参考试题及答案解析
- 2025杭州高新科创集团有限公司及下属子公司2025年第二批公开招聘6人考试参考试题及答案解析
- 2025银行考试经济试题及答案
- 2025湖北武汉科技大学专项招聘工作人员8人(第三批)考试模拟试题及答案解析
- 成都市双流区棠湖中学实验学校(东区) 2025年秋季教师招聘(28人)备考考试题库附答案解析
- 2025年福建省厦门市松柏第二小学补充非在编人员招聘(2025.9.23)考试参考题库及答案解析
- 2025医院新护士试题及答案
- 中国银行校招笔试题目及答案
- 《血常规解读》课件
- 冬季非煤矿山安全教育
- 微机室日常维护与保养计划
- 无印良品客服应聘简历
- 2025年煤矿安全生产知识题库
- 兄弟自动切线平缝机S-7000DD中文使用说明书
- 4.3平面镜成像(练习)原卷版
- MOOC 英语话中华-山东大学 中国大学慕课答案
- SCAN 反恐审核要求清单
- 人行桥、机耕桥施工
评论
0/150
提交评论