文档详情

oracle体系结构总结..docx

发布:2017-12-10约1.12万字共10页下载文档
文本预览下载声明
传统上Oracle体系结构由内存结构、进程结构、存储结构组成。其中,内存结构由SGA、PGA组成;进程结构由用户进程和Oracle进程组成;存储结构由逻辑存储、物理存储组成。 通过数据库的启动过程和一条sql的执行过程可以将oracle的内存结构、进程结构、存储结构串起来。一、内存结构(1)SGA(System Global Area):一个包含实例数据和控制信息的共享内存区域(2)PGA(Program Global Area):一个包含服务器进程和后台进程的数据和控制信息的共享内存区域1.1系统全局区SGA系统全局区,是 DB Server 中实例的必要组成部分,由很多小内存区共同构成,各个小内存区存放不同的信息,系统全局区用于暂存可以被所有进程( 包括 server process 以 及background process)共享的信息,对系统的运行性能有好处,SGA 在实例启动的时候自动分配 ,实例关闭时自动释放。SGA 暂存系统的大量共享数据,对系统有相当的性能影响,所以需要为SGA 选择适当的管理方式,根据所使用的数据库版本不同,SGA 的管理有三种方式:1)8i:SGA 的大小由所有内存组件大小之和决定,不能直接定义 SGA 大小,对内存组件的大小可后台进行修改,但只能通过直接修改参数文件的内存参数大小,而且修改完数据库必须重起后才能生效,所以这种内存管理方法叫做 SGA 的静态管理。2)9i:SGA 的大小由初始化参数 SGA_MAX_SIZ E 确定,各个内存组件大小之和不能超过这个参数 。可以直接通过命令进行修改内存组件大小而不用重启,这种叫做 SGA 的动态管理3)10g:SGA 大小既可以像 9i 一人样动态管理,也可以实施 SGA 的自动管理,默认是 SGA 的自动管理,启用 SGA 自动管理只需要设置初始化参数 SGA_TARGET 即可,各个组件大小之和不超过 SGA _TARGET 。在自动管理下,SGA 各个内存组件由数据库自动设置大小,设置各个内存区大小的依据来源于系统自动收集的统计信息。在设置内存组件大小的时候,分配的基本单位是粒度(granule )granule 是一段连续的虚拟内存,大小取决于 SGA_MAX_SIZE 的大小,如果 SGA_MAX_SIZ E小于 128M ,Granule 为 4M,否则 Granule 为 16M。大多数内存组件的大小必须是 Granule 的整数倍,Redo Log Buffer 的大小不受这个限制,可以自行设置,它与其他小内存区共同构成 Granule 的整数倍。整个 SGA 最小不小于 3 个 Granule 大小,其中共享池一个,数据缓存区一个,其他分一个, SGA的总大小也一定是 Granule 的整数倍大小。SGA 大多数组件的大小可以动态调整,只要确保所有的内存组件大小之和不超过 SGA _MAX_SIZE 或 SGA_TARGET 的大小,在 10G 中 SGA 内存组件可以自动管理 ,各个内存大小由数据库自己决定,设置 SGA_TARGET 参数(非 0)即可以开启内存自动管理,这个参数也可动态修改,如果设置为 0,则意味着,禁用内存自动管理,伋需要 DBA 手动调整各个内存组件大小。以下内存组件大小可以由数据库自动设置1)Buffer cache(db_cache_size)2)Shared pool(shared_pool_size)3)Large pool(large_pool_size)4)Java pool(java_pool_size)5)Stream pool(stream_pool_size)手动设置:1)LOG_BUFFER2)STREAMS_POOL3)DB_NK_CACHE_SIZE4)DB_KEEP_CACHE_SIZE5)DB_RECYCLE_CACHE_SIZESGA 的必要内存区包括 Shared Pool( 共享池)、 DB Buffer Cache(数据库高速缓存) Redo Log和Buffers (重做日志缓存区)。共享池中又包含了库高速缓存(Library Cache)和数据字典高速缓存(Data Dict Cache) 其中库高速缓存中暂存了最近常用的 SQL 和 PL/SQL 语句文件,分析代码,执行计划,用于减少代码的硬解析频度;数据字典高速缓存中暂存了最近常用的数据字典信息,用于为 SQL 语句解析提供可以快速读取的数据字典信息。数据库高速缓存(DB Buffer Cache)暂存最近常用的数据块信息,减少磁盘 I/O 操作,用于提高数据访问的速度。重做日志缓存区暂存最近生成的重做日志,将来批量写到重做日志文件中,这样可以确保日志能够更快的生成,提高 DML 操作的执行速度,也能够
显示全部
相似文档