oracle 体系_第一章实例与数据库(11G)


1 oracle 的基础架构及应用环境
php

图片.png

oracle的基本组成结构java

  1. oracle server =由数据库+实例组成
    node

  2. database = 数据文件+控制文件+redo 日志组成linux

  3. oralce 内存调度= SGA+PGA组成web

  4. oracle 实例= SGA +后台进程组成算法


系统全局SGA    
sql

1.在一个instance只有一个SGA ,一个系统能够有多个实例。故一个系统能够有不一样的SGA
数据库

2.SGA 内存为全部oracle 客户端生成的session 共享,随着实例的启动而分配,实例关闭,SGA 内网将被释放apache

数据库
缓存


2 SGA的基本组件

  1. shared pool (共享池)

   共享池是对sql,pl/sql 程序进行语法分析,编译执行的内存区域。

   共享池由库缓存(library cache)和数据字典缓存(data dictionary cache )以及结果缓存(result cache)组成

   共享池的大小直接影响数据库的性能。

    共享池中的几个概念

    库缓存:库缓存是sql和plsql的解析场所,存放sql、plsql语句代码,以及他们的执行计划。以备其余用户共享

    数据字典缓存。主要存放的是数据字典信息。以备其余用户使用

    结果缓存:存放的是之前执行过的sql的结果集和PL/sql 函数返回值

    user global area(UGA)

    存放服务器端的sql结果集及pl/SQL 函数返回值

    共享服务器链接模式下 若是没有配置large pool 则UGA 数据SGA的shared pool ,专用链接模式时UGA 属于PGA

 

 2 database buffer cache

 用户存储从磁盘数据文件中读入的数据,为全部用户共享。

 服务器进程server process 负责将数据文件的数据,从磁盘读入到数据缓冲区,当后续的请求须要在这些数据时若是在内存中找

 到,则不须要再从磁盘中读取。

 数据缓冲区中被修改的数据库(脏块) 由后台进程DBWR 将其写入磁盘。

 数据缓冲区的大小对数据库的读取速度有直接的影响。

 database buffer cache中的几个cache概念

 buffer pool = (default pool) + (nodefault pool)


其中:

default pool 是标准块存放的内存空间大小,SGA 自动管理时此参数不用设置,使用LRU 算法清理空间

nodefault pool 对应的参数有

    DB_nk_cache_size 指定非标准块大小的内存空间,好比2k 4k 16k 32k

    DB_keep_caceh_size   存放常常访问的小表或索引等。

    DB_recycle_cace_size 与keep相反,存放偶尔作全表扫描的大表数据。



  能够将固定某个表调入到 nodefault pool中

  alter table scott.emp1 storage(buffer_pool keep)


可使用命令进行查看

select segment_name,buffer_pool from dba_segments where segment_name='EMP1';



图片.png


   emp1 表保存了两份,一份是在存储上,一份是在内存里


 default pool 对应的参数是DB_cache_size 与标准块default block 是配套的,若是default block是8k,DB_cache_size 这个参数将

代替db_8k_cache_size

 若是要创建非标准块的表空间,先前要设定db buffer中的与之对应的db_nk_cache_size 参数


SQL> alter system set db_16k_cache_size=8m;

SQL> create tablespace tbs_16k datafile '/u01/oradata/prod/tbs16k01.dbf' size 10m blocksize 16k;

SQL> select TABLESPACE_NAME,block_size from dba_tablespaces;



图片.png


3  redo log buffer

 以日志条方式记录数据库的全部修改信息包括DML 和DDL ,目的是为了数据库恢复,日志条目首先产生于

日志缓冲区,日志缓冲区较小,通常缺省在3M-15M 之间,它是以本身为单位的

日志缓冲区的大小启动后是固定不变的,若是调整只能经过修改参数文件后从新启动生效,不能动态修改,

不能由SGA 自动管理


4 large pool (可选)

为了进行大的后台进程操做而分配的内存空间,主要用户共享服务器的session memroy  rman 备份恢复以及并行查询等操做,有助于下降shared pool 碎片

5 java pool

 为了java虚拟机及应用而分配的内存空间,包含全部session指定的java代码和数据

6.stream pool

为了stream process 而分配的 内存空间,stream技术是为了在不一样数据库之间共享数据,所以它只对使用了stream 数据库特性的系统是重要的。



3 oracle 的进程


user process;

客户端的的进程,访问数据库分为三种形式,1.sql plus 2.应用程序 3 web方式(em)


server process

服务器器端的进程,user process 不能直接访问oracle,必须经过相应的server process 访问实例,进而访问数据库

linux 下命令 能够查看

ps -ef | grep LOCA

图片.png


在linux能够看到的server process l(local=yes)是本地链接,(local=no) 是远程链接

能够在oracle 查看V$process 视图,它包含了当前全部的后台进程和服务器进程


select pid,program,background from v$process ;

图片.png


background  字段为1是 background process 其余都是服务器进程


基本的后台进程有


smon:系统监控进程,当实列崩溃后,oracle会自动恢复实列,释放再也不使用的临时短

pmon:进程监控,当用户进程失败时,清理出现故障的进程,释放全部当前被挂起的锁定,释放服务器使用的资源,监控空闲会话是否达到阈值,动态注册监听

dbwr :数据写入进程,将变动的数据缓冲区的脏buffer 写入数据文件中,释放数据缓冲区空间。能够有多个进程

在如下状况触发dbwn 写入数据文件1.检查点发生,2内存脏块达到阈值,3.db_buffer 自由空间不够时 4.表空脱机在线备份时

lgwr:写日志条目,将日志缓冲区中的日志条目写入日志文件中。lgwer 只有一个工做进程

在如下状况下会触发LGWR 进程.1,commit 2.logbuffer 三分之一满。3.检查点发生时,先于dbwr写入日志文件 四、时间到达3秒

ckpt:生成检查点,通知dbwr写入脏块 检查点有三种

  1. 彻底检查点:保证数据库一致性

  2. 增量检查点:不断更新控制文件中的检查点位置,当发生实例崩溃时,能够尽可能缩短实例恢复的时间。

  3. 局部检查点:特定的操做下针对某个空间

arcn 归档当前日志:归档模式下,把当前日志组的内容写入归档日志,做为历史日志提供数据库的recovery


4 PGA 的基本组件


program global area (程序全局区)的做用

缓存来自服务器进程和后台进程的数据和控制信息

提供排序,hash链接

pga在进程建立时被分配,进程终止时被释放,全部进程的pga之和构成了pga的大小 。



pga的结构

图片.png

sql 工做区:有几个子区,1.sort area,2.harh area 3,bitmap merge area

做用排序操做,多表链接,位图链接,建立位图

会话空间   session memory

做用:存放logon信息等会话相关的控制信息

私有sql区域

做用:存储server process 执行sql所须要的私有数据和控制结构,如绑定变量,它包括固定区域和运行是区域

游标区域 plsql 游标使用就是这块区域


5 数据库的链接方式


专用链接模式(dedicated )

对于客户端的每一个user process 服务器端都会出现一个server porcess ,会话与专用服务器之间存在一对一的映射。

专用链接的pga的古汉丽方式是私有的。oracle 缺省采用专用链接模式



共享链接池模式


多个user process 共享一个server process

  1. 共享服务器其实是一种链接池机制,链接池能够重用已有的超时链接,服务器与其余活动火花,单容易产生锁等待,此种链接方式如今已经不多了

  2. 全部的调度进程共享一个公共的请求队列,可是每一个进程都有本身的响应队列

  3. 在共享服务中会话的UGA 存储信息是在SGA 中,而不是想专用连接那个在pga中存储信息,这是的pga的存储结构为堆栈空间


驻留池模式


适用于必须维持数据库的永久连接,结合了专用服务器模式和共享服务器模式的特色,它使用连接代理,而不是专用服务器链接客户机到数据库,优势是能够用不多的内存

处理大量的并发链接,特别使用与apache 的php 应用环境

相关文章
相关标签/搜索