oracle体系结构

oracle 数据库是一个逻辑概念,而不是物理概念上安装了oracle数据库管理系统的服务器,oracle数据库管理系统中的三个重要概念:

            实例:指一组oracle后台进程以及在服务器中分配的共享内存区域。

            数据库:由基于磁盘的数据文件,控制文件,日志文件,参数文件和归档日志文件等组成的物理文件集合。

           数据库服务器是指管理数据库的各种软件工具,实例及数据库三部分。

       实例用来控制和管理数据局库,而数据库用来为实例提供数据。一个数据库可以被多个实例加载和打开。而一个实例在其生存期内只能装载和打开一个数据库。

      数据库存储存数据的方式称为存储结构,oracle数据库的存储结构分为逻辑存储结构和物理存储结构,逻辑存储结构用于描述oracle内部组织和管理数据的方式,而物理存储结构用于展示oracle在操作系统中的物理文件组成情况。

     启动oracle数据库服务器实际上是在服务器 的内存中创建了一个实例,然后用这个实例来访问和控制磁盘中的数据文件。当用户连接数据库时实际上连接的是数据库的实例。然后由实例负责与数据库通信,最后将结果返回给用户。


1. 存储结构
   Oracle数据库的存储结构分为逻辑存储结构和物理存储结构.

  
                                                               图 3

 2. 逻辑结构

        逻辑存储结构主要描述Oracle数据库的内部存储结构,即从技术概念上描述在Oracle数据库种如何组织、管理数据.




                                                     图4 逻辑结构
      从逻辑上来看. 数据库是由一个或者多个表空间等组成。一个表空间(tablespace)由一组段组成,一个段(segment)由一组区组成,一个区(extent)由一批数据库块组成,一个数据库块(block)对应一个或多个物理块
      表空间是最大的逻辑单位,块是最小的逻辑单位。
      因此,逻辑存储结构是和操作系统平台无关的,是由Oracle数据库创建和管理的.

 

3.物理存储结构
      物理存储结构主要描述Oracle数据库的外部存储结构,即在操作系统种如何组织、管理数据.
      从物理上看,数据库由控制文件数据文件重做日志文件和参数文件等操作系统文件组成
      因此,物理存储结构是和操作系统平台有关的.

 

3.1. 数据库块

       数据库块(Database Block)是数据库使用的I/O最小单元,又称逻辑块或ORACLE块。一个数据库块对应一个或多个物理块,块的大小由参数DB_BLOCK_SIZE确定。
       块的大小是操作系统块大小的整数倍.
       以Win2K为例,操作系统块(OS block)的大小为4kb,所以Oracle Block的大小可以是4kb,8kb,16kb等等。
       如果块的大小为4kb,某表每行的数据是100 bytes.,如果某查询语句只返回1行数据,那么,在将数据读入到数据高速缓存时,读取的数据量时4kb而不是100 bytes.
       数据块由一下五部分组成  
       标题:包括通用的块信息,如块地址/段类型等,最佳大小为85-100bytes。
       表目录:存储聚集中表的信息,这些信息用于聚集段。
       行目录:包括这块中的有效行信息,允许使用每行开头的2bytes。 
       自由空间:这块中能插入或修改的一组空间。
       行数据:存储表或索引的数据。

 

 3.2. 区

       区(Extent)是数据库存储空间分配的逻辑单位,一个区由一组数据库块组成,区是由段分配的,分配的第一个区称初始区,以后分配的区称增量区。

 

 3.3.段

        段(Segment)是表空间中一个指定类型的逻辑存储结构,它由一个或多个区组成,段将占用并增长存储空间。
        引导段(Bootstrap Segment) :  存储数据字典表的定义
        临时段(Temporary Segment): 存储表排序操作期间简历的临时表的数据
        回滚段(Rollback Segment)    :  存储修改之前的位置和值
        索引段(Index Segment)        :  存储表上最佳查询的所有索引数据
        数据段(Date Segment)          :   存储表中所有数据

 

3.4. 表空间

       表空间(tablespace)是最大的逻辑单位,对应一个或多个数据文件,表空间的大小是它所对应的数据文件大小的总和。


                                             图6 表空间和数据块的关系
 
     Oracle 10g自动创建的表空间有:
     Example(实例表空间)
     Sysaux(辅助系统表空间)
     System(系统表空间)
     Temp(临时表空间)
     Undotbs(重做表空间)
     Users(用户的表空间)
     System : 系统表空间,存放关于表空间的名称、控制文件、数据文件等管理信息,是最重要的表空间.它属于Sys、System两个schema(方案),仅被这两个或其他具有足够权限的用户使用。但是均不可删除或者重命名System表空间.
     Temp: 临时表空间存放临时表和临时数据,用于排序。
     Users: 用户表空间,永久存放用户对象和私有信息,也被成为数据表空间。
     Sysaux:辅助系统表空间,用于减少系统负荷,提高系统的作业效率.
        一般地:系统用户使用system表空间,非系统用户使用Users表空间

 

4. 物理结构
    从物理上看,数据库由控制文件、数据文件、重做日志文件等操作系统文件组成

    数据文件(Data File)是物理存储Oracle数据库数据的文件。每一个数据文件只与一个数据库相联系。 数据文件一旦被建立则不能修改其大小。一个表空间可包含一个或多个数据文件。一个数据文件只能属于一个表空间.

 

    重做日志文件(Redo Log File)记录所有对数据库数据的修改,以备恢复数据时使用。其特点如下:每一个数据库至少包含两个日志文件组。 日志文件组以循环方式进行写操作。每一个日志文件成员对应一个物理文件。

    日志开关(Log Switch)是为实现日志文件组的循环使用而设置的。出现日志开关的情况如下:当一个日志文件组被填满时;关闭数据库时; DBA手动转移日志开关;

      镜像日志文件是为防止日志文件的丢失,在不同磁盘上同时维护两个或多个联机日志文件的副本。
     其特点如下: 每个日志文件组至少包含两个日志文件成员。每组的成员数目相同。同组的所有成员同时被修改。同组的成员大小相同,不同组的成员大小可不同.


      控制文件(Control File)是一个较小的二进制文件,用于描述数据库结构。将数据库的物理文件映射到数据字典中的逻辑表格空间和联机重做日志文件。
描述信息如下:
数据库建立的日期。
数据库名。
数据库中所有数据文件和日志文件的文件名及路径。
恢复数据库时所需的同步信息。
要点注意:
在打开和存取数据库时都要访问该文件。
镜像控制文件。
记录控制文件名及路径的参数为:CONTROL_FILES


      参数文件(Parameter File)是一个文本文件,可直接使用操作系统下的文本编辑器对其内容进行修改。该文件只在建立数据库或启动实例时才被访问,在修改该文件之前必须关闭实例。
    初始参数文件:init.ora
    生成参数文件:initSID.ora
                         config.ora
    参数文件的作用:
    确定存储结构的大小。
    设置数据库的全部缺省值。
    设置数据库的范围。
    设置数据库的各种物理属性。
    优化数据库性能。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库体系结构主要由以下几部分组成: 1. 客户端:客户端是通过网络连接到数据库服务器的应用程序,它们向数据库发送SQL命令并接收查询结果。 2. 数据库实例:数据库实例是运行在服务器上的Oracle数据库进程及其内存结构的集合。它负责管理数据库的物理存储、内存分配、用户会话、并发控制、恢复和备份等操作。 3. 数据库:数据库是由一组数据文件组成的物理存储结构,包含了所有数据和元数据,如表、索引、视图、存储过程、触发器等。 4. 存储结构:Oracle数据库使用了一种称为表空间的物理存储结构,表空间由一组数据文件组成,每个数据文件可以存储一个或多个表空间的数据。表空间中的数据通过数据文件进行存储和管理,数据文件是由操作系统中的文件系统进行管理的。 5. 进程结构:Oracle数据库的进程结构包括了多个进程,包括了数据库实例进程、用户进程、后台进程等。其中,数据库实例进程主要负责管理数据库整体的运行,而用户进程则是为客户端提供服务的进程。 6. 内存结构:Oracle数据库的内存结构包括了多个内存区域,包括了SGA(System Global Area)、PGA(Program Global Area)等。SGA是数据库实例所使用的共享内存区域,用于存储缓存数据、元数据等,而PGA则是用户进程所使用的私有内存区域,用于存储会话信息、执行计划等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值