数据库设计规范
数据库设计规范
1、目的定义数据库设计设计规范,作为数据库设计、规划、开发以及维护人员的技术参考资料。
2、概述
本文主要描述数据库环境配置、数据库物理设计、数据库逻辑设计、视图、存储过程、应用程序设计等方面的设计规范。
3、数据库物理设计原则
3.1、数据库环境配置原则
* 操作系统环境:
对于中小型数据库系统,采用linux操作系统比较合适,对于数据库冗余要求负载均衡能力要求较高的系统或者大型的数据库系统,可以采用Oracle RAC的集群数据库的方法。
* 内存要求
对于linux操作系统下的数据库,SGA设计在一个合适的范围内:物理内存的50%—70%。
* 交换区设计
当物理内存在2G以下的情况下,交换分区swap为物理内存的3倍,当物理内存>2G的情况下,swap大小为物理内存的1—2倍。
* 其他环境变量
参考Oracle相关的安装文档和随机文档。
3.2、数据库设计原则
* 约定
我们约定:采用26个英文字母(区分大小写)和0-9这十个自然数,加上下划线_组成,共63个字符。不能出现其他字符(注释除外)。
* 数据库SID
数据库SID是唯一标志数据库的符号,命名长度控制在10个字符内。对于单节点数据库。一般用项目名称的英文简缩写,比如教育办公自动化,可用EduOA表示
对于集群数据库,当命名SID后,各节点SID自动命名为SIDnn,其中nn为节点号:1,2,…,64。例如rac1、rac2、rac24。
* 数据库全局名
数据库全局名称:<sid>.domain
* 数据库类型选择
对于海量数据库系统,采用data warehouse的类型。对于小型数据库或OLTP类型的数据库,采用Transaction Processing类型。
* 数据库连接类型选择
Oracle数据库有专用服务器连接类型和多线程服务器MTS连接类型。对于批处理服务,需要专用服务器连接方式,而对于OLTP服务则MTS的连接方式比较合适。由于采用MTS后,可以通过配置网络服务实现某些特定批处理服务采用专用服务器连接方式,所以数据库设计时一般采用MTS类型。
* 数据库SGA配置
数据库SGA可以采用手工配置或按物理内存比例配置,在数据库初始设计阶段采用按比例配置方式,在实际应用中按系统调优方式修改SGA。
* 数据库字符集选择
为了使数据库能够正确支持多国语言,必须配置合适的数据库字符集,采用UTF8字符集。
* 数据库其他参数配置
* DB_FILES
Db_files是数据库能够同时打开的文件数量,默认值是200个。当数据库规划时文件数量FILES接近或超过200个时候,按以下估计值配置:
DB_FILES = FILES * 1.5
* Db_block_size
Db_block_size是数据库最小物理单元,一旦数据库创建完成,该参数无法修改,db_block_size按以下规则调整:
数据仓库类型: db_block_size尽可能大,采用8192 或 16384
OLTP类型: db_block_size 用比较小的取值范围: 2048 或 4096
* 数据库控制文件配置
* 控制文件镜象
多个控制文件存放在不同的物理位置。
* 控制文件配置
控制文件中参数设置,最大的数据文件数量不能小于数据库参数db_files。
* 数据库日志文件配置
* 日志文件大小
日志文件的大小由数据库事务处理量决定,在设计过程中,确保每20分钟切换一个日志文件。所以对于批处理系统,日志文件大小为几百M 到几G的大小。对于OLTP系统,日志文件大小为几百M以内。
* 日志文件组数量
对于批处理系统:日志文件组为5—10组。
对于OLTP系统:日志文件组为 3—5组。
每组日志大小保持一致。
对于集群数据库系统,每节点有各自独立的日志组。
* 日志成员数量
为了确保日志能够镜象作用,每日志组的成员为2个。
* 数据库回滚段配置
在Oracle9i数据库中,设计Undo表空间取代以前版本的回滚段表空间。
Undo 表空间大小的设计规范由以下公司计算:
Undospace = UR * UPS *db_block_size+ 冗余量
UR: 表示在undo中保持的最长时间数(秒),由数据库参数UNDO_RETENTION值决定。
UPS:表示在undo中,每秒产生的数据库块数量。
例如:在数据库中保留2小时的回退数据,假定每秒产生200个数据库块。则Undospace = 2 * 3600 * 200 * 4K = 5.8G
* 数据库临时段表空间配置
数据库临时段表空间根据实际生产环境情况调整其大小,表空间属性为自动扩展。
* 数据库系统表空间配置
系统表空间大小1G左右,除了存放数据库数据字典的数据外,其他数据不得存储在系统表空间。
|
评论暂时关闭