oracle 体系结构!!!

来源:互联网 发布:怎么防止网络攻击 编辑:程序博客网 时间:2024/06/06 12:11

 

术语:
oracle server 甲骨文数据库
instance 实例
database 数据库
system global area(SGA) 系统全局区
shared pool 共享池
redo log buffer 重做日志缓存
database buffer cache 数据高速缓存
dirty buffer 脏缓冲区
free buffer 空闲缓冲区
pinned buffer 忙缓冲区
library cache 库高速缓存
data dictionary cache 数据字典高速缓存
large pool 大缓冲池
java pool 爪哇池
program global area(PGA) 程序全局区
sort area 排序区
session information 会话信息
cursor state 游标状态
stack space 堆栈空间
system monitor SMON
process monitor PMON
database writer DBWR
log writer LGWR
checkpoint process CKPT
archive process ARCH
data file 数据文件
redo log 重做日志
control file 控制文件
archive log 归档日志
parameter file 参数文件
password file 口令文件
alert file 预警文件

 

概念:
oracle server由instance和database两部分组成。instance是一组内存结构和后台进程的集合。其内存结构主要包括shared pool、redo log buffer、database buffer cache 3部分组成,这些内存结构总称为SGA。SGA还提供了两个可选的内存结构:large pool和javapool;后台进程主要包括SMON、PMON、DBWR、CKPT、LGWR、ARCH等。database是一组系统文件的集合,他由数据文件、控制文件、重做日志组成。

shared pool 用于存放最近执行的sql语句和数据字典信息。其主要由library cache和data dictionary cache两部分组成。

library cache 用于存放最近执行的sql语句信息。

data dictionary cache 用于存放数据字典信息。

data buffer cache 用于存放最近访问的数据块信息。data buffer cache按照缓冲区的使用情况可以将其划分为dirty buffer、free buffer、pinned buffer。

dirty buffer 是指内容与相应的数据块不一致的缓冲区。

free buffer 是指内容与数据块一致或不包含数据的缓存区。

pinned buffer 是指服务器进程正在存取的缓存区。

redo log buffer 用于记录instance的变化。

large pool 用于为大内存操作提供相对独立的内存空间。

java pool 用于存放java代码。

PGA 用于存放服务器进程的数据和控制信息。当用户进程连接到oracle server时,oracle server会为每个服务器进程分配相应的PGA。SGA是所有服务器进程都可共享的一块内存区域,而每个服务器进程都具有私有的PGA内存空间。PGA由sort area、session information、cursor state、stack space等4部分组成。

sort area 用于存放排序操作所产生的临时数据。它是影响PGA尺寸的主要因素。

session information 运行应用程序访问oracle server时,会话所具有的权限、角色以及会话的性能统计信息都放到这里面。

cursor state 运行sql语句时,oracle会在shared pool中为该sql语句分配上下文区,游标实际是指向该上下文区的指针,而PGA中的游标状态则指出了当前sql语句所处的状态。

stack space 用于存放会话变量信息。

SMON 用于执行instance恢复、合并空间碎片并释放临时段。

PMON 用于监视服务器进程的执行,并且在服务器进程失败时清除该服务器进程。

DBWR 用于将data buffer cache的脏缓冲区数据写入数据文件中。

LGWR 用于将redo log buffer所记载的全部内容写入到重做日志文件中。

CKPT 用于发出检查点,检查点会同步数据库的数据文件、控制文件、重做日志。当发出检查点时,后台进程CKPT将检查点时刻的SCN(system change number)写入到控制文件和数据文件头部。同时促使后台进程DBWR将所有脏缓存区写入到数据文件中。

ARCH 用于将重做日志的事务变化复制到归档日志中。

data file 用户存放数据库数据,包括系统数据、用户数据、UNDO数据等。

redo log 用户记录数据库变化,当进行instance恢复或介质恢复时需要使用redo log。

control file 用户记录和维护数据库的物理机构。

archive log 是非活动的重做日志的备份。

parameter fiel 用户定义启动instance所需的初始化参数。

password file 用户验证特权用户。

alert file 用于存放消息和错误,并且这些消息和错误是按时间顺序存放的。

 

数据库逻辑结构:
数据库数据物理上存放在数据库文件中,而逻辑上存放在表空间中,oracle是使用表空间、段、区、块等逻辑结构管理对象空间的。

原创粉丝点击