oracle体系结构

来源:互联网 发布:八门神器源码 编辑:程序博客网 时间:2024/04/20 15:52

数据库服务器由实例instance和数据库database 构成

物理文件:
   警告文件:alert file一个简单的文本文件,记录数据库运行状况的记录,从数据库创建开始到一直被删除。
   口令文件:sys用户及其口令。所在目录一般为%ORACLE_HOME%/database,其文件名为pwdsid.ora
   初始化参数文件
   数据文件:oracle 10g中至少需要2个文件,一个构成system表空间,一个构成sysaux表空间
   临时数据文件
   控制文件:存储数据库物理结构信息。如果丢失或则损坏,则数据库无法运行,一般有3份
   重做日志文件: 记录了所有用户对数据库修改的记录,目的是为了在数据库出现故障的时候能够恢复数据库
           数据库故障有2类:一类掉电死机造成数据不一致,重启数据库后,oracle会自动利用联机数据库进行恢复

,不需要用户干预。另一类是磁盘丢失数据造成的数据丢失,需要用户使用数据库备份来恢复数据库。

Oracle内存的结构和后台进程

内存结构主要由SGA和PGA构成

SGA意思为 system global area,是实例中的所有进程都能够访问的一部分共享内存,主要包括以下3个部分:database

buffer cache、shared pool、redo buffer,另外还包括large pool 和java pool

database buffer cache:存放从磁盘读取的数据。这部分内存是 oracle所占用的内存中最大的一块
shared pool:存放SQL语句的解析结果及执行计划
redo buffer:用于存放用户对数据库的操作记录,然后由LGWR进程把这些记录写入磁盘中的重做日志文件
large pool: 主要用于以下几种情况:
            1) 共享服务连接方式中,分配UGA
            2)在进程的并发操作时,保存进程间协调信息
            3) rman备份时,作为磁盘I/o缓冲区
            之所以叫large pool,并不是因为这个区域比较大,而是区域使用内存的方式特殊:SGA区的其他部分, 

          内存的使用方式主要基于LRU算法。而它是需要时分配一大块内存,使用后完全释放供其他进程使用

java pool:用于在数据库中运行java


PGA process global area,是分配给某个服务器进程使用的内存,一个进程不能访问其他进程的PGA

UGA 是分配给指定会话(session)的内存。其位置决定用户连到Oracle的方式。除了UGA及进程相关内存外,PGA中一些

区域主要用于在内存中进行排序及散列运算。


实例中的进程:包括服务器进程和后台进程
服务器进程用于执行客户端请求,比如处理SQL语句,并把结果交给客户端
后台进程与数据库一起启动,从事维护任务。主要有以下几种:
PMON process monitor 用于清理异常中止所占用的资源,回滚未提交的事务、释放锁、释放分配的SGA内存deng。注册

数据库到监听器
SMON system mointor  数据库的垃圾收集器,用于在发生故障后,重启时恢复
CKPT check point     更新文件头,使文件保持同步
DBWn database block writer  负责把脏块写入磁盘,
LGWR log writer     负责把日志缓冲区的内容写入日志文件,写日志条件有3个:每三秒、commit时、log buffer达

到了1/3满或则达到1MB