ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle体系结构

oracle体系结构

原创 Linux操作系统 作者:xiaowu_mm 时间:2009-04-20 08:58:02 0 删除 编辑

这几天认真的在看oracle concept. 真让人头疼啊。
先说说了解的大概的体系结构

oracle服务器是由oracle数据库oracle实例组成。
oracle实例是由内存结构进程
oracle数据库是由物理结构逻辑结构

我觉得一步步了解oracle体系结构,就像是组装一台计算机一样。cpu,主板,内存条,硬盘等一件件把它们合成一体,然后就能运行使用。出什么样的问题你就知道去找那个地方。现在我要做的就是这个工作。

 内存结构:包括SGA(此区域由所有的服务进程(server process)和后台进程(background process)共享。),PGA(此区域是每个服务进程和后台进程所私有的;即每个进程都有一个 属于自己的 PGA。)以及软件代码区。


SGA是一组包含了 Oracle 数据库数据及实例控制信息的共享的内存结构。它的子组件包括数据缓存区(database buffer cache) , 重做日志缓冲区(redo log buffer),共享池(shared pool), Java 池(Java pool) ,大型池(large pool)(可选的), 数据流池(streams pool) , 数据字典缓存区(data dictionary cache),,其他杂项信息。

PGA是供服务进程(server process)存储数据及控制信息的内存区域。

软件代码区(software code area)是用于存储可运行的或正在运行的程序代码的内存空间。

进程:用户进程,oracle进程(后台进程和服务进程)

A. 服务进程用来来处理连接到实例的用户进程(user process)提交的请求。

完成的工作:

  • 解析、运行应用程序提交的 SQL 语句
  • 如果数据在 SGA 中不存在,则将所需的数据块从磁盘上的数据文件读入 SGA 的数据缓存区(shared database buffer
  • 以应用程序能理解的形式返回 SQL 语句的执行结果

B. 后台进程(可通过是V$BGPROCESS视图查询后台进程详细信息)

实例中可能运行的后台进程:

  • 数据写入进程(DBWn将数据缓冲区的内容写入数据文件。DBWn 进程总是将最近最少使用的脏缓冲区写入磁盘。

初始化参数 DB_WRITER_PROCESSES 用于设定系统中 DBWn 进程的数量。此参数的最大值为 20

当满足以下条件时,DBWn 进程会将脏缓冲区写入磁盘:

  • 如果服务进程(erver process)扫描了一定数量的缓冲区后仍不能找到可用缓冲区,她将通知 DBWn 进程进行写入。DBWn 在执行其他操作的同时,能够异步地将脏缓冲区写入磁盘。
  • DBWn 进程周期性地将脏缓冲区写入磁盘,从而使检查点(checkpoint)前移。检查点是进行实例恢复(instance recovery)时应用重做日志的起始点的位置。此位置是由数据缓冲区内时间最早的脏缓冲区决定的。

 

  • 日志写入进程(LGWR负责对重做日志进行管理——将重做日志缓冲区(redo log buffer)内的数据写入磁盘上的重做日志文件中。
  • 检查点进程(CKPT 当一个检查点(checkpoint)事件发生时,更新所有数据文件的文件头来记录检查点事件的详细信息。
  • 系统监控进程(SMON 实例启动时如有需要,将负责进行恢复(recovery)工作。此外,SMON 还负责清除系统中不再使用的临时段(temporary segment),以及为数据字典管理的表空间(dictionary managed tablespace)合并相邻的可用数据扩展(extent)。
  • 进程监控进程(PMON 当一个用户进程(user process)失败后,负责对其进行恢复。PMON 进程将清除相关的数据缓存区(database buffer cache)并释放被此用户进程使用的资源。

PMON 进程会周期性地对调度器(dispatcher)和服务进程(server process)进行检查,重新启动停止运行的进程(不包括 Oracle 有意停止的进程)。PMON 进程还负责将实例和调度器进程的信息注册到网络监听器(network listener)。

是在分布式数据库环境(distributed database configuration)中自动地解决分布式事务(distributed transaction)错误的后台进程。

  • 作业队列进程 进行批处理(batch processing)。这种进程用于运行用户的作业(job)。

初始化参数 JOB_QUEUE_PROCESSES 表示实例中可以并行执行的最大作业队列进程数。但是并不是所有的作业队列进程都可以用于执行用户的作业。

  • 归档进程(ARCn 在发生日志切换(log switch)时将重做日志文件复制到指定的存储设备中。只有当数据库运行在 ARCHIVELOG 模式下,且自动归档功能被开启时,系统才会启动 ARCn 进程。
  • 队列监控进程(QMNn是供 Oracle 工作流高级队列(Oracle Streams Advanced Queuing)使用的可选的进程,用于监控消息队列。队列监控进程和作业队列进程(job queue process)与其他 Oracle 后台进程的区别在于,这两类进程出错不会导致整个实例出错。
  • 其他后台进程

MMON 进程负责执行多种和可管理性相关(manageability-related)的后台任务

  • 当某个测量值(metrics)超过了预设的限定值(threshold value)后提交警告
  • 创建新的 MMON 隶属进程(MMON slave process)来进行快照(snapshot
  • 捕获最近修改过的 SQL 对象的统计信息

MMNL 进程负责执行轻量级的且频率较高的和可管理性相关的后台任务,例如捕获会话历史信息,测量值计算等。

MMAN 进程负责执行数据库系统的内部任务。

数据库

A.逻辑结构

  1. 数据库,表空间,数据文件的关系和区别?

  •   一个Oracle数据库是由一个或多个被称为表空间(tablespace)的逻辑存储单位构成的,这些表空间共同用于存储数据库的数据
  • Oracle数据库的每个表空间由一个或多个被称为数据文件(datafile)的物理文件构成,这些文件由Oracle所在的操作系统管理。
  • 数据库的数据实际存储在构成各个表空间的数据文件中。例如,一个最简单的Oracle数据库至少包含一个表空间及一个数据文件。再例如,一个数据库可能含有三个表空间,每个表空间由两个数据文件构成(即总共有六个数据文件)。

一个数据文件只能由一个数据库的一个表空间使用。

2. 表空间的容量等于各个数据文件容量之和。数据库的容量等于各个表空间容量之和。

3. 数据库是有表空间的逻辑单位存储 表空间  -->  

段-->     数据扩展-->     数据块

4. 表空间内容:A. 大文件表空间 B.system表空间 C. SYSAUX表空间 D.撤销表空间E.临时表空间

5. 表空间的空间管理:本地管理空间和数据字典管理空间

数据块,数据扩展,段 

文本框: 管理开销 数据块头:包含了此数据块的概要信息,例如块地址(block address)及此数据块所属的段(segment)的类型(例如,表或索引)。

表目录区:如果一个数据表在此数据块中储存了数据行,那么数据表的信息将被记录在

数据块的表目录区(table directory)中

         行目录区:包含数据块中存储的数据行的信息  (每个数据行片断(row piece 在行数据区(row data area)中的地址)。

行数据区:数据块(data block)中行数据区(row data)包含了表或索引的实际数据。一个数据行可以跨多个数据块。

可用空间区:

 

A. 数据块可用空间的有效性与优化

增加数据块中的可用空间:delete,update(更小的容量)

B. 行链接和行迁移

C. 空间的管理:参数PCTFREE PCTUSED

数据扩展(EXTEND

是由一组连续的数据块(data block)构成的数据库逻辑存储分配单位

初始数据扩展,增量数据扩展

  簇和簇表  簇其实就是一组表,是一组共享相同数据块的多个表组成。 将经常一起使用的表组合在一起成簇可以提高处理效率。 在一个簇中的表就叫做簇表。建立顺序是:簇簇表数据簇索引

段(Segment

数据段

索引段

临时段

 

B.物理结构

控制文件(controlfile)

多重控制文件。相同的控制文件在不同的磁盘,避免介质损坏。用来恢复。

 

数据文件(datafile)

 

重做日志文件

 

归档日志文件

 

初始化参数文件

 

查看文件位置和名称的视图:V$controlfile;V$datafile;V$logfile.

 

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

上一篇: 失败的人生
下一篇: 周末计划
请登录后发表评论 登录
全部评论

注册时间:2009-02-12

  • 博文量
    27
  • 访问量
    22159