Oracle数据库系统安装及配置规范2015-10目录1. 数据库物理设计原则 (5)1.1. 数据库环境配置原则 (5)1.1.1. 操作系统环境 (5)1.1.2. 内存要求 (5)1.1.3. 交换区设计 (5)1.1.4. 其他 (6)1.2. 数据库设计原则 (6)1.2.1. 数据库SID (6)1.2.2. 数据库全局名 (6)1.2.3. 数据库类型选择 (6)1.2.4. 数据库连接类型选择 (7)1.2.5. 数据库SGA配置 (7)1.2.6. 数据库字符集选择 (8)1.2.7. 数据库其他参数配置 (9)1.2.8. 数据库控制文件配置 (9)1.2.9. 数据库日志文件配置 (10)1.2.10. 数据库回滚段配置 (10)1.2.11. 数据库临时段表空间配置 (11)1.2.12. 数据库系统表空间配置 (11)1.3. 数据库表空间设计原则 (11)1.3.1. 表空间大小定义原则 (11)1.3.2. 表空间扩展性设计原则 (12)1.4. 裸设备的使用 (12)2. 数据库逻辑设计原则 (13)2.1. 命名规范 (13)2.1.1. 表属性规范 (13)2.1.2. 索引 (14)2.1.3. 视图 (15)2.1.4. 实体化视图 (15)2.1.5. 存储过程 (15)2.1.6. 触发器 (15)2.1.7. 函数 (16)2.1.8. 数据包 (16)2.1.9. 序列 (16)2.1.10. 表空间 (16)2.1.11. 数据文件 (16)2.1.12. 普通变量 (16)2.1.13. 游标变量 (17)2.1.14. 记录型变量 (17)2.1.15. 表类型变量 (17)2.2. 命名 (17)2.2.1. 语言 (17)2.2.2. 大小写 (18)2.2.3. 单词分隔 (18)2.2.4. 保留字 (18)2.2.5. 命名长度 (18)2.2.6. 字段名称 (18)2.3. 数据类型 (18)2.3.1. 字符型 (18)2.3.2. 数字型 (19)2.3.3. 日期和时间 (19)2.3.4. 大字段 (19)2.3.5. 唯一键 (19)2.4. 设计 (20)2.4.1. 范式 (20)2.4.2. 表设计 (20)2.4.3. 索引设计 (23)2.4.4. 视图设计 (24)2.4.5. 包设计 (24)2.4.6. 安全性设计 (25)2.5. SQL编写 (26)2.5.1. 字符类型数据 (26)2.5.2. 复杂sql (27)2.5.3. 高效性 (27)2.5.4. 健壮性 (28)2.5.5. 安全性 (29)2.5.6. 完整性 (30)3. 备份恢复设计原则 (30)3.1. 数据库exp/imp备份恢复 (30)3.1.1. 数据库级备份原则 (30)3.1.2. 用户级备份原则 (30)3.1.3. 表级备份原则 (31)3.2. 数据库冷备份原则 (31)3.3. Rman备份恢复原则 (31)3.3.1. Catalog数据库 (31)3.3.2. Archive Log (33)3.3.3. 全备份策略 (33)3.3.4. 增量备份策略 (33)3.3.5. 恢复原则 (33)3.4. 备用数据库原则 (34)3.5. 一些小经验 (34)3.6. 系统调优知识 (35)3.6.1. 生成状态报表(statspack的使用) (35)3.6.3. 内存调整 (37)3.6.4. 排序的优化 (40)3.6.5. 统计信息 (41)4. 设计工具 (42)1.数据库物理设计原则1.1.数据库环境配置原则1.1.1.操作系统环境对于中小型数据库系统,采用linux操作系统比较合适,对于数据库冗余要求负载均衡能力要求较高的系统,可以采用Oracle10gRAC 的集群数据库的方法,集群节点数范围在2—64个。
对于大型数据库系统,可以采用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.交换区设计当物理内存在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>.domain1.2.3.数据库类型选择对于海量数据库系统,采用data warehouse的类型。
对于小型数据库或OLTP类型的数据库,采用Transaction Processing类型。
1.2.4.数据库连接类型选择Oracle数据库有专用服务器连接类型和多线程服务器MTS连接类型。
对于批处理服务,需要专用服务器连接方式,而对于OLTP服务则MTS的连接方式比较合适。
由于采用MTS后,可以通过配置网络服务实现某些特定批处理服务采用专用服务器连接方式,所以数据库设计时一般采用MTS类型。
1.2.5.数据库SGA配置数据库SGA可以采用手工配置或按物理内存比例配置,在数据库初始设计阶段采用按比例配置方式,在实际应用中按系统调优方式修改SGA。
1.2.6.数据库字符集选择为了使数据库能够正确支持多国语言,必须配置合适的数据库字符集,采用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 character set internal_usewe8iso8859p1;SQL> shutdown immediate;SQL> startup1.2.7.数据库其他参数配置1.2.7.1.DB_FILESDb_files是数据库能够同时打开的文件数量,默认值是200个。
当数据库规划时文件数量FILES接近或超过200个时候,按以下估计值配置:1.2.7.2.Db_block_size一个extent要是5个blocks的倍数为好,如:一个blocks是4096字节,那一个extent就是2M、4M或8M为好。
Db_block_size 是数据库最小物理单元,一旦数据库创建完成,该参数无法修改,db_block_size按以下规则调整:数据仓库类型: db_block_size尽可能大,采用8192 或 16384 OLTP类型: db_block_size 用比较小的取值范围: 2048 或4096Blocks推荐是系统操作的块倍数(裸设备块大小是512字节,NTFS是 4K,使用8K的方式在大部分系统上通用)。
1.2.8.数据库控制文件配置1.2.8.1.控制文件镜象多个控制文件存放在不同的物理位置。
1.2.8.2.控制文件配置控制文件中参数设置,最大的数据文件数量不能小于数据库参数db_files。
1.2.9.数据库日志文件配置1.2.9.1.日志文件大小日志文件的大小由数据库事务处理量决定,在设计过程中,确保每20分钟切换一个日志文件。
所以对于批处理系统,日志文件大小为几百M 到几G的大小。
对于OLTP系统,日志文件大小为几百M以内。
1.2.9.2.日志文件组数量对于批处理系统,日志文件组为5—10组;对于OLTP系统,日志文件组为 3—5组,每组日志大小保持一致;对于集群数据库系统,每节点有各自独立的日志组。
1.2.9.3.日志成员数量为了确保日志能够镜象作用,每日志组的成员为2个。
1.2.10.数据库回滚段配置在Oracle9i数据库中,设计Undo表空间取代以前版本的回滚段表空间。
Undo 表空间大小的设计规范由以下公式计算:Undospace = UR * UPS *db_block_size+ 冗余量UR:表示在undo中保持的最长时间数(秒),由数据库参数UNDO_RETENTION值决定。
UPS:表示在undo中,每秒产生的数据库块数量。
例如:在数据库中保留2小时的回退数据,假定每小时产生200个数据库块。
则Undospace = 2 * 3600 * 200 * 4K = 5.8G。
1.2.11.数据库临时段表空间配置数据库临时段表空间根据实际生产环境情况调整其大小,表空间属性为自动扩展。
1.2.12.数据库系统表空间配置系统表空间大小1G左右,除了存放数据库数据字典的数据外,其他数据不得存储在系统表空间。
1.3.数据库表空间设计原则1.3.1.表空间大小定义原则当表空间大小小于操作系统对最大文件限制时,表空间由一个文件组成。
如果表空间大小大于操作系统对最大文件限制时,该表空间由多个数据文件组成,表空间的总大小为估算为:Tablespace + sum (数据段+索引段)*150%。
1.3.2.表空间扩展性设计原则表空间数据文件采用自动扩展的方式,扩展容量快大小按2的整数倍(1M、2M、4M、8M、16M、32M、64M)进行扩展,创建表空间时尽量采用nologing选项。
表空间的最大限制一般采用unlimited,除非确切知道表空间数据文件的最大使用范围。
(一般windows 32位系统的文件最大2G,64位的unix系统系统文件最大128G,但也要注意文件格式设定的文件大小),建议最大为2G。
表空间采用local管理方式,例如:1.4.裸设备的使用一个scsi设备可以 14个分区,unix操作系统256个分区,性能比文件系统方式高15%左右,空间大于要小于(实际分区大小减两个ORACLE的数据块),比如100M,大于为100000K,推荐在unix使用软连接(ln)方式把裸设备形成文件,用加入表空间时加resue 选项,当然也可只接把设备加入表空间,移动裸设备使用dd命令。