本文教你如何设计大型Oracle数据库希望对大家有所帮助
一概论
超大型系统的特点为
处理的用户数一般都超过百万有的还超过千万数据库的数据量一般超过TB;
系统必须提供实时响应功能系统需不停机运行要求系统有很高的可用性及可扩展性
为了能达到以上要求除了需要性能优越的计算机和海量存储设备外还需要先进的数据库结构设计和优化的应用系统
一般的超大型系统采用双机或多机集群系统下面以数据库采用Oracle 并行服务器为例来谈谈超大型数据库设计方法
确定系统的ORACLE并行服务器应用划分策略
数据库物理结构的设计
系统硬盘的划分及分配
备份及恢复策略的考虑
二Oracle并行服务器应用划分策略
Oracle并行服务器允许不同节点上的多个INSTANCE实例同时访问一个数据库以提高系统的可用性可扩展性及性能Oracle并行服务器中的每个INSTANCE实例都可将共享数据库中的表或索引的数据块读入本地的缓沖区中这就意味着一个数据块可存在于多个INSTANCE实例的SGA区中那么保持这些缓沖区的数据的一致性就很重要Oracle使用 PCM( Parallel Cache Management)锁维护缓沖区的一致性Oracle同时通过I DLM(集成的分布式锁管理器)实现PCM 锁并通过专门的LCK进程实现INSTANCE实例间的数据一致
考虑这种情况INSTANCE对BLOCK X块修改这时INSTANCE对BLOCK X块也需要修改Oracle并行服务器利用PCM锁机制使BLOCK X从INSTANCE 的SGA区写入数据库数据文件中又从数据文件中把BLOCK X块读入INSTANCE的SGA区中发生这种情况即为一个PINGPING使原来个MEMORY IO可以完成的工作变成个DISK IO和个 MEMORY IO才能够完成如果系统中有过多的PING将大大降低系统的性能
Oracle并行服务器中的每个PCM锁可管理多个数据块PCM锁管理的数据块的个数与分配给一个数据文件的PCM锁的个数及该数据文件的大小有关当INSTANCE 和INSTANCE 要操作不同的BLOCK如果这些BLOCK 是由同一个PCM锁管理的仍然会发生PING这些PING称为FALSE PING当多个INSTANCE访问相同的BLOCK而产生的PING是TRUE PING
合理的应用划分使不同的应用访问不同的数据可避免或减少TRUE PING;通过给FALSE PING较多的数据文件分配更多的PCM锁可减少 FALSE PING的次数增加PCM锁不能减少TRUE PING
所以Oracle并行服务器设计的目的是使系统交易处理合理的分布在INSTANCE实例间以最小化PING同时合理的分配PCM锁减少FALSE PING设计的关键是找出可能产生的沖突从而决定应用划分的策略应用划分有如下四种方法
根据功能模块划分不同的节点运行不同的应用
根据用户划分不同类型的用户运行在不同的节点上
根据数据划分不同的节点访问不同的数据或索引
根据时间划分不同的应用在不同的时间段运行
应用划分的两个重要原则是使PING最小化及使各节点的负载大致均衡
三数据库物理结构的设计
数据库物理结构设计包括确定表及索引的物理存储参数确定及分配数据库表空间确定初始的回滚段临时表空间redo log files等并确定主要的初始化参数物理设计的目的是提高系统的性能整个物理设计的参数可以根据实际运行情况作调整
表及索引数据量估算及物理存储参数的设置
表及索引的存储容量估算是根据其记录长度及估算的最大记录数确定的在容量计算中考虑了数据块的头开销及记录和字段的头开销等等表及索引的initial和next存储参数一般设为相等pctincrease设为