`
IT_zhlp80
  • 浏览: 40964 次
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle的体系结构

阅读更多


       对于一个数据库系统来说,假设这个系统没有运行,我们所能看到的和这个数据库相关的无非就是几个基于操作系统的物理文件,这是从静态的角度来看,如果从动态的角度来看呢,也就是说这个数据库系统运行起来了,能够对外提供服务了,那就意外着数据库系统启动了自己的一个实例,综合以上2个角度,oracle如何定义上述描述呢?
       我们来引入第一个概念,oracle服务器,所谓oracle服务器是一个数据库管理系统,它包括一个oracle实例(动态)和一个oracle数据库(静态)。oracle实例是一个运行的概念(如操作系统的进程),提供了一种访问oracle数据库的方式,始终打开一个,并且只能打开一个oracle数据库,oracle实例有SGA和一些后台服务进程组成,在后台服务进程当中,DBWn PMON CKPT LGWR SMON是必备的后台进程,而ad queue,rac,shared server,ad replication则是可选的,之所以可选,要们是因为离开它oracle也能正常运行,要么是一些高级的功能才可以用得到。
       oracle数据库是一个被统一处理的的数据的集合,从物理角度来看包括三类文件数据文件,控制文件,重做日志文件。从逻辑角度来看,oracle数据库至少包含一个表空间,表空间至少包含一个段,段由区做成,区有块组成。需要注意的是表空间可以包含若干个数据文件,段可以跨同一个表空间的多个数据文件,区只能在同一个数据文件内。
       oracle还设计了其他的关键文件用来为整个系统服务,如配置文件,密码文件,归档日志文件,还有还有用户进程和服务进程,现在可以简单理解下执行sql语句就要用到这2个进程。


下表是SGA和PGA的总结



SGA
SHARE POOL

(共享池)

用如下命令可以调整

ALTER SYSTEM SET

SHARED_POOL_SIZE=64M
LIBRARY CACHE

(库高速缓存)

1存储最近使用的SQL和PL/SQL语句信息

2包括SHARED SQL和SHARED PL/SQL

3用LRU算法管理

4大小由SHARE POOL大小决定

DATA DICTIONARY CACHE

(数据字典高速缓存)

1数据库中最近使用的定义的集合

2包含数据库文件,表,索引,列,用户,权限和其他的数据库对象相关信息

3在语法分析阶段,服务器进程会在数据字典中查找用于对象解析和验证访问的信息

4将数据字典信息高速缓存到内存中,可缩短查询和DML的响应时间

5大小由共享池的大小决定

DATABASE BUFFER CACHE

(数据缓冲区高速缓存)
1存储已从数据文件检索到的数据的复本

2大幅提高读取和更新数据的性能

3使用LRU算法管理

4主块的大小由DB_BLOCK_SIZE确定

REDO LOG BUFFER

(重做日志缓冲区)
1记录对数据库数据块作的全部更改

2主要用来恢复

3其中记录的更改被称作重做条目

4重做条目包含用于重新构建或重做更改的信息

5大小由LOG_BUFFER定义

LARGE POOL

(大型池)
1 SGA可选的内存区

2分担了共享池的一部分工作

3用于共享服务器的UGA

4用于I/O服务器进程

5备份和恢复操作或RMAN

6并行执行消息缓冲区(前提PARALLEL_POOL_SIZE=TRUE)

7不使用LRU列表

8大小由LARGE_POOL_SIZE确定

JAVA POOL

(JAVA池)
1存储JAVA命令服务分析要求

2安装和使用JAVA时必须的

3大小有JAVA_POOL_SIZE确定

PGA
PRIVATE SQL AREA

(专用SQL区)


专用SQL区的位置取决于为会话建立的连接类型。在专用服务器环境中,专用SQL区位于各自服务器进程的PGA中。在共享服务器环境中,专用SQL区位于SGA中。

管理专用SQL区是用户进程的职责。用户进程可以分配的专用SQL区的数目始终由

初始化参数OPEN_CURSORS来限制。该参数的缺省值是50。
PERSISTEN AREA

(永久区)

包含绑定信息,并且只在关闭游标时释放

RUNTIME AREA

(运行时区)

在执行请求时的第一步创建。对于INSERT、UPDATE和DELETE命令,该区在执行语句后释放,对于查询操作,该区只在提取所有行或取消查询后释放。

SESSION MEMORY

(会话内存)
包含为保留会话变量以及与该会话相关的  其它信息而分配的内存。对于共享服务器环境,该会话是共享的而不是专用的。

SQL WORK AREAS

(SQL工作区)
用于大量占用内存的操作,如排序、散列联接、位图合并和位图创建。

工作区的大小可进行控制和调整




下表是后台进程总结



DBWN
DBWn延迟写入数据文件,直到发生下列事件之一:

※  增量或正常检查点

※ 灰数据缓冲区的数量达到阈值

※  进程扫描指定数量的块而无法找到任何空闲缓冲区时

※出现超时

※ 实时应用集群(Real Application Clusters, RAC)环境中出现ping请求

※ 使一般表空间或临时表空间处于脱机状态

※  使表空间处于只读模式

※  删除或截断表

※ 执行ALTER TABLESPACE表空间名BEGIN BACKUP操作

LGWR
LGWR在下列情况下执行从重做日志缓冲区到重做日志文件的连续写入:

※当提交事务时

※ 当重做日志缓冲区的三分之一填满时

※ 当重做日志缓冲区中记录了超过1 MB的更改时

※ 在DBWn将数据库缓冲区高速缓存中修改的块写入数据文件以前

※ 每隔三秒

SMON
例程恢复

※前滚重做日志中的更改

※打开数据库供用户访问

※回退未提交的事务处理

※ 合并空闲空间

※回收临时段

PMON
进程失败后,后台进程PMON通过下面的方法进行清理:

※  回退用户的当前事务处理

※  释放当前保留的所有表锁或行锁

※  释放用户当前保留的其它资源

※  重新启动已失效的调度程序

CKPT
※  在检查点发信号给DBWn

※  使用检查点信息更新数据文件的标头

※  使用检查点信息更新控制

启动检查点的原因如下:

※ 确保定期向磁盘写入内存中发生修改的数据块,以便在系统或数据库失败时不会丢失数据

※ 缩短例程恢复所需的时间。只需处理最后一个检查点后面的重做日志条目以启动恢复操作

※ 确保提交的所有数据在关闭期间均已写入数据文件

由CKPT写入的检查点信息包括检查点位置、系统更改号、重做日志中恢复操作的起始位置以及有关日志的信息等等。

注:CKPT并不将数据块写入磁盘,或将重做块写入联机重做日志。

ARCN
※ 可选的后台进程

※ 设置ARCHIVELOG模式时自动归档联机重做日志

※  保留数据库的全部更改记录




        最后,举一个用户提交sql语句的的例子来结束本文,如果用户想提交sql语句,那么首先你必须要连接到oracle实例,连接到oracle实例有三种途径,1如果用户登陆到运行oracle实例的操作系统上,则通过进程间通信进行访问2C/S结构访问3三层结构
发起连接的应用程序或工具通常称为用户进程,连接发起后,oracle服务器就会创建一个进程来接受连接,这个进程就成为服务进程,服务器进程代表用户进程与oracle实例进行通信,在专用服务器连接模式下,用户进程和服务进程是1对1的关系,在共享服务器模式下,多个用户进程可能共享一个服务进程。
        当服务器进程开始和oracle实例进行通信时,一个会话就被创建了。显然处理一个查询要经过语法分析,绑定,执行,提取等阶段。

  • 大小: 81.6 KB
分享到:
评论

相关推荐

    Oracle体系结构简介

    以下是对Oracle体系结构主要组成部分的详细说明: 1. **数据库**:数据库是Oracle的核心,它是一个逻辑数据集合,包含了物理存储的数据以及元数据。Oracle是关系型数据库管理系统(RDBMS),意味着它以表格形式组织...

    oracle 体系结构详解

    Oracle体系结构是Oracle数据库的核心,涵盖了数据库运行的基本原理和组成部分。Oracle数据库体系结构非常复杂,主要包括实例和数据库两个方面。Oracle实例是一个运行中的数据库系统,它由系统全局区(SGA)和一组...

    oracle体系结构、ocp笔记

    "Oracle体系结构与OCp笔记" Oracle体系结构是Oracle数据库管理系统的核心组件之一,它是Oracle数据库的基础架构。Oracle体系结构主要由三部分组成:数据库(Database)、实例(Instance)和oracle网络架构。 ...

    Oracle 体系结构 说明

    【Oracle 体系结构详解】 Oracle数据库的体系结构是其高效管理和优化数据操作的关键。这个复杂的架构设计主要目的是为了有效地管理数据库系统中的稀缺资源,特别是内存,以提高性能并确保数据的完整性和可用性。 1...

    Oracle体系结构图

    oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图oracle体系结构图

    强烈推荐 Oracle 体系结构(高清完整中文版)

    ### Oracle 体系结构详解 #### 一、Oracle 基本体系结构概览 Oracle 数据库的体系结构设计得非常复杂且精妙,它能够高效地处理大量的并发请求,并确保数据的安全性和一致性。Oracle 的基本体系结构主要包括内存...

    oracle体系结构思维导图.jpg

    oracle体系结构思维导图

    oracle体系结构作业

    oracle体系结构,Oracle数据库数据实例、启动过程的学习等;oracle体系结构课程学习中老师布置的作业。

    Oracle体系结构概述

    本文将深入探讨Oracle体系结构的各个关键组成部分。 首先,我们关注物理结构,这是Oracle数据库在磁盘上的实际存储形式。主要包含以下几个部分: 1. **数据文件**:数据文件是Oracle数据库中最基本的存储单元,...

    oracle体系结构8.09

    ### Oracle体系结构8.09知识点详解 #### 一、Oracle体系结构概述 Oracle数据库的体系结构主要包括几个关键部分:数据库实例(Instance)和数据库文件(Database Files)。其中,数据库实例由内存结构(Memory ...

    oracle体系结构ppt

    oracle体系结构介绍,适合oracle初学者。有助于oracle入门。

    Oracle体系结构详解

    ### Oracle体系结构详解 Oracle体系结构是理解Oracle数据库工作原理的关键。本文将深入解析Oracle的基本组成、实例(Instance)结构以及内存结构等核心概念。 #### 一、Oracle基本组成 Oracle的基本组成部分包括...

    oracle体系结构实例

    oracle体系结构学习之实例介绍学习;是体系结构学习英文版ppt的第三章,后续还有其他所有章节,是学习体系结构很全面的教材,比官方文档易学,结构清晰。

    Oracle体系结构PPT

    系统地讲解Oracle体系结构,有助于初学者整体了解和把握Oracle服务器。

    Oracle体系结构详解.pdf

    Oracle 体系结构详解 Oracle 体系结构是围绕 Oracle Server 架构展开的, Oracle Server 由 Instance 和 Database 组成。一个 Instance 只能对应一个 Database,特殊情况下一个 Database 可以有多个 Instance(RAC...

    oracle体系结构课件

    oracle体系结构课件,我们系主任精心制作的,挺全的,真的不错,希望对大家有所帮助!!

    价值1.67万的oracle体系结构视频合集(相老师).txt

    oracle体系结构,本教程注重Oracle数据库原理的讲解,讲的很细,总共45集涵盖了数据库的核心原理

    oracle体系结构PPT

    oracle数据库体系结构详述,入门性质文档

    Oracle体系结构

    Oracle体系结构主要包括以下几个关键部分: 1. **实例(Instance)**:实例是Oracle数据库在内存中的表示,由系统全局区(SGA)、程序全局区(PGA)和后台进程组成。系统全局区存储共享数据,如数据缓冲区、重做...

    Oracle体系结构4500695709.docx

    Oracle 体系结构 Oracle 体系结构是指 Oracle 数据库管理系统的总体架构,它由逻辑结构、物理结构和实例三部分组成。下面将详细介绍每个部分的组成和关系。 一、逻辑结构 逻辑结构是 Oracle 体系结构的最高级别,...

Global site tag (gtag.js) - Google Analytics