内容发布更新时间 : 2024/11/18 12:40:00星期一 下面是文章的全部内容请认真阅读。
Word模板样式
Oracle体系结构简要介绍
1. oracle数据库软件介绍
oracle数据库包括:oracle数据库和oracle实例两个东西。Oracle实例指的是:oracle启动后占用的内存和后台进程的总称;oracle数据库是实例和数据文件的总称。数据库关闭后数据库实例就不存在了,数据库文件一直存在。
Oracle是由oracle软件和oracle数据库组成,oracle数据库主要指的是三类文件,分别是控制文件(*.ctl)、日志文件(*.log)、数据文件(*.dbf)。
2. oracle中内存结构介绍
oracle数据库启动起来后有两大内存结构,一是SGA(系统全局区),二是PGA,其中SGA
是用来共享的,PGA是用来给进程使用的。
第 1 页/共 9页
Word模板样式
2.1 SGA介绍
Sga是就是oracle系统的全局区,在linux和nuix中用 ipcs -m命令来查看占用的共享内存。Sga包括:共享池(shared pool)、stream池(stream pool)、大型池(large pool)、java 池、数据库缓冲区高速缓存(buffer cache)、重做日志缓冲区(log buffer)。其中主要的缓冲区包括:共享池(shared_pool)、数据库高速缓存区(db_cache)、重做日志缓冲区(log_buffer),最容易出问题的也是这三个。
在plsql中可以通过 show parameters sga 或者 show sga 来查看sga的参数配置。
2.1.1 共享池(shard pool)
共享池(shard pool)主要用来缓存SQL语句以及所对应的SQL执行计划。参数是shared_pool_size。
SQL语句的执行计划存放在shard pool中,下次去执行的时候先到shard pool中去找,这样大大减少资源的消耗。
SQL语句的解析以及执行计划的缓存、shard pool的访问,都是有server process 来做的。
2.1.2 数据库缓冲区高速缓存(buffer cache)
数据库缓冲区高速缓存(buffer cache)主要用来缓存DBF的数据,这些数据通过SQL语句的执行计划得来的。参数是db_cache_size 。
数据库缓存区高速缓存对应的是数据库写进程(DBWN),数据库写进程(DBWN)对应的是数据文件和控制文件。
2.1.3 重做日志缓冲区(log buffer)
重做日志缓冲区(log buffer)主要用来存放日志的。参数是log_buffer。 重做日志缓冲区对应的是日志写进程(LGWR),日志写进程(LGWR)对应的数据文件是重做日志文件,也就是日志文件。
2.1.4 stream 池(stream pool)
stream 池(stream pool)是由oracle的stream来使用的。参数是streams_pool_size。
2.1.5 大型池(large pool)
大型池(large pool)用于为某些大型的进程提供大量的内存分配,如数据备份等。参数是:lorge_pool_size
第 2 页/共 9页
Word模板样式
2.1.6 java 池(java pool)
java 池(java pool)用于java虚拟机中特定会话的所有java代码和数据,参数是:java_pool_size。
2.1.7 修改SGA参数的语法:
在10g和11g这2个版本中,空间的大小一般都是oracle自动划分出来的,也可以手动设置,它们都是动态的,所以更改后不会立即生效,需要重启,使 用命令:alter system set sga_max_size=xxxM scope=spfile;和alter system set sga_target = xxxM scope=spfile;sga_max_size必须大于等于sga_target,并且在设置sga的值大小时候是根据总内存大小的60%的 70%-80%,pga的大小是根据总内存大小的60%的20-30%。
2.2 PGA介绍
Pga是用来个进程使用的,在oracle10g中不仅前台进程分配了PGA空间,后台进程也分配了PGA空间。它是私有全局区,主要用来存放每个进程来了后单独存放内存区域。
2.3 oracle 实例介绍
把oracle启动起来后分配的内存和进程统称为oracle实例,也就是说oracle启动起来后就会产生一个实例,当oracle数据库关闭后数据库实例就会消失了。一个数据库可以对应多个实例,如oracle,一般是双数,如2、4、6、8,8台机器用的很少。
3. oracle中进程介绍
oracle中有六大进程,分别是:检查点进程(CKPT)、系统监视器(SMON)、进程监视器(PMON)、数据库写进程(DBWN)、日志写进程(LGWR)、归档进程(ARCN)。 Oracle中进程共分为三类,分别是用户进程、服务进程、后台进程。其中后天进程伴随实例的启动而启动,他们主要是维护数据库的稳定,相当于一个企业中的管理者及内部服务人员,他们并不直接给用户提供服务。
3.1 数据库写进程(DBWN)
Database write(DBWN)数据库写进程,它的作用是把SGA中被修改的数据同步到磁盘文件中,保证Buffer cache 中有足够的空闲数据块的数量。用来处理数据库缓冲区的数据写到硬盘。
触发条件是:1.检查点;2.一个服务进程在设定的时间内没有找到空闲块;3、每隔三秒钟自动唤醒一次。
第 3 页/共 9页