本文教你如何设计大型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区中 发生这种情况即为一个PING PING使原来 个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等 并确定主要的初始化参数 物理设计的目的是提高系统的性能 整个物理设计的参数可以根据实际运行情况作调整
表及索引数据量估算及物理存储参数的设置
lishixinzhi/Article/program/Oracle/201311/18944Oracle数据库的特点
1开放性:
Oracle能在所有主流平台上运行(包括Windows),完全支持所有的工业标准,采用完全开放策略,可以使客户选择最适合的解决方案,对开发商全力支持。
2可伸缩性,并行性:
Oracle的并行服务器通过使一组结点共享同一簇中的工作来扩展Windownt的能力,提供高可用性和高伸缩性的簇的解决方案。如果WindowsNT不能满足需要,用户可以把数据库移到UNIX中。Oracle的并行服务器对各种UNIX平台的集群机制都有着相当高的集成度。
3性能:
Oracle几乎是性能最高的关系型数据库,保持开放平台下的TPC-D和TPC-C的世界记录。
4客户端支持及应用模式:
Oracle支持多层次网络计算,支持多种工业标准,可以用ODBC、JDBC、OCI等网络客户连接。
5 *** 作性:
Oracle相对于其他RDBMS来讲较复杂,同时提供GUI和命令行,在WindowsNT和Unix下 *** 作相同。
6使用性:
Oracle具有相当长时间的开发经验,完全向下兼容。得到广泛的认可与应用,完全没有风险。
7安全性:
Oracle获得了最高认证级别的ISO标准认证。它提供多层安全性,包括用于评估风险、防止未授权的数据泄露、检测和报告数据库活动,以及通过数据驱动的安全性在数据库中实施数据访问控制的控制。
Oracle数据库的工作原理
1、在数据库服务器上启动Oracle实例。
2、应用程序在客户端的用户进程中运行,启用Oracle网络服务驱动器与服务器建立连接。
3、服务器运行Oracle网络服务驱动器,建立专用的服务器进程执行用户进程。
4、客户端提交事务。
5、服务器进程获取sql语句并检查共享池中是否有相似的sql语句,如果有,服务器进程再检查用户的访问权限;否则分配新的sql共享区分析并执行sql语句。
6、服务器从实际的数据文件或SGA中取得所需数据。
7、服务器进程在SGA中更新数据,进程DBWn在特定条件下将更新过的数据块写回磁盘,进程LGWR在重做日志文件中记录事务。
8、如果事务成功,服务器进程发送消息到应用程序中。
解释:
SGA(System Global Area):是Oracle Instance的 基本组成部分,在实例启动时分配。是一组包含一个Oracle实例的数据和控制信息的共享内存结构,主要作用是用于存储数据库信息的一个内存区域。
DBWn(Database Writer):Oracle数据库后台写入进程,是Oracle数据库实例中的一个进程。
LGWR(Log Writer):也是Oracle的后台进程之一,LGWR的作用是把日志缓存区的数据从内存写到磁盘的REDO文件里,完成数据库对象创建、更新数据等 *** 作过程的记录。
实际上 为了保证ORACLE数据库运行在最佳的性能状态下 在信息系统开发之前就应该考虑数据库的优化策略 优化策略一般包括服务器 *** 作系统参数调整 ORACLE数据库参数调整 网络性能调整 应用程序SQL语句分析及设计等几个方面 其中应用程序的分析与设计是在信息系统开发之前完成的
分析评价ORACLE数据库性能主要有数据库吞吐量 数据库用户响应时间两项指标 数据库吞吐量是指单位时间内数据库完成的SQL语句数目 数据库用户响应时间是指用户从提交SQL语句开始到获得结果的那一段时间 数据库用户响应时间又可以分为系统服务时间和用户等待时间两项 即
数据库用户响应时间=系统服务时间 + 用户等待时间
上述公式告诉我们 获得满意的用户响应时间有两个途径 一是减少系统服务时间 即提高数据库的吞吐量 二是减少用户等待时间 即减少用户访问同一数据库资源的冲突率
性能优化包括如下几个部分
ORACLE数据库性能优化之一 调整数据结构的设计
这一部分在开发信息系统之前完成 程序员需要考虑是否使用ORACLE数据库的分区功能 对于经常访问的数据库表是否需要建立索引等
ORACLE数据库性能优化之二 调整应用程序结构设计
这一部分也是在开发信息系统之前完成 程序员在这一步需要考虑应用程序使用什么样的体系结构 是使用传统的Client/Server两层体系结构 还是使用Browser/Web/Database的三层体系结构 不同的应用程序体系结构要求的数据库资源是不同的
ORACLE数据库性能优化之三 调整数据库SQL语句
应用程序的执行最终将归结为数据库中的SQL语句执行 因此SQL语句的执行效率最终决定了ORACLE数据库的性能 ORACLE公司推荐使用ORACLE语句优化器(Oracle Optimizer)和行锁管理器(row level manager)来调整优化SQL语句
ORACLE数据库性能优化之四 调整服务器内存分配
内存分配是在信息系统运行过程中优化配置的 数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区 日志缓冲区和共享池的大小 还可以调整程序全局区(PGA区)的大小 需要注意的是 SGA区不是越大越好 SGA区过大会占用 *** 作系统使用的内存而引起虚拟内存的页面交换 这样反而会降低系统
ORACLE数据库性能优化之五 调整硬盘I/O 这一步是在信息系统开发之前完成的
数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上 做到硬盘之间I/O负载均衡
ORACLE数据库性能优化之六 调整 *** 作系统参数
例如 运行在UNIX *** 作系统上的ORACLE数据库 可以调整UNIX数据缓冲池的大小 每个进程所能使用的内存大小等参数
lishixinzhi/Article/program/Oracle/201311/17687
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)