oracle内存结构
2016-05-29 16:03
375 查看
oracle 10g的特点
网格计算:其中g即grid computing
服务器虚拟:将多个普通计算机的处理资源集中使用
存储虚拟:提供了数据库和存储之间的一个虚拟层,这样多个磁盘可以被看作一个磁盘组
网格管理:可以管理网格中独立的节点,集中维护各组系统的配置和安全设置
oracle的逻辑结构和物理结构
oracle例程:当数据库服务器上的一个数据库启动时,oracle将分配一块内存区间(SGA),并启动一个或多个oracle进程,SGA和oracle进程组成了oracle例程。
oracle的内存结构:SGA和PGA
SGA:System Global Area 系统全局区,共享缓冲存储区,数据库各种操作主要在SGA中进行。由所有服务进程和后台进程共享。SGA主要由三部分构成:SQL共享池、数据库缓冲区、重做日志缓冲区。
PGA:Program Global Area程序全局区,非共享缓冲存储区。由每个服务进程和后台进程专有,每个进程都有一个PGA。
数据库缓冲区:Datebase Buffer Cache 用于缓存最近从数据文件中读取的数据块,可以大大提高查询和更新数据的性能。两个参数影响DBC,DB_BLOCK_SIZE缓冲区数据块大小,DB_BLOCK_BUFFERS 缓冲区数据块个数。PGA是为每个连接到oracle database的用户进程保留的内存。数据库缓冲区分为脏的区、自由区和保留区。
脏的区:Dirty Buffer 被修改过但尚未写到数据文件中的缓冲块。
自由区:Free Buffer 没有包含任何数据并可以再写入的区,oracle可从数据文件中读数据块到该区。
保留区:此区包含有正在处理的或者明确保留用于将来使用的区。
SQL共享池:Shared Pool 用于缓存最近被执行的SQL语句和最近被使用的数据定义,主要包括Library cache(共享SQL区)和Date dictionary cache(数据字典缓冲区)。共享SQL区是存放用户SQL命令的区域,数据字典缓冲区存放数据字典信息行。SHARED_POOL_SIZE确定共享池的大小。
重做日志缓冲区:Redo Log Buffer Cache 当执行DML(如update、delete、insert等语句)时,oracle会为这些操作生成重做记录,重做日志高速缓冲区就是用于存储重做记录的缓存。为提高效率,重做记录并不直接写入磁盘的重做日志文件,而是先写入重做日志缓存,当重做记录达到一定数量时,由LGWR进程写入重做日志文件。LOG_BUFFER确定日志缓冲区的大小。应该把重做日志文件保存在单独的磁盘上以获取良好的性能。最大限度的提高重做日志的吞吐量是oracle性能优化首先考虑的因素。
大池:Large Pool是SGA中可选的内存结构,需要大池的操作有数据库备份和恢复、大量排序的SQL语句、并行化的数据库操作。
Java池:Java Pool用于存放JAVA代码和JAVA程序等。
oracle进程包括服务进程和后台进程
服务进程:处理用户进程的请求。处理过程:1、语法检查;2、语义检查;3、对SQL语句进行解析;4、执行SQL,返回结果。
后台进程:为所有数据库用户异步完成各种任务
主要的后台进程有
DBWR 数据库写进程,将数据库缓冲区中所有修改过的缓冲块数据写到数据文件中,并用LRU算法来保持缓冲区中的数据块为最近经常使用的,以减少I/O次数。
LGWR 日志写进程,将日志缓冲区中的所有记录项写到日志文件中。
CKPT 检查点写进程,在控制文件中记录检查点。参数CHECKPOINT_PROCESS确定了检查点的启动/不启动状态。
SMON 系统监控进程,负责完成自动实例恢复。
PMON 进程监控进程,撤消异常中断的用户进程,并释放该进程已获得的系统资源或锁。
ARCH 归档进程,在日志文件组出现切换时,将旧日志文件的内容拷贝到脱机存储介质上,出现介质失败时用于恢复数据。LOG_ARCHIVE_START确定了该进程的启动/不启动状态
RECO 恢复进程,在分布式操作的情况下,恢复一个事务的失败。
LCKn 加锁进程,在并行服务器系统上加锁,最多可加10个锁,分别是LCK0,LCK1......LCK9
网格计算:其中g即grid computing
服务器虚拟:将多个普通计算机的处理资源集中使用
存储虚拟:提供了数据库和存储之间的一个虚拟层,这样多个磁盘可以被看作一个磁盘组
网格管理:可以管理网格中独立的节点,集中维护各组系统的配置和安全设置
oracle的逻辑结构和物理结构
oracle例程:当数据库服务器上的一个数据库启动时,oracle将分配一块内存区间(SGA),并启动一个或多个oracle进程,SGA和oracle进程组成了oracle例程。
oracle的内存结构:SGA和PGA
SGA:System Global Area 系统全局区,共享缓冲存储区,数据库各种操作主要在SGA中进行。由所有服务进程和后台进程共享。SGA主要由三部分构成:SQL共享池、数据库缓冲区、重做日志缓冲区。
PGA:Program Global Area程序全局区,非共享缓冲存储区。由每个服务进程和后台进程专有,每个进程都有一个PGA。
数据库缓冲区:Datebase Buffer Cache 用于缓存最近从数据文件中读取的数据块,可以大大提高查询和更新数据的性能。两个参数影响DBC,DB_BLOCK_SIZE缓冲区数据块大小,DB_BLOCK_BUFFERS 缓冲区数据块个数。PGA是为每个连接到oracle database的用户进程保留的内存。数据库缓冲区分为脏的区、自由区和保留区。
脏的区:Dirty Buffer 被修改过但尚未写到数据文件中的缓冲块。
自由区:Free Buffer 没有包含任何数据并可以再写入的区,oracle可从数据文件中读数据块到该区。
保留区:此区包含有正在处理的或者明确保留用于将来使用的区。
SQL共享池:Shared Pool 用于缓存最近被执行的SQL语句和最近被使用的数据定义,主要包括Library cache(共享SQL区)和Date dictionary cache(数据字典缓冲区)。共享SQL区是存放用户SQL命令的区域,数据字典缓冲区存放数据字典信息行。SHARED_POOL_SIZE确定共享池的大小。
重做日志缓冲区:Redo Log Buffer Cache 当执行DML(如update、delete、insert等语句)时,oracle会为这些操作生成重做记录,重做日志高速缓冲区就是用于存储重做记录的缓存。为提高效率,重做记录并不直接写入磁盘的重做日志文件,而是先写入重做日志缓存,当重做记录达到一定数量时,由LGWR进程写入重做日志文件。LOG_BUFFER确定日志缓冲区的大小。应该把重做日志文件保存在单独的磁盘上以获取良好的性能。最大限度的提高重做日志的吞吐量是oracle性能优化首先考虑的因素。
大池:Large Pool是SGA中可选的内存结构,需要大池的操作有数据库备份和恢复、大量排序的SQL语句、并行化的数据库操作。
Java池:Java Pool用于存放JAVA代码和JAVA程序等。
oracle进程包括服务进程和后台进程
服务进程:处理用户进程的请求。处理过程:1、语法检查;2、语义检查;3、对SQL语句进行解析;4、执行SQL,返回结果。
后台进程:为所有数据库用户异步完成各种任务
主要的后台进程有
DBWR 数据库写进程,将数据库缓冲区中所有修改过的缓冲块数据写到数据文件中,并用LRU算法来保持缓冲区中的数据块为最近经常使用的,以减少I/O次数。
LGWR 日志写进程,将日志缓冲区中的所有记录项写到日志文件中。
CKPT 检查点写进程,在控制文件中记录检查点。参数CHECKPOINT_PROCESS确定了检查点的启动/不启动状态。
SMON 系统监控进程,负责完成自动实例恢复。
PMON 进程监控进程,撤消异常中断的用户进程,并释放该进程已获得的系统资源或锁。
ARCH 归档进程,在日志文件组出现切换时,将旧日志文件的内容拷贝到脱机存储介质上,出现介质失败时用于恢复数据。LOG_ARCHIVE_START确定了该进程的启动/不启动状态
RECO 恢复进程,在分布式操作的情况下,恢复一个事务的失败。
LCKn 加锁进程,在并行服务器系统上加锁,最多可加10个锁,分别是LCK0,LCK1......LCK9
相关文章推荐
- Oracle9i 动态SGA,PGA特性探索
- oracle修改SGA后无法启动问题分析及解决方法
- Oracle内存结构详解(六)--UGA、CGA及软件代码区
- Oracle内存结构详解(五)--Oracle PGA
- Oracle内存结构详解(四)--Oracle SGA其他组成部分
- Oracle内存结构详解(三)--管理Oracle Share Pool
- Oracle内存结构详解(二)--Oracle管理Buffer Cache
- Oracle内存结构详解(一)--Oracle SGA总介
- Oracle PGA作用
- Oracle SGA自动管理
- PGA自动管理原理深入分析及性能调整
- sga pga uga分配情况分析
- Oracle Memory Architecture - Oracle 体系结构篇 3
- Using Process Memory Matrix script for understanding Oracle process memory usage
- Oracle database operating system memory allocation management for PGA – part 4: Oracle 11.2.0.4 and
- Memory used by a single oracle server process
- SOLARIS: Determining Background Process Size using pmap (文档 ID 107750.1)
- Oracle体系结构及备份(五)——sga
- ORACLE数据库修改sga_max_size和sga_target后重启报ORA-00821错
- Oracle体系结构详解,转载文章,个人觉得写得简洁易懂,特别推荐