1、1,Oracle体系结构,实例,SGA,日志缓冲区,共享缓冲区,数据字典,库缓冲区,DBWR,SMON,PMON,CKPT,LGWR,Others,用户进程,服务器进程,PGA,控制文件,数据文件,数据库,数据缓冲区,重做日志文件,Java池,大池,参数文件,归档日志文件,2,Oracle服务器,提供一个开放的、全面的、完整的信息管理平台 Oracle实例和Oracle数据库组成,3,Oracle实例,访问Oracle数据库的一种方法 只能是打开一个仅仅只有一个数据库 由内存和后台进程组成,后台进程结构,内存结构,实例,SGA,重做日志缓冲区,共享缓冲区,数据字典缓冲区,库缓冲区,DBWR,S
2、MON,PMON,CKPT,LGWR,Others,数据缓冲区,Java池,Large池,4,连接到Oracle Server,1.建立一个用户连接 2.创建一个会话,会话创建,数据库用户,用户进程,服务器进程,连接建立,5,Oracle数据库,数据信息的集合 三种类型文件,6,物理结构,物理结构包含三种数据文件: 控制文件 数据文件 在线重做日志文件,控制文件,数据文件 (包括 数据字典),Header,在线重做 日志文件,7,Oracle逻辑结构,数据库如何使用物理空间 表空间, 段, 区,块的组成层次,表空间,数据文件,段,块,区,段,8,Oracle内存结构,SGA(System Gl
3、obal Area)当启动实例的时候分配 PGA(Process Global Area)当server进程建立时分配,9,系统全局区(SGA),SGA有几个内存结构组成: 共享池 数据库高速缓存 重做日志缓存 其它结构(例如锁和闩锁,数据状态) 在SGA中有两个可选的内存结构: 大池 JAVA池,10,共享池,共享池用来储存最近执行过的SQL语句和最近使用过的数据定义 它包含两个关键的根性能有关的内存结构 库缓存 数据字典缓存 大小由SHARED_POOL_SIZE确定 ALTER SYSTEM SET SHARED_POOL_SIZE = 64M;,共享缓冲区,数据字典缓冲区,库缓冲区,1
4、1,库高速缓存(Library Cache),存储最近使用的SQL和PL/SQL语句 能共享普通相同的语句 使用LRU链表管理 由下面两部分组成:-共享SQL区域(Shared SQL)-共享PL/SQL区域(Shared PL/SQL) 通过设置共享池来决定它的大小,12,数据字典缓存(Data Dictionary Cache),它的信息包括数据库文件、表、索引、列、用户、权限和其它数据库对象 在分析阶段,服务进程查询数据字典解析对象命名和验证访问的有效性 把数据字典信息缓存进内存可以提高检的响应速度 通过设置共享池来决定它的大小,13,数据高速缓存,数据库高速缓冲区储存了从数据文件中检索
5、到的数据块的镜像拷贝 这让你在获取和修改数据的时候大大地提高了性能 通过LRU算法管理 DB_BLOCK_SIZE决定了主块大小 定义的缓冲区数取决于DB_BLOCK_BUFFERS,14,重做日志缓冲区,主要是为了恢复 修改记录在这里叫重做条目 重做条目包含了重构和重做修改信息 由LOG_BUFFER定义大小,15,Large Pool,一个可选的SGA区域 能缓解Shared Pool的负担 主要用于:-共享服务器的会话区域(UGA)-服务器进程I/O-使用RMAN备份和恢复-并行查询信息缓冲 PARALLEL_AUTOMATIC_TUNING = TRUE 不是使用LRU链表管理 LAR
6、GE_POOL_SIZE参数控制ALTER SYSTEM SET LARGE_POOL_SIZE = 64M; 能动态指定大小,16,Java Pool,Java命令需要分析的环境 安装和使用java需要 JAVA_POOL_SIZE参数来设置,17,PGA,为每个连接到数据库的用户进程保留的内存空间 当一个进程创建的时候分配 当一个进程终止释放 只能由一个进程使用 包含 会话信息 排序区 游标状态 堆栈空间,用户进程,PGA,服务器进程,18,进程结构,一个Oracle进程是一个基于某种类型的程序,能够收集信息、执行一系列的步骤或完成一个特定的任务。Oracle使用不同类型的进程: 用户进程
7、(User process):当一个数据库用户请求连接Oracle服务器开始 服务器进程(Server process): 连接Oracle实例并当一个用户建立了一个会话启动 后台进程(Background processes): 当启动Oracle实例时启动,19,用户进程(User process),一个请求连接Oracle服务器的程序 必须首先建立一个连接 并不直接与Oracle服务器交互,数据库用户,服务器进程,用户进程,连接建立,20,服务器进程(Server Process),一个与Oracle服务器直接交互的程序 负责执行和返回结果 专用服务器(dedicated)或共享服务器(shared server),连接建立,会话创建,数据库用户,用户进程,服务器进程,21,后台进程(Background Processes),维护和执行物理数据库和内存结构的关系: 必须的后台进程: DBWn PMON CKPT LGWR SMON 可选的后台进程: ARCn LMDn QMNn CJQ0 LMON RECO Dnnn LMS Snnn LCKn Pnnn,