《Oracle组件结构》PPT课件.ppt_第1页
《Oracle组件结构》PPT课件.ppt_第2页
《Oracle组件结构》PPT课件.ppt_第3页
《Oracle组件结构》PPT课件.ppt_第4页
《Oracle组件结构》PPT课件.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle组件结构,目标,完成本课后,应该可以做下列事情: 概述Oracle体系结构组件和主要的组成 列出当用户连接到Oracle实例时相关的组件,关键组件概述,Instance,SGA,Redo log buffer cache,Shared pool,Data Dict. cache,Library cache,DBWR,SMON,PMON,CKPT,LGWR,Others,User process,Server process,PGA,Control files,Data files,Archived log files,Parameter file,Password file,Redo log files,Database,Database buffer cache,Oracle服务器,Oracle服务器: 是一个提供开放、全面、集成信息管理的数据库管理系统。 由Oracle实例和Oracle数据库组成 可以运行于三种方式: 客户机-应用服务器-服务器 (三层架构) 客户机-服务器(两层架构) 基于主机(直接相连),Oracle Server,Oracle 实例,Oracle实例: 是一种访问Oracle数据库的手段 在任何时候,一个实例只能操作一个数据库 由内存结构和后台进程组成,Background structures,Memory structures,SGA,Redo log buffer cache,Database buffer cache,Shared pool,DBWR,SMON,PMON,CKPT,LGWR,Others,Data Dictionary cache,Library cache,Instance,建立连接和创建会话,连接一个实例包含建立一个用户连接和创建一个会话,建立连接和创建会话,连接:就是用户进程和服务器之间的通信路径,也有三种方式: 直接连接本地 直接连接远程 在应用中连接 会话:是用户和Oracle服务器之间的一种特定连接。当用户由Oracle服务器验证通过时会话开始,当用户退出或者异常终止时会话结束。如果使用共享服务器模式,可能出现多个用户进程共享一个服务器进程。,Oracle数据库,Oracle数据库包含 物理结构 逻辑结构,物理结构,数据库的物理结构是一些文件的集合 包含以下三类: 数据文件:包含实际的数据; 重做日志文件:包含对数据库所作的更改,以便在发生失败的时候恢复; 控制文件:包含维护和验证 数据库完整性的信息,内存结构,Oracle的内存结构包含两部分: System Global Area (SGA): 在实例启动时分配,是一个基础组件 Program Global Area (PGA): 在服务器进程启动时分配,System Global Area (SGA),SGA 包含以下内存结构: 共享池 Shared pool 数据库高速缓存 Database buffer cache 重做日志缓冲区 Redo log buffer 一些其他结构(如锁和统计数据) Other structures (e.g. lock and latch management, statistical data) 还有两个可选的内存结构: 大型池 Large pool Java池 Java pool,动态SGA,动态SGA允许无须关闭实例就可以改变SGA的内存结构大小,包括共享池、大型池和数据库高速缓存。 SGA的大小主要由几个初始化参数决定,其中影响较大的为: DB_CACHE_SIZE 标准块缓存的大小 LOG_BUFFER 重做日志缓冲区的大小(字节) SHARED_POOL_SIZE 共享池的大小(字节),用于共享SQL和PL/SQL LARGE_POOL_SIZE 大型池的大小,缺省为0,System Global Area (SGA),SGA是动态的、由 SGA_MAX_SIZE调整大小 SGA以颗粒(granule)为单位进行分配。 一个颗粒就是一个连续的内存区,其大小依赖于SGA的总大小。 如果SGA128M,那么颗粒的大小为4M; 否则为16M。 最小的SGA包含三个颗粒, 一个用于固定的SGA区域(包含重做日志), 一个用于数据库高速缓存, 一个用于共享池。,Shared Pool,共享池用来存储最近执行过的SQL语句和使用过的数据定义 包含两个对于性能至关重要的内存结构: 库缓存 Library cache 数据字典缓存 Data dictionary cache 共享池的大小由参数SHARED_POOL_SIZE设定,可以动态更改大小,ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;,库缓存 Library Cache,库缓存保存最近使用的SQL和PL/SQL语句 保证了共享常用的语句 由LRU(最近最少使用)算法管理 包含两个内存结构: 共享的SQL区 共享的PL/SQL区 由共享池的大小决定其大小,数据字典缓存 Data Dictionary Cache,数据字典缓存是数据库中最近使用过的定义的集合. 包含数据库文件、表、索引、列、用户、权限和其他数据库对象的信息. 也被称为行缓存 在分析阶段,服务器进程在数据字典中查找信息以解析对象名和访问的合法性 将数据字典的信息缓存到内存中,以提高查询的速度 由共享池的大小决定其大小,数据库高速缓存 Database Buffer Cache,数据库高速缓存保存最近从数据文件中得到的数据块的副本 大大提高查询和更新数据的性能 由LRU(最近最少使用)算法管理 DB_BLOCK_SIZE确定 主块(primary block 的大小,Database buffer cache,数据库高速缓存 Database Buffer Cache,由几个独立的子缓存组成: DB_CACHE_SIZE 设定缺省的缓存大小,总是存在且不能为0 DB_KEEP_CACHE_SIZE 设定要保留的内存区域的大小 DB_RECYCLE_CACHE_SIZE 设定要去除的内存区域的大小 可以动态增大和收缩数据库高速缓存的大小 可以打开DB_CACHE_ADVICE收集块使用信息,从而更好的设定多块缓存的大小,ALTER SYSTEM SET DB_CACHE_SIZE = 96M;,重做日志缓冲区 Redo Log Buffer Cache,重做日志缓冲区记录了所有对于数据库的数据块更改信息 主要目的是用于恢复 缓存里面的记录称为重做项 redo entries 重做项包含了重建数据的信息 其大小由参数LOG_BUFFER 决定 任何INSERT, UPDATE, DELETE, CREATE, ALTER, DROP操作之前都会写入日志,这也被 称为“写日志优先”。,大型池 Large Pool,大型池是SGA内存结构中的一个可选择区域,只用于共享服务器环境中,用于减轻共享池的负载 当用户连接到共享服务器,Oracle会在共享池中分配额外的内存以保存用户进程、适配器和服务器进程之间的连接会话信息(也称为UGA),I/O,备份和恢复进程。分配了大型池,就可以减少共享池这部分负担 与共享池不同,大型池不使用LRU算法 参数LARGE_POOL_SIZE确定其大小,ALTER SYSTEM SET LARGE_POOL_SIZE = 64M;,Java池,Java池用于Java命令的分析 如果使用Java的话才需要这个池 和PL/SQL的存储方式基本一样 由参数 JAVA_POOL_SIZE设定大小,缺省为24M,User process,Program Global Area (PGA),PGA是为每个连接到Oracle数据库的用户进程保留的一块内存区域,保存每个进程的堆栈空间、排序区、游标信息和会话信息(对于共享服务器,会话信息保存在大型池或者共享池)。,Stack space,Session information sort area, cursor information,SGA,Shared SQL areas,SGA,PGA Dedicated server Shared server,Server process,Shared SQL areas,Stack space,sort area, cursor information,进程结构 Process Structure,Oracle进程就是一系列程序,不同的类型执行不同的任务,如发送请求信息、执行一系列步骤或者执行某个特殊的任务 包含如下类型的进程: 用户进程: Started at the time a database user requests connection to the Oracle server 服务器进程:Connects to the Oracle Instance and is started when a user establishes a session. 后台进程:Available when an Oracle instance is started,用户进程 User Process,用户进程是要求与Oracle交互的应用程序 用户进程必须先建议起一个连接 用户进程不能直接操作实例或者数据库,必须借助与服务器进程来实现功能,,Database user,Server process,User process,Connection established,SQL Plus等程序,服务器进程 Server Process,服务器进程是与Oracle服务器直接打交道程序. 服务器进程提交请求并返回结果 有两种运行服务器进程的方式: 专用服务器:“一个精灵,一个主人” 共享服务器:“一个精灵,多个主人”,后台进程 Background Processes,后台进程维护和强制物理结构和内存结构之间的关系, 必须的后台进程 DBWn PMON CKPT LGWR SMON RECO 可选的后台进程 ARCn LMON Snnn QMNn LMDn CJQ0 Pnnn LCKn Dnnn,Database Writer (DBWn),下列事情之一发生时,DBWn就会写数据文件 Checkpoint 脏数据到达阈值 进程需要更多的空闲缓存 超时 RAC环境中的ping请求 表空间离线; 表空间置为只读; 删除表或截断表,Database,Instance,SGA,DBWn,Redo log buffer,Log Writer (LGWR),下列情况发生时发生写日志: 提交事务 重做日志缓冲区1/3满 记录了1M的改变记录 在数据库写进程写入数据库文件之前 每3秒 LGWR也可以调用DBWn,Control files,Data files,Redo log files,LGWR,Database,Instance,SGA,SMON,System Monitor (SMON),SMON负责: 实例恢复: 前滚已经记录在重做日志文件中的改变 打开数据库供用户访问 回滚没有提交的事务 每3秒种整理数据文件中的碎片 回收临时段-在SQL语句执行期间用来存储数据,Control files,Data files,Redo log files,Instance,SGA,SMON,Database,Process Monitor (PMON),在进程失败之后执行以下的清理工作: 回滚事务 释放锁 释放其他资源 重启适配器(dispatchers),PGA area,Instance,SGA,DBWn,LGWR,CKPT,Control files,Data files,Redo log files,Checkpoint (CKPT),负责: 向DBWn发送信号 检查点序号写入数据文件头; 检查点序号、日志顺序号、归档日志名称和系统改变序号写入控制文件,Archiver (ARCn),ARCn是可选的后台进程 当设置为归档模式(ARCHIVELOG) 模式时,自动 将在线日志归档 所有数据库的变化都会被记录下来,Control files,Data files,Redo log files,Archived Redo log files,ARCn,逻辑结构 Logical Structure,Oracle体系结构中的逻辑结构指示了数据库的物理空间是如何被使用的 数据库由一组表空间组成;表空间由多个段组成; 段由扩展(extents)组成;扩展由逻辑块组成 块是读写操作的最小单位,假如一个块里面有100行,那么即使只读其中的一行,也是读取整个块,执行SQL语句,连接实例,使用了: 用户进程 服务器进程 使用到的Oracle组件依赖于SQL语句: 查询返回的行 DML语句记录变量 提交确保事务恢复 有一些Oracle嗠器组件并不参与SQL语句的处理,总结,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论