ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle体系结构梳理

Oracle体系结构梳理

原创 Linux操作系统 作者:忆江南soy 时间:2013-09-12 15:07:12 0 删除 编辑
小弟最近学习oracle,总结了一下oracle体系结构,希望各位高人指正。具体如下:
Oracle的整个结构组件从大的方面来讲,分为Instance和Database两部分。Instance是由SGA和一组后台进程组成,而Database由三类文件组成:Data file、Control file、Redo log file组成。SGA是一块内存区域,通过一组后台进程,与Database进行信息的交互。
        Instance包括内存结构和后台进程。内存结构即SGA和PGA。SGA包括必须的share pool,database buffer cache, redo log buffer cache和一些其他的结构(如锁、latch管理),还有一些可选的,如:large pool,java pool。SGA的大小在oracle9i中可以动态的调整,峰值可以由SGA_MAX_SIZE参数来设置。Share pool用来存放最近使用的SQL语句和数据的定义,它包含Library Cache 和 Data dictionary Cache两个内存结构,其中Library Cache用来存放最近使用的SQL和PL/SQL语句,使用的是LRU算法;Data dictionary Cache是用来存放最近使用过的定义,如数据库文件、表、索引、列、用户、权限等。Database buffer cache存放的是数据块的副本,当用户发起一个查询请求的时候,服务器进程首先去查看database buffer cache中是否有所需的数据,若没有,则到数据文件中去查找,找到后,同时将它复制到database buffer cache中,以便下次查询的时候使用,这样就提高了查询的效率。redo log buffer cache记录了所有对数据块的改变,也就是说,对数据库中的数据进行的任何修改,都会记录到redo log buffer cache中,以便恢复数据库时用。Large pool是一个可选项,当oracle以shared mode运行时,用来承担起存储用户进程、dispatchers、服务器间的连接信息,从而减轻share pool的负担。Java pool也是可选项,当使用java程序的时候,需要设置它。PGA是为一个单独的服务器进程或后台进程保留的一块内存区域,它包括:排序区(sort area)、会话信息(session information)、游标声明(cursor state)、stack space。
        Oracle进程结构包括用户进程、服务器进程和后台进程。
a、        user process:当一个用户向oracle server请求连接的时候产生;它可以向oracle server请求交互操作;它有两个特点:
第二,        必须先与oracle server建立一个连接;
第三,        它不会与oracle server直接的进行交互操作
b、        server process:当用户建立一个session的时候产生;它去连接instence;直接与oracle server进行交互操作;一旦用户建立了与oracle server的连接,就产生了一个server process,它用来处理user process的请求;在dedicated mode下,一个server process只处理一个user process的请求,在shared mode下,处理多个user process的请求。
c、        background process:当oracle instance启动的时候产生。可以理解为它是连接oracle物理结构(database)和内存结构(SGA)的纽带,有五个强制的进程:
1)        DBWn:Database Writer
它将数据库buffer中的dirty buffer写到数据文件中,从而保证在database buffer cache中有足够的可用的buffer;
2)        LGWR:Log Writer
它从redo log buffer中将数据有顺序的写到redo log file中;
3)        SMON:System Monitor
当instance异常结束后,再次重新打开的时候,SMON自动执行恢复操作:
1、向前执行已经提交成功的事务,即被记录到redo log中的操作;
2、打开数据库,一边用户可以登陆,这时用户可以访问没有被锁住的数据,即执行成功的事务的数据;
3、向后回滚instance异常时未被提交的事务,这些操作没有来得及写到redo log中。
4)        PMON:process monitor
Clean up after failed process by:
1、回滚用户当前的事务;
2、释放当前锁住的表和行;
3、释放其他用户占用的资源;
4、重启dispatcher
5)        CKPT:CheckPoint
当DBWn进程将SGA中所有的修改了的buffers(提交了的和未提交的)都写到数据文件中的时候,产生CheckPoint。
6)        ARCn:Archiver
它是可选的后台进程。当一个redo log file写满了之后,需要切换到另外一个redolog file中,这个过程称之为log switch。那么ARCn就是在每个log switch时候,都初始化备份、归档。它自动对连接的redolog文件进行归档,以保证所有的对数据库的改变都受到保护。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28982975/viewspace-772633/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-06-18

  • 博文量
    16
  • 访问量
    64931