《构架及分布式.ppt》由会员分享,可在线阅读,更多相关《构架及分布式.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 Oracle 9i 的体系结构目目 标标文件,内存结构,进程文件,内存结构,进程了解分布式数据库概念了解分布式数据库概念分布式环境中容易出现的问题及其解决分布式环境中容易出现的问题及其解决在完成本课后,你应该能够掌握以下这些:在完成本课后,你应该能够掌握以下这些:9I的系统结构的系统结构 三个主要组件:文件 研究组成数据库和实例的5个文件SGA内存结构 研究SGA,PGA和UGA之间的关系,包括JAVA池,共享池,大池部分物理进程和线程 研究数据库运行过程中三种进程:服务器进程,后台进程和从属进程 服务器服务器数据库 物理操作系统文件的结合。(静态)实例 一系列Oracle进程以及这些进程所
2、涉及的SGA结构(动态)数据库和实例关系 一个数据库可以被多个实例打开 架构概述架构概述实例的构成:SGA进程文件文件参数文件 数据库初始化文件(spfile),spfile管理 listener.ora,tnsnames.ora数据文件 DBWR进行写操作控制文件 镜像的重要性联机日志文件,归档日志 写密集型,写操作由LGWR完成启动过程中依次打开文件顺序 spfile-controlfile-on-line redo logfile&dbfiles内存结构内存结构SGA(系统全局区)的组成:DB 高速缓存(DB_CACHE_SIZE/DB_BLOCK_BUFFERS)共享池(SHARED_
3、POOL_SIZE)redo日志缓存(REDO_BUFFER_SIZE)内存结构种类内存结构种类SGA系统全局区(System Global Area)大共享内存段,本质上所有的oracle进程都在一点或者另一点访问PGA进程全局区(Process global Area)私有内存段,单一进程或者线程的访问UGA用户全局区(User Global Area)与会话相关的数据。注意MTS下的区别PGA和和UGA8i或9i(WORKAREA_SIZE_POLICY不为auto)PGA,UGA主要是以下两个参数控制:sort_area_size-写临时段前分配给排序操作的内存,在PGA中 sort_
4、area_retained_size-排序完成后保留的内存段,在UGA中WORKAREA_SIZE_POLICYauto 由PGA_AGGREGATE_TARGET决定PGA/UGA的监控的监控V$sesstat当前会话的监控V$mystat select a.name,b.value From v$statname a,v$mystat b Where a.statistic#=b.statistic#And a.name like%ga%;PGA参数的正确权衡 DB 高速缓存高速缓存作用文件系统Buffer问题通常情况下DB buffer的大小如何判断其大小适当命中率的问题保留池循环池 共
5、享池共享池-1作用 存储使用过的sql代码通常情况下的共享池大小 不宜动辄好几百兆。过大的共享池会使得系统需要花费很长的时间来定位一个sql,同时表现为闩锁占用时间过长,系统上下文切换增多。ORA-04031的问题 现有的共享池空闲区不足以放下一个大包而抛出ORA-04031的信息。解决:1.必要的patchset 2.Share pool 中对象频繁老化3.由于老化Vsgastat中内存空闲较多。4.大对象没有在share pool 中没有做keep。5.没有使用绑定变量。(这个是普遍原因)6.没有cursor_sharing=force7.过多的分析 或者会话缓存游标没有用(session
6、_cached_cursors)8.应用中过多的使用匿名块9.保留池没有使用 共享池共享池-2SQL老化的问题 不停的被新sql排挤出共享池的过程。解决办法:绑定变量共享池越大是否性能越高 不是,cpu管理开销增大,latch占用时间变长绑定变量的作用 增加重用,防止老化Cursor_sharing的影响 8174之后的版本中使用forceLog buffer作用计算依据和checkpoint的影响 每3秒钟 有人提交 1/3满或者满1M的Log buffer内容时注意:由于以上原因,动辄数十兆的redo log buffer的分配是对内存的浪费。从增大该参数中能获益的可能性极小。大池大池大池
7、的推出的原因 系统需要使用大块内存,用完即可,无需缓存住其内容。如果不存在,则这部分内存将从共享池中获取,变相的实现对共享池的保护以下操作是将使用大池:MTS在SGA中分配UGA区 平行操作平行进程间的消息缓存区 RMAN为备份操作分配大片的IO缓存大池与共享池的区别:共享池中的内容由于使用频率高,所以被缓存;而大池不是。进程进程服务进程 专用模式和共享模式的权衡 专用模式:稳定但相对资源消耗多 共享模式:欠稳定,适合olpt系统但并非最好解决办法后台进程 Pid10,谨慎的debug这些后台进程从属进程 IO从属进程:在不支持异步IO的情况下模拟异步IO以提高系统IO吞吐量 并行查询从属进程
8、:执行并行操作 几大后台进程几大后台进程DBWR 异步IO,针对特定的文件系统以提高io吞吐能力。如VXFSPMON 清理工作,如服务器进程失败后回滚未提交的工作,释放锁,释放失败进程的内存资源SMON 垃圾回收起作用。回收临时空间,崩溃恢复,deallocate空闲空间等LGWR 写log buffer内容到logfileCKPT 执行检查点其他 ARCH copy写满的联机日志到参数指定定点 RECO 恢复分布式环境中的两阶段提交事务 连接客户端到服务器的通讯机机制连接客户端到服务器的通讯机机制Listener的作用 监听器收到包含sid值得客户请求时。它首先完成与客户端的TCP/IP连接
9、,一旦连接建立,监听器将搜索其配置文件中的SID_LIST,查找客户端请求通过一个SID_NAME穿过来的值。当找到一个匹配值时,使用SID_DESC中的ORACLE_HOME中可执行的ORACLE来派生oracle进程,并重命名这个进程,以使得这个进程为包含SID的名称。然后listener把这个与client的连接留给派生进程,自己返回1521端口去广播新的请求。这个派生进程就是我们说的服务进程(影子进程)。TNSNAMES.ORA和LISTENER.ORA在这个过程中的作用分布式数据库的管理分布式数据库的管理1数据库级分布式包括:远程查询:select*from t1remotedb;远
10、程数据操作(两阶段提交):update t1remotedb set a=aa 远程复制:实体视图(简单/复杂)Advanced Replication分布式数据库的管理分布式数据库的管理2如何管理分布式的DB 1。位置的透明性 通过tnsnames.ora来实现,而应用不需要关心远程站点的具体细节。(DB LINK)2。Mview的权限 create snapshot,create table,create view 3.刷新方式的权衡 完全 快速 强制 尝试快速刷新,否则完全刷新 从不分布式数据库的管理分布式数据库的管理3刷新的管理 单独刷新 简单,但一致性不容易控制 组刷新 一致性可以很
11、好的控制JOB队列对刷新时间间隔的控制 正常的状态有两种:任务闲-this_date为空,next_date为当前时间后的一个时间值任务忙-this_date不为空,next_date为当前时间后的一个时间值异常状态也有两种:任务死锁-next_date为当前时间前的一个时间值任务死锁-next_date为非常大的一个时间值,例如:4001-01-01 实体视图的创建实体视图的创建A系统到B系统的数据复制 1.创建dblink上机操作上机操作上机实践作业:1。完成连向指定节点的tns配置 2。创建一个刷新时间隔为一分钟的简单的实体视图 3。创建时间隔为一分钟的复杂实体视图 4。在job queue驱动刷新的情况下,如何停止刷新动作 结束结束 Q&A