当前位置: 首页 > news >正文

(转)Oracle 9i 数据库设计指引全集(1)

数据库物理设计原则


  1.1 数据库环境配置原则
  1.1.1 操作系统环境:
  
  对于中小型数据库系统,采用linux操作系统比较合适,对于数据库冗余要求负载均衡能力要求较高的系统,可以采用Oracle9i RAC的集群数据库的方法,集群节点数范围在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 数据库全局名
   
  数据库全局名称:
  
  .domain
  
  1.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_use we8iso8859p1;
  
  SQL> shutdown immediate;
  
  SQL> startup
  
  1.2.7 数据库其他参数配置
  
  1.2.7.1 DB_FILES
  
  Db_files是数据库能够同时打开的文件数量,默认值是200个。当数据库规划时文件数量FILES接近或超过200个时候,按以下估计值配置:
  
  DB_FILES = FILES * 1.5
  
  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 或 4096

 Blocks推荐是系统操作的块倍数(裸设备块大小是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 表空间扩展性设计原则

转载于:https://www.cnblogs.com/mapk/archive/2009/02/27/1310625.html

相关文章:

  • sqlserver2005新功能函数
  • 走向成功之路的秘密
  • VMWare-RHEL5系统添加多网卡
  • 关于“WebForm_PostBackOptions未定义”
  • 浅谈MVP与Model-View-ViewModel(MVVM)设计模式
  • Net 实现纳秒级别计算
  • WPF中的音频——(2)
  • WinCE读写ini文件和xml文件的方法
  • Linux GNOME桌面使用技巧大全
  • 转:WEB页上弹消息框总汇~!
  • 解决AJAX中使用UpdatePanel后再用Response.Write();等无法弹出对话框问题
  • 用于收发电子邮件的应用类
  • 在自己网站加百度搜索框这么简单
  • ubuntu下root 密码忘记的解决方法
  • 从“芯”认识内存
  • [译]Python中的类属性与实例属性的区别
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • react 代码优化(一) ——事件处理
  • Redis 懒删除(lazy free)简史
  • SpiderData 2019年2月16日 DApp数据排行榜
  • SpiderData 2019年2月25日 DApp数据排行榜
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • vue.js框架原理浅析
  • webpack项目中使用grunt监听文件变动自动打包编译
  • WebSocket使用
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 简单数学运算程序(不定期更新)
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (solr系列:一)使用tomcat部署solr服务
  • (博弈 sg入门)kiki's game -- hdu -- 2147
  • (二)c52学习之旅-简单了解单片机
  • (图)IntelliTrace Tools 跟踪云端程序
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .cn根服务器被攻击之后
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net 8 发布了,试下微软最近强推的MAUI
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET项目中存在多个web.config文件时的加载顺序
  • @JoinTable会自动删除关联表的数据
  • [Android]创建TabBar
  • [C++11 多线程同步] --- 条件变量的那些坑【条件变量信号丢失和条件变量虚假唤醒(spurious wakeup)】
  • [CentOs7]iptables防火墙安装与设置
  • [hihocoder1395] 最大权闭合子图
  • [html] 动态炫彩渐变背景
  • [iOS]中字体样式设置 API
  • [Jquery] 实现鼠标移到某个对象,在旁边显示层。