`
hongzyz86
  • 浏览: 4318 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

Oracle体系结构详解(物理结构,内存结构和逻辑结构)

阅读更多
一、oracle实例:
    oracle实例是由一组后台进程和内存结构组成,可以看成是用户与数据库之间的桥梁;
    oracle数据库是一系列物理数据文件的集合(如控制文件,数据文件,参数文件,日志文件,临时文件等)。
    它们的关系:实例可以在没有数据文件的情况下单独启动,(startup nomount)通常没有意义;一个实例在生成期内只能装载(alter database mount)和打开(alter database open)数据库;一个实例只能装载和打开一个数据库;一个数据库可以同时被多个实例装载和打开(即RAC)
二、物理结构:
    物理结构指一系列Oracle文件系统,主要包括数据文件,控制文件,日志文件,参数文件等;首先是通过参数文件找控制文件,再通过控制文件找数据文件和日志文件。可以在一下视图中查询 v$controlfile控制文件;v$datafile数据文件;v$logfile日志文件;
    参数文件(pfile和spfile):init.ora或initSID.ora,通常位于:$ORACLE_BASE/admin/<SID>/pfile;在oracle数据库启动的时候加载(Nomount时加载),初始化文件记载了数据启动参数,内存,控制文件,进程数等。
    控制文件:是个二进制文件,主要记录了数据库名,数据库创建的时间戳,数据文件和日志文件的名字和位置,数据库恢复所需要的同步信息;一个数据库只有一个控制文件,但有时候为了防止控制文件损坏导致数据库无法启动,可以对控制文件做镜像。   所有修改数据库结构的命令都会引起控制文件的修改,并在跟踪文件中做记录。
    数据文件:主要是存储用户和应用程序的所有数据,一个数据库至少包含多个或一个数据文件,一个表空间由一个或多个数据文件组成。用户请求的信息在内存中不存在则从数据文件中读取出来存储在内存中,如果用户修改了某些信息并不是立马更新到数据库中,先存储在内存中,而是
由后台读写进程决定何时更新到数据文件中,这样是位了减少磁盘IO。
    日志文件:(也叫重做日志文件redo log),是oracle记录数据库中数据的变化,每一条数据进行了修改,重做日志都会有记录;日志文件是oracle物理结构中最复杂的一类文件,也是数据库系统安全的重要保证,如果某些异常操作可以通过日志来恢复。日志文件组和日志成员:一个oracle数据库至少包含两个日志文件组,每个日志文件组至少包含一个和多个日志成员,成员之间是镜像关系。如果要将日志文件永久的保存下来,就形成了归档日志了(归档日志archive log是当数据库运行在归档模式下时,一个redo log file(group)写满后,由ARCn进程将重做日志的内容备份到归档日志文件下,然后这个redo log file(group)才能被下一次使用),归档日志必须在归档模式下,(重做日志是循环写的)。
    控制文件,数据文件,日志文件的位置:E:\app\hongzhong\oradata\orcl;

三、内存结构:
oracle的内存结构有:系统全局区(SGA),程序全局区(PGA);
   1、系统全局区下的所有数据被当前实例下所有的后台所共享,当数据库被启动时,系统全局区的内存被自动分配;
      高速缓冲区:是oracle读取数据的时候先从数据文件中把数据读取到该区域,对数据进行更新操作先保存在此区域,然后再由读写进程写入数据文件;主要有保持缓冲池,默认缓冲池和再生缓冲池;保持缓冲池主要是保存类似于代码表常用的不便的数据,再生缓冲池主要保存类似于大表的数据。
      共享池:

      日志缓冲区:主要是用于缓冲事务日志,存放需要写入文件的日志,是一种先进先出的方式缓存的。
      大共享区:(可选的)主要是一些大的进程和数据备份操作的时候用到的。
      固定SGA: 是由oracle自动设置的大小。
      查看当前系统的SGA大小:show parameter sga_max_size; 要修改:alter system set sga_max_size=1200m scope=spfile;
   2、程序全局区(PGA)
      是每个用户进程连接Oracle用户保留的内存,进程创建时分配,进程结束时释放。PGA包括了以下几个结构:
      排序区,游标状态区,会话信息区,堆栈区

四、逻辑结构:
    oracle逻辑结构主要是:数据块(block),数据扩展(extent),段(segment)和表空间(tablespace)之间的关系,数据块是oracle存储的最小单位,表空间是数据库存储的基本逻辑单位;连续的数据块形成一个数据扩展,多个数据扩展形成一个段,数据段和表空间是多对一的关系;一个表空间可以对应多个数据文件,一个数据文件只能对应一个表空间,但是数据文件和段之间不存在对应关系。

【我们分析一个Update 语句的完成 】
①. 用户提交一个Update 语句
②. Server Process 检查内存缓冲.
如果没有该数据块的缓冲,则从磁盘读入
i. 如果没有内存的有效空间,DBWR被启动将未写入磁盘的脏缓冲写入磁盘
ii. 如果有有效空间,则读入
③. 在缓冲内更新数据
i. 申请一个回滚段入口,将旧数据写如回滚段
ii. 加锁并更新数据
iii. 并在同时将修改记录在Redo log buffer中
④. 用户提交一个Commit 语句
i. SCN增加
ii. 将Redo log buffer 写入Redo log file
iii. 返回用户Commit 完成

  段:
段是对象在数据库中占用的空间,虽然段和数据库对象是一一对应的,但段是从数据库存储的角度来看的。一个段只能属于一个表空间,当然一个表空间可以有多个段。 表空间和数据文件是物理存储上的一对多的关系,表空间和段是逻辑存储上的一对多的关系,段不直接和数据文件发生关系。一个段可以属于多个数据文件,关于段可以指定扩展到哪个数据文件上面。 数据库的段可以分为四类:数据段、索引段、回退段、临时段。
1.数据段
  数据段是用于存储数据的段,他存储在数据表空间中。每一个表都有一个数据段(聚簇除外),表的数据存储在数据段中,默认情况下段名与表名相同。以下语句查询段的信息:
SQL>SELECT SEGMENTNAME,TABLESPACE,NAME,BYTES,BLOCKS FROM USER_EXTENTS;
2.索引段
  索引段用于存储索引,以下语句查询索引信息:
SQL>SELECT * FROM ALL_INDEXS
SQL>SELECT * FROM USER_INDEXS
3.回退段
  回退段用于存储用户数据修改之前的值,因而可以在特定条件下回退数据。回退段与事务是一对多的关系,一个事务只能使用一个回退段,而一个回退段可存放一个或多个事务的回退数据。
4.临时段
  临时段用于order by语句的排序以及一些汇总。

  数据块:oracle存储的最小的单位,一个块的大小默认为8KB,
分享到:
评论

相关推荐

    数据库内存分析和数据库的体系结构详解

    数据库内存分析和数据库的体系结构详解 Oracle 的体系结构可以分为三大结构:内存结构、存储结构和进程结构。 内存结构包括 SGA 和 PGA。SGA 是 ORACLE 系统为实例分配的一组共享缓冲存储区,用于存放数据库数据...

    Oracle安装和体系结构

    #### 四、Oracle体系结构详解 - **Oracle10g体系结构**:理解Oracle10g的体系结构对于深入学习和使用该数据库系统至关重要。主要包括以下几个方面: - **数据库实例**:一个数据库实例由内存结构和进程组成,是...

    openGauss数据库体系结构详解

    openGauss数据库体系结构详解 Oracle11g、12c体系概述 openGauss体系概述 数据库内存结构 数据库进程结构 数据库物理结构 数据库逻辑结构 服务响应流程 通过实验理解体系结构的一些概念

    oracle实验二 体系结构、存储结构与各类参数

    1. **理解Oracle体系结构**:包括逻辑组件如表空间、段、区等;物理组件如数据文件、控制文件、重做日志文件等。 2. **了解初始化参数文件以及初始化参数的含义**:初始化参数文件是用于配置Oracle实例的重要文件,...

    09-10-2 第03讲补充 Oracle体系结构--SGAx.pptx

    Oracle体系结构详解 Oracle体系结构是指Oracle数据库的架构设计和组件之间的关系。 Oracle数据库实例、物理存储结构、逻辑存储结构、内存结构、数据库实例与进程、数据字典等都是Oracle体系结构的重要组件。 物理...

    oracle 体系结构

    ### Oracle 体系结构详解 #### 一、Oracle 引入复杂体系结构的原因 在数据库管理系统(DBMS)领域,Oracle数据库以其高效稳定著称。Oracle之所以引入了复杂的内存和外存体系结构,主要目的就是为了有效管理和利用...

    Oracle体系结构4625698710.pptx

    ### Oracle体系结构详解 #### 一、Oracle体系结构概述 Oracle数据库系统是一种复杂的企业级数据库管理系统,其架构设计旨在提供高性能、可靠性和可扩展性。本文将深入探讨Oracle数据库的体系结构,包括其核心组件...

    oracle体系结构

    ### Oracle体系结构详解 Oracle数据库是全球领先的数据库管理系统之一,其复杂的体系结构旨在提供高性能、高可用性和数据安全性。在本篇文章中,我们将深入探讨Oracle数据库的体系结构,包括其核心组件、工作原理...

    Oracle数据库体系结构

    ### Oracle数据库体系结构详解 #### 一、Oracle数据库的核心竞争力 Oracle数据库因其强大的核心竞争力而闻名于世,这些优势体现在可扩展性、可靠性和可管理性三个方面。 **1. 可扩展性** - **定义**: Oracle...

    实验2_Oracle数据库体系结构.doc

    《Oracle数据库体系结构详解》 Oracle数据库作为世界上最广泛使用的数据库管理系统之一,其强大的功能和复杂的体系结构使得理解和掌握它成为了IT专业人士的重要技能。本实验旨在深入解析Oracle数据库的物理和逻辑...

    Oracle9i数据库逻辑结构

    ### Oracle9i数据库逻辑结构详解 #### 一、引言 Oracle9i是甲骨文公司(Oracle Corporation)推出的一款关系型数据库管理系统(RDBMS),它在企业级应用中占据了非常重要的位置。本文将深入探讨Oracle9i数据库的逻辑...

    第3章 Oracle12c Database的体系结构.pdf

    ### Oracle 12c Database 的体系结构详解 #### 一、概述 Oracle 12c Database 的体系结构是其高效稳定运行的基础。本章节详细介绍了Oracle 12c Database的体系结构,包括物理存储结构、逻辑存储结构、进程结构、...

    ORACLE数据库管理系统体系结构.doc

    ### ORACLE数据库管理系统体系结构详解 #### 一、概述 Oracle数据库管理系统是业界领先的数据库解决方案之一,其体系结构设计合理且高效,能够满足各种规模企业的数据管理需求。本文将详细介绍Oracle数据库管理...

    oracle9i*10g体系结构

    ### Oracle 9i与10g体系结构及编程技术详解 #### 一、Oracle数据库体系结构概述 Oracle数据库是全球领先的关系型数据库管理系统之一,其9i和10g版本在企业级应用中占据着重要地位。Oracle 9i与10g版本不仅在性能上...

    Oracle闪回技术详解

    每种闪回技术都有不同的底层体系结构支撑,但其实这四种不同的闪回技术部分功能是有重叠的,使用时也需要根据实际场景合理选择最合适的闪回功能。 闪回查询(Flashback Query)可以查询过去某个时间段的数据库状态...

Global site tag (gtag.js) - Google Analytics