ORACLE数据库概念

ORACLE数据库概念

1.1   ORACLE数据库结构

1.1.1    ORACLE数据库结构图

ORACLE数据库由控制文件(controlfile)、数据文件(data file)、重做日志文件(redo log files)组成;同时,ORACLE使用其他的文件诸如parameter file、password file、alert.log、archived log file等。

       ORACLE实例(instance)由SGA区(系统全局区)及ORACLE后台进程组成。SGA(system global area 或称为 share global area)由共享池(shared pool)、数据缓冲区(db buffer cache)、重做日志缓冲区(redo log buffer)组成。

       Shared pool由库缓存(library cache)和字典缓存(data dictionary cache)组成:

l  库缓存保存SQL语句文本、SQL语句的分析树、SQL语句的执行计划(SQL语句的执行步骤)等内容。如果一个SQL语句在库缓存区中已经存在,那么这个SQL语句执行时就不需要进行重新编译,从而减少了编译时间、减少了内存的需求,提高了应用的性能。

l  数据字典缓存保存最近访问过的数据块对象的定义,包括表、索引、列、数据文件、用户、权限等。

ORACLE默认启动的后台进程包括:PMON、SMON、CKPT、DBWR、LGWR等组成,一旦ORACLE启动了其他数据库选项,还需要启动诸如ARCH、Dnnn、LCKn、RECO等后台进程。

l  PMON:后台进程PMON负责清除失败进程所占用资源,包括回滚失败进程的事务、释放失败进程锁资源及其他进程。

l  SMON:SMON进程负责在数据库启动时进行实例恢复(包括回滚未提交的数据;提交重做日志文件中确认已发生改变的数据)、相邻表空间合并、回收临时扩展段。

l  DBWR:DBWR负责将数据缓冲区中发生更改的数据写入数据文件

当发生以下四种情况时,数据缓冲区中的数据将写入数据文件:

-          数据缓冲区中发生更改的数据(dirty buffer)超过极限

-          数据缓冲区中的剩余空间不足

-          超时(3s)

-          发生checkpoint(同步数据缓冲区和数据文件)

l  LGWR:LGWR将重做日志缓冲区中的数据顺序写入重做日志文件中

当发生以下几种情况时,重做日志缓冲区中的数据写入重做日志文件:

-          事务提交

-          重做日志缓冲区使用超过1/3

-          重做日志缓冲区发生超过1MB的更改

-          进行DBWR之前

l  CKPT:修改数据文件及控制文件头

l  Dnnn:MTS(Multi Thread Server)启动的多个多线索服务器进程

l  ARCH:数据块运行在归档模式下,将重做日志文件转储到磁盘或其他介质上

l  LCKn:并行数据库启动进程,用于避免多个实例对同一个数据块进行同时修改

l  RECO:负责在分布式应用中保证不同数据块间相关数据的同步

1.1.2    user process和server process

user process:用户进程

server process (服务器进程):客户端应用程序登录系统后,ORACLE服务器将启动一个进程,即称为服务器进程。

1.2   PGA:

Program Global Area(程序全局区)由服务进程产生时生成,PGA是一个非共享的内存结构,它包含排序区(sort area)、会话信息(诸如用户权限等信息)、游标状态、堆栈区(记录诸如全局变量等信息)等内容。

posted @ 2016-07-15 15:26  Gem丶超超  阅读(865)  评论(0编辑  收藏  举报