精华内容
下载资源
问答
  • Oracle数据库存储结构物理存储结构数据文件(data files)控制文件(control files)在线重做日志(online redo log)逻辑存储结构数据块(data blocks)区(extents)段(segments)表空间(tablespaces) ...

    本文所讨论的内容涉及的数据库版本为 Oracle 19c。

    物理存储结构简介

    Oracle的物理存储结构与逻辑存储结构是分离的,因此你可以在不影响逻辑结构访问的情况下对物理存储结构进行管理。Oracle数据库可以看作是持久化存储上保存有数据的文件集合。当你执行 CREATE DATABASE 时,会生成以下数据库文件:

    • 数据文件和临时文件:数据文件(data file)是Oracle数据库在持久化存储中生成的物理文件,其中包含有表、索引等数据结构。临时文件(temp file)是属于临时表空间的数据文件。Oracle会以其他软件无法读取的专有格式向这些文件写入数据。
    • 控制文件(control file):是追踪数据库物理组成的二进制文件。没有控制文件数据库就无法启动。
    • 在线重做日志(online redo log):是记录对数据库操作的日志文件。

    数据库实例(database instance)是管理数据库文件的内存结构的集合。下图展示了数据库实例与它管理的文件之间的关系。

    图1 数据库实例与数据库文件
    在这里插入图片描述

    数据库文件的存储机制

    Oracle数据库常见的管理物理文件存储的机制包括:

    • Oracle自动存储管理(Automatic Storage Management, ASM):Oracle ASM 是专门为 Oracle 数据库设计的一种文件系统。
    • 操作系统的文件系统(Operating system file system):大多数 Oracle 数据将文件存储在文件系统中。所有的操作系统都有在文件系统中给文件分配和释放磁盘空间的文件管理器。文件系统通常建立在逻辑卷管理器(Logical volume manager, LVM)创建的逻辑卷上。
    • 集群文件系统(Cluster file system):集群文件系统是一个分布式的文件系统,通常用于对客户提供高性能服务的服务器集群。集群中的一个节点失败不会使整个文件系统不可用。

    在实际应用中,Oracle数据库可以组合使用以上存储机制。比如,可以将控制文件和在线 redo 日志存储在传统的文件系统中,用户的某些数据文件存储在裸分区(raw partitions)中,其他的数据文件存储在 ASM 中,而归档的 redo 日志文件存储到集群文件系统中。

    Oracle ASM

    自动存储管理是一个高性能、易于管理的 Oracle 数据库文件存储解决方案。Oracle ASM 也是一个专门为 Oracle 数据库提供文件系统的卷管理器(volume manager)。相对于传统的文件系统和存储管理器,ASM 具有如下优点:

    • 简化了存储相关的任务,例如创建和布局(lay out)数据库、管理磁盘空间;
    • 在物理磁盘上分布数据,解决了热点(hot spots)问题,同时提供了一致的性能;
    • 在存储结构发生变化后自动再平衡(rebalance)数据。

    要使用Oracle ASM,你需要为Oracle数据库分配已分区的磁盘,并具有条带化(Striping)和镜像(Mirroring)的首选项。Oracle ASM 管理磁盘空间,在所有可用资源之间分配 I/O 负载,以优化性能,同时消除了手动 I/O 调整的需要。

    ASM 存储结构
    Oracle 可以将数据文件存储为 ASM 磁盘组(ASM disk group)中的一个 ASM 文件(也可以存储其他类型的数据库文件)。下图展示了使用 ASM 的 Oracle数据库中的存储关系。

    图2 Oracle ASM 组成
    在这里插入图片描述

    其中出现了以下重要概念:

    • ASM磁盘:是分配给 ASM 磁盘组的存储设备。ASM 磁盘可以是一个物理磁盘,也可以是一个分区、存储阵列(storage array)中的一个逻辑单元号(Logical unit number, LUN)、一个逻辑卷、或者一个网络附属文件(network-attached file)。
    • ASM磁盘组:是 ASM 作为一个逻辑单元来管理的一个 ASM 磁盘的集合。在磁盘组内,Oracle ASM 会为数据库文件暴露一个文件系统接口。磁盘组内存储的文件内容是均匀分布或者条带化的,以解决热点问题并提供一致的性能。
    • ASM文件:是存储在磁盘组中的文件。可以将 Oracle 中的数据文件、控制文件、在线重做日志等其它类型的文件存储为 ASM 文件。ASM 文件名以加号和ASM 磁盘组文件名开头,例如 +DISKGROUP/DB_INSTANCE/DATAFILE/tablepsace.256.167523
    • ASM区(ASM extents):是 ASM 文件的一部分。一个 ASM 文件由一个或多个 ASM 区组成。每个 ASM 区由一个磁盘上的一个或多个分配单元组成。(注意:这里的ASM 区与逻辑存储结构中的区不一样。)
    • ASM分配单元(allocation units):是 ASM 磁盘组内的基本分配单元。分配单元是 Oracle ASM 分配的最小的邻近的磁盘空间。一个或多个分配单元组成一个 ASM区。

    ASM 实例
    ASM 实例是仅用于管理 ASM 磁盘的特殊 Oracle 实例。Oracle 数据库实例和 ASM 实例都需要共享访问 ASM磁盘组中的磁盘。ASM 实例管理磁盘组的元数据,并向数据库实例提供文件布局信息。数据库实例需要经过 ASM 实例就能直接向 ASM 磁盘进行 I/O 操作。

    Oracle 使用相同的技术建立 ASM 实例与数据库实例。例如,与数据库实例类似,ASM 实例也有一个系统全局区(System global area, SGA)和后台进程。但是,ASM 实例不能挂载数据库,功能也比数据库实例少很多。

    下图展示了一个 ASM 实例 和两个数据库实例组成的单点架构。

    图3 Oracle ASM实例和数据库实例
    在这里插入图片描述

    Oracle管理的文件 vs 用户管理的文件

    Oracle 管理的文件(Oracle managed files)是一个允许你使用数据库对象(而不是文件名)来说明操作的文件命名策略。例如,你可以创建一个表空间而无需注明它的数据文件。Oracle 管理的文件使得数据库管理员无需直接管理数据库中的操作系统文件。Oracle ASM 需要使用 Oracle 管理的文件。

    另一方面,通过用户管理的文件(user-managed files),你可以直接管理数据库中的操作系统文件。你需要自主决定文件结构和命名。比如,创建一个表空间时指定其他名字和其中数据文件的路径。

    数据文件(data files)

    在操作系统层面,Oracle 数据库将数据存储在数据文件中。Oracle 数据库必须至少有一个数据文件。

    数据文件的用途

    每个未分区的 schema 对象(比如表、索引)、对象的每个分区都存储在自己的段(segment)中。每个段都只属于一个表空间(tablespace)。表空间和数据文件存在以下重要区别:

    • 每个表空间由一个或多个数据文件组成;
    • 一个数据库的所有数据都存储在数据库表空间的数据文件中;
    • 一个段可以跨越一个或多个数据文件,但是不能跨越多个表空间;
    • 一个Oracle数据库必须有 SYSTEMSYSAUX 这两个表空间。在数据库创建时,Oracle 会自动为 SYSTEM 表空间分配第一批数据文件。SYSTEM 表空间中存有数据字典(data dictionary),即包含数据库元数据的表的一个集合。通常,Oracle 数据库还会有一个 undo 表空间和一个临时表空间(一般命名为 TEMP)。

    下图展示了表空间、数据文件和段之间的关系。

    图4 数据文件和表空间
    在这里插入图片描述

    schema对象:https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/tables-and-table-clusters.html#GUID-72E247B5-F39A-47F1-9445-72D9221F57E3

    永久数据文件 vs 临时数据文件

    永久表空间(permanent tablespace)包含有持久化的 schema 对象,存储在永久数据文件中。

    临时表空间(temporary tablespace)中的 schema 对象只存在于一个 session 中。在本地管理的临时表空间包含有临时文件(temp files),用于存储哈希、排序等操作中的数据。当内存空间不够时,临时文件也会用来存储查询操作的结果集数据。

    临时文件与永久数据文件相似,但存在以下区别:

    • 永久数据库对象,比如表,不会存储在临时文件中;
    • 临时文件一直被设定为 NOLOGGING 模式,即不会产生 redo日志。介质恢复过程中也不会识别临时文件;
    • 临时文件不能被设置为只读;
    • 不能使用 ALTER DATBASE 命令来创建临时文件;
    • 当你创建或者改变临时文件的大小时,Oracle 并不会保证会给临时文件分配到指定文件大小的磁盘空间。在 Linux 和 Unix 操作系统中,临时文件会被创建为稀疏文件(sparse files)。即只有当数据块被首次访问时才会给临时文件分配磁盘空间,而不是在创建或者 resize 临时文件时就分配。
    • 临时文件的信息可以在数据字典视图 DBA_TEMP_FILES 和 动态性能视图 V$TEMPFILE 中查看,但无法在 DBA_DATA_FILESV$DATAFILE 视图中看到。

    在线数据文件 vs 离线数据文件

    数据文件有在线(可用)和离线(不可用)两种状态。数据库无法访问离线的数据文件。当要进行离线备份或者发生数据块损坏时,就可以将数据文件离线。如果数据库无法向一个数据文件写入数据,就会自动将该数据文件离线。

    与数据文件类似,表空间也有在线和离线两种状态。如果将一个在线表空间中的一个数据文件离线,该表空间本身仍然会保持在线状态。当我们将一个表空间离线,该表空间内的所有数据文件都会暂时不可用。

    从 Oracle 12c 开始,在数据库打开时,可以使用 ALTER DATABASE MOVE DATAFILE 语句将一个在线的数据文件从所在的物理文件迁移到另一个物理文件。该功能可以在以下场景中使用:

    • 将表空间从一种存储中迁移到另一种存储中;
    • 将很少被访问的数据文件迁移到开销低的存储中;
    • 将表空间设置为只读后,将其中的数据文件迁移到 write-once 存储中,比如 WORM (write once read many)驱动(一次性写入后不可删除和修改);
    • 将数据库迁移到 Oracle ASM。

    数据文件结构

    在创建数据文件时,除了分配指定的磁盘空间以外,还会加上数据文件 header 的大小。数据文件 header 中包含有该数据文件的元数据,比如数据文件大小和检查点 SCN(checkpoint system change number, Checkpoint SCN)。每个数据文件 header 都包含一个绝对文件编号(用于在数据库中唯一标识该数据文件)和一个相对文件编号(用于在表空间中唯一标识该数据文件)。

    创建数据文件时,分配的磁盘空间会被格式化但是尚未存储用户数据。这部分磁盘空间会被保留给相关表空间中将来存储数据的 segment。随着表空间的数据增长,Oracle 会将数据文件中的剩余空间用来给 segment 分配区(extent)。

    下图展示了数据文件中的不同空间。

    图5 数据文件中的空间
    在这里插入图片描述

    控制文件(control files)

    控制文件是仅与一个数据库有关的二进制文件。每个 Oracle 数据库都有一个唯一的控制文件,但是允许存在多个相同的控制文件拷贝。

    控制文件的用途

    Oracle 数据库使用控制文件来定位数据库文件、管理数据库状态。

    控制文件中包含如下信息:

    • 数据库的名称、数据唯一识别ID(database unique identifier, DBID);
    • 创建数据库的时间戳;
    • 数据文件、在线 redo log 文件、归档 redo log 文件的相关信息;
    • 表空间的信息;
    • RMAN 的备份信息。

    控制文件有如下重要用途:

    • 控制文件包含有数据文件和在线重做日志文件的信息,是打开数据库所需的。控制文件还会跟踪记录更新数据库的结构变化(比如新建、重命名、删除数据文件)。
    • 控制文件包含有数据库关闭时必须可访问的元数据。比如,用于恢复(recover)数据库的信息。

    在数据库使用过程中,Oracle 持续地读写控制文件。在恢复数据库时,也需要从控制文件中读取所有数据文件的名称。在添加、删除、重命名数据文件时,控制文件中的信息也会更新。

    控制文件复用

    Oracle 允许同时打开多个相同的控制文件,写入同一个数据库。通过在不同的磁盘上复用控制文件,可以达到冗余状态以避免单点故障。

    如果一个控制文件无法使用,数据库实例在试图访问受损的控制文件时会失败。当存在当前控制文件的拷贝时,你可以重新挂载数据库,不使用介质恢复(media recovery)打开数据库。如果一个数据库的所有控制文件都丢失了,数据库实例会失败,这时就需要进行介质恢复。

    控制文件结构

    数据库信息存储在控制文件的不同部分(section)。比如,控制文件中的一部分用于跟踪数据文件信息,其中的每条记录(record)对应一个数据文件。控制文件的每个部分都存储在多个逻辑控制文件块(block)中。每条记录可以跨多个块。

    控制文件中包含以下类型的记录:

    • 循环复用记录(Circular reuse records):包含非关键信息,在有需要时可以被覆写(overwritten)。比如归档 redo log 文件和 RMAN 备份相关的记录。
    • 非循环复用记录(Noncircular reuse records):包含很少改变的关键信息,不能被覆写。比如表空间、数据文件、在线 redo log 日志文件、redo 线程等。除非相关的对象被从表空间中删除,Oracle 数据库从不复用这些记录。

    可以通过动态视图查看控制文件中的信息。比如,查看 V$DATABASE 视图获取数据库的名称和 DBID。但是,只有数据库本身才能修改控制文件中的信息。

    读写控制文件 blocks 的方式也与读写普通数据块的方式不同。Oracle 数据库直接从磁盘向程序缓存区(Program global area, PGA)读写控制文件。每个进程都会为控制文件块分配一定大小的 PGA 内存。

    联机重做日志(online redo log)

    联机重做日志是数据库恢复中至关重要的存储结构,由两个或多个预分配的文件组成,其中记录了对数据文件所做的修改。

    联机重做日志的用途

    数据库维护联机重做日志以抵御数据丢失。如果数据库实例失败了,联机重做日志可以用来恢复已提交但是还未写入数据文件的数据。

    服务器进程将每个事务同步写入redo日志缓冲区(redo log buffer),随后 LGWR(log writer process)进程将日志缓冲区的内容写入联机重做日志。联机重做日志的内容包括了未提交的事物、schema、对象管理语句(object management statements)。

    当数据库修改 undo段(undo segments)时,所做的修改会被写入联机重做日志。因此,联机重做日志总会包含永久对象的 undo数据。

    Oracle 数据库仅在恢复中会用到联机重做日志。但是,数据库管理员可以使用 Oracle LogMiner 来查看联机重做日志文件,以了解数据库的历史活动信息。

    怎么写联机重做日志

    数据库实例的联机重做日志被称为redo线程(redo thread)。

    在单实例架构中,只有一个redo线程。在 Oracle RAC(Real Application Clusters)集群中,多个实例同时访问一个数据库,其中每个实例都有自己的redo线程。

    一个联机重做日志由两个或多个联机重做日志文件组成。Oracle 数据库需要至少两个文件来保证始终有一个联机重做日志文件可写,以防另一个文件正在被清除或者归档中。

    联机重做日志切换
    Oracle 数据库一次只使用一个联机重做日志文件来存储从redo日志缓冲区写入的记录。日志写进程(LGWR)正在写入的联机重做日志文件被称为当前联机重做日志文件(current online redo log file)。

    当数据库停止向一个联机重做日志文件写入,而开始向另一个文件写入时,就会发生日志切换(log switch)。日志切换通常发生在当前联机重做日志文件写满但是仍需要继续写的时候。你也可以人为设置日志切换的频率,而不考虑日志是否已经写满。

    LGWR 日志写进程写联机重做日志文件是循环写的(circularly)。当最后一个可用的联机重做日志文件写满后,LGWR 进程就会从头开始写第一个日志文件。

    图6 联机重做日志文件循环写
    在这里插入图片描述

    从图6可以看出,在发生日志切换时,数据库会为联机重做日志分配一个新的日志序列号(log sequence number)。已经写满的联机重做日志文件是否可以取决于归档模式:

    • 如果禁用了归档模式(NOARCHIVELOG),写满的联机重做日志文件在经过检查点(checkpoint)被 DBW(database writer)写入磁盘后可用。
    • 如果启用了归档模式(ARCHIVELOG),写满的联机重做日志文件在被写入数据文件并归档后对 log writer 可用。

    有时log writer会被禁止复用某个联机重做日志文件。需要利用正在使用的联机重做日志文件(active online redo log file)进行实例恢复。

    联机重做日志文件的多副本
    Oracle 数据库会在不同的位置自动维护两个或多个相同的联机重做日志副本。一个联机重做日志组(online redo log group)由一个联机日志文件和它的冗余副本组成。每个日志组都有一个编号。维护联机重做日志组可以防止重做日志丢失。理想情况下,一个日志组的所有成员应该分布在不同的磁盘上。

    图7中,A_LOG1 和 B_LOG1 是组1的相同成员,A_LOG2 和 B_LOG2 是组2的相同成员。同一个日志组内的成员大小都必须相等。LGWR 进程并发地写入组1,然后并发地写入组2,再然后并发写入组1,如此交替。LGWR 不会同时并发写入不同日志组的成员。

    图7 联机重做日志的多个副本
    在这里插入图片描述

    归档redo日志文件
    归档重做日志文件是一个联机重做日志组中一个已经写满的日志文件的离线副本。它不是数据库的组成部分。

    归档日志重做文件是备份和恢复策略的关键部分。你可以使用归档日志重做文件来:

    • 恢复数据库备份;
    • 更新备库(standby database);
    • 通过 LogMiner 获取数据库的历史信息。

    可以通过自动归档或者手动归档来生成归档重做日志文件。但仅能够在归档模式(ARCHIVELOG)下进行。如果开启了自动归档,archiver process (ARCn) 会自动归档联机重做日志组中的一个日志文件。参考图7,如果 A_LOG1 已损坏,该进程就会归档 B_LOG1。归档重做日志包含了从启用归档以来每个重做日志组的一个副本。

    联机重做日志的结构

    联机重做日志包含redo记录(redo record)。一条redo记录由一组修改向量(change vectors)组成,其中每个向量都描述了对数据块所做的一次修改。

    redo记录中包括以下与数据块修改相关的元数据:

    • 修改的 SCN 和时间戳;
    • 执行修改操作的事务ID;
    • 事务提交的 SCN 和时间戳(如果已提交);
    • 执行修改的操作类型;
    • 被修改的数据段的名称和类型。

    References
    [1] https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/physical-storage-structures.html#GUID-E76E1A63-DFC5-42C5-AFD8-28753428C577

    展开全文
  • oracle数据库存储结构

    万次阅读 2018-01-08 21:18:29
     oracle 数据库存储结构分为物理存储结构和逻辑存储结构两种。物理存储结构主要用于描述在 oracle 数据库外部数据的存储,即在操作系统层面中如何组织和 管理数据,与具体的操作系统有关。逻辑存储结构主要描述...

    -----存储结构概述:

            oracle 数据库的存储结构分为物理存储结构逻辑存储结构两种。物理存储结构主要用于描述在 oracle  数据库外部数据的存储,即在操作系统层面中如何组织和

    管理数据,与具体的操作系统有关。逻辑存储结构主要描述oracle 数据库内部数据的组织和管理方式,即在数据库管理系统的层面中如何组织和管理数据,与操作系统没

    有关系。

         物理存储结构具体表现为一系列的操作系统文件,是可见的;而逻辑存储结构时候物理存储结构的抽象体现,是不可见的,可以通过查询数据库数据字典了解逻辑结构

    信息。

          oracle 数据库的物理存储结构与逻辑存储结构既相互独立又相互联系,如下图:


                   oracle 数据库物理存储结构和逻辑存储结构的关系

    从上面图中可以看出数据库物理存储结构和逻辑存储结构的基本关系:

    》》一个数据库在物理上包含多个数据文件,在逻辑上包含多个表空间

    》》一个表空间包含一个或多个数据文件,一个数据文件只能从属于某个表空间

    》》数据库的逻辑块由一个或多个操作系统块组成

    》》一个逻辑区只能从属于一个数据文件,而一个数据文件可包括一个或多个逻辑区


    ---------物理存储结构概述:

               oracle 数据库的物理存储结构是由一系列操作系统文件组成的,存放于物理磁盘上,是数据库的实际存储单元。这些文件主要包括数据文件、控制文件、

    重做日志文件、归档文件、初始化参数文件、跟踪文件、告警文件等。每种文件都存储特定内容的信息,其数量也因文件类型不同而不同。

              》》数据文件:是数据库所有数据的实际存储空间,所有数据文件的大小和构成了数据库的大小。

              》》控制文件:记录数据库结构信息的重要的二进制文件,由oracle 系统进行读 / 写操作。

              》》重做日志文件:是以重做记录的形式记录、保存用户对数据库所进行的变更操作,是数据库中最重要的物理文件

              》》归档日志文件:是历史联机重做日志文件的集合,是联机重做日志文件被覆盖之前备份的副本。

              》》初始化参数文件:是数据库启动过程所必需的文件,记录了数据库显式参数的设置。数据库启动的第一步是根据初始化参数文件中的设置,

                                        创建并启动实例,即分配内存空间、启动后台进程。

              》》跟踪文件:是数据库中重要的诊断文件,是获取数据库信息的重要工具,对管理数据库的实例起着至关重要的作用。跟踪文件中包含数据库

                                    系统运行过程中所发生的重大事件的有关信息,可以为数据库运行故障的解决提供重要信息。

              》》告警文件:是数据库中重要的诊断文件,记录数据库在启动、关闭和运行期间后台进程的活动情况。

    ----------逻辑存储结构概述:

                oracle 数据库的逻辑存储结构是从逻辑的角度来分析数据库的构成的,也就是数据库创建后利用逻辑概念来描述 oracle 数据库内部数据的组织和

    管理形式。在操作系统中,没有数据库逻辑存储结构信息,而只有物理存储结构信息。数据库的逻辑存储结构概念存储在数据库的数据字典中,可以通过

    数据字典查询存储结构信息。

                 oracle数据库的逻辑存储结构分为 oracle 数据块 表空间 4种,它们之间的关系如下图所示:

               

               

                   一个或多个连续的oracle 数据块构成区,一个或多个区构成段,一个或多个段构成表空间,所有表空间构成数据库。

                (1)、oracle 数据块

                        oracle 数据块是数据库中最小的逻辑存储单元,是数据库执行输入、输出操作的最小单位,由一个或多个操作系统块构成。在oracle 11g 数据库中,

                   数据块分为 标准块非标准块两种,其中标准块由数据库初始化参数 DB_BLOCK_SIZE  设置,其大小不可更改。oracle  数据库的默认数据缓冲区

                   就是标准数据块构成的。

                (2)、区

                         区是由一系列连续的数据块构成的逻辑存储单元,是存储空间分配的最小单元。当创建一个数据库对象时,oracle 为对象分配若干个区,以构成

                   一个段来为对象提供初始的存储空间。当段中已分配的区都写满后,oracle 会为段分配一个新区,以容纳更多的数据。构成一个段的所有区只能是在

                    一个文件中。oracle 数据库中,引入区的目的是为了提高系统存储空间分配的效率,以区为单位的存储空间分配大大减少了磁盘分配的次数。

                 (3)、段

                          段是由一个或多个连续或不连续的区组成的逻辑存储单元,用于存储特定的、具有独立存储结构的数据库对象。根据存储对象类型不同,分为:

                 表段索引段临时段回退段4类。

                      》》表段:又称数据段,用来存储表或簇的数据,可以细分为普通表段分区表段簇段索引化表段

                      》》索引段:用来存放索引数据,包括 ROWID 和索引值

                      》》临时段:是进行查询、排序等操作时,如果内存空间不足,用于保存 sql 语句在解释和执行过程中产生的临时数据。会话结束时,为该操作分配

                                          的临时段将被释放。

                      》》回退段:用于保存数据库的回退信息,包含当前未提交事务所修改的数据的原始版本。利用回退段中保存的回退信息,可以实现事务回滚、数据库

                                       恢复、数据的读一致性和闪回查询

                  (4)、表空间:

                          表空间是  oracle 数据库最大的逻辑存储单元,数据库的大小从逻辑上看就是由表空间决定的,所有表空间大小的和就是数据库的大小。在 oracle 数据库

                      中,存储结构管理主要就是通过对表空间的管理啊来实现的。

                            表空间与数据库文件直接关联,一个表空间包含一个或多个数据文件,一个数据文件只能从属于一个表空间,数据库对象就是存储在表空间对应的

                     一个或多个数据文件中。

                             表空间根据存储数据类型的不同,分为系统表空间非系统表空间两类。

                       》》 系统表空间主要存放数据库的系统信息,如数据字典、数据库对象定义信息,数据库组件信息等。

                       》》非系统表空间又分为撤销表空间临时表空间用户表空间等。其中撤销表空间用于自动管理数据库的回退信息,临时表空间用于管理数据库的临时信息,

                            用户表空间用于存储业务数据。

                        oracle 11g 数据库会自动创建一些表空间,如下:

                         


    展开全文
  • Oracle数据库存储结构(StorageStructure)分为物理存储结构和逻辑存储结构两种,分别描述了在操作系统中和数据库系统内部数据的组织管理方式。其中,物理存储结构表现为操作系统中一系列文件)逻...

    1.Oracle数据库系统结构概述

    Oracle数据库由存放在磁盘上的数据库(DB)和对磁盘上的数据库进行管理的数据库管理系统(DBMS)两部分构成,分别对应着数据库的存储结构和软件结构。
     Oracle数据库的存储结构(Storage Structure)分为物理存储结构和逻辑存储结构两种,分别描述了在操作系统中和数据库系统内部数据的组织管理方式。其中,物理存储结构表现为操作系统中一系列文件)逻辑存储结构是对物理存储结构的逻辑组织与管理。
     Oracle数据库的软件结构,即Oracle实例(Instance),包括内存结构与后台进程结构两部分。

    具体关系如下图所示:

    用户的所有操作都是通过实例完成的,首先在内存结构中进行,在一定条件下由数据库的后台进程结构写入数据库的物理存储结构做永久保存。

     2.Oracle数据库存储结构

    oracle 数据库的存储结构分为物理存储结构逻辑存储结构两种。物理存储结构主要用于描述oracle 数据库外部数据的存储,即在操作系统层面中如何组织和管理数据,与具体的操作系统有关。逻辑存储结构主要描述oracle 数据库内部数据的组织和管理方式,即在数据库管理系统的层面中如何组织和管理数据,与操作系统没有关系。

    物理存储结构具体表现为一系列的操作系统文件,是可见的;而逻辑存储结构时候物理存储结构的抽象体现,是不可见的,可以通过查询数据库数据字典了解逻辑结构信息。

    物理存储结构主要指的是存储在磁盘上的数据文件、控制文件、重做日志文件、归档文件等。 逻辑存储结构包括表空间、段、区和块4种。

    oracle 数据库的物理存储结构与逻辑存储结构既相互独立又相互联系,如下图:

     

    从物理角度上看,数据库由数据文件构成,数据存储在数据文件中,从逻辑角度上看,数据库是由表空间构成的,数据存储在表空间中。一个表空间包含一个或者多个数据文件,但一个数据文件只能属于一个表空间。

    物理存储结构

    控制文件

    (1)控制文件是ORALCE数据库中最重要的物理文件,用于描述整个数据库的结构信息。

    控制文件是一个二进制文件,由ORACLE进程读/写,在数据库运行于维护阶段,数据文件及重做日志文件的结构变化信息都记录在控制文件中。

    Oracle建议最少有两个控制文件,通过多路镜像技术,将其分散到不同的物理磁盘中。

    (2)一个控制文件包括:

    DB名称和标识

    DB创建的时间

    表空间名称

    数据文件和重做日志文件的名称和位置

    当前重做日志文件的序号

    检查点的信息

    回退段的开始和结束

    重做日志的归档信息

    备份信息

    (3)V$CONTROLFILE:  列出了与实例有关的所有控制文件的名称和状态

    SHOW PARAMETERS CONTROL_FILES:  列出控制文件的名称、状态和位置

    数据文件

    (1)数据文件用于存储数据库中的所有数据,一个数据库由多个数据文件构成。

    (2)  与数据文件相关的数据字典主要有:

    v$datafile

    dba_data_files

    (3). 数据文件默认情况下都是以.dbf结尾的文件,默认情况下与控制文件同一个目录.

    重做日志文件

    (1)重做日志文件用于记录对数据库的变更操作,在用户对数据库的操作出现故障时,可使用该文件进行恢复,以保证数据库系统的安全.

    (2)重做日志文件是成组使用的,即日志文件组,每个数据库应至少有两个重做日志文件组,采用循环写的方式工作。每个组可以有一个或多个日志文件,同一组日志文件可进行镜像,且镜像的日志文件应存储在不同的物理磁盘中.

    (3)查看重做日志文件信息

    V$log:查询重做日志文件组的基本信息。

    V$logfile:查询重做日志文件的信息。

    归档日志文件

    1、数据库运行模式

    (1) 非归档模式noarchivelog

     

     (2) 归档模式archivelog

     

     Oracle数据库逻辑结

    Oracle的逻辑结构是一种层次结构。主要由:表空间、段、区和数据块等概念组成。逻辑结构是面向用户的,用户使用Oracle开发应用程序使用的就是逻辑结构。数据库存储层次结构及其构成关系,结构对象也从数据块到表空间形成了不同层次的粒度关系。

    一个或多个连续的oracle 数据块构成区,一个或多个区构成段,一个或多个段构成表空间,所有表空间构成数据库。

     数据块(Data Block)

    数据库块大小是在Oracle创建数据库或表空间时设定的,数据块的大小在创建后是不可以修改的。

    数据块是Oracle读写数据的基本单位,也是输入/输出操作的最小单位.

    数据块的大小必须是服务器操作系统块大小的整数倍。

    (盘)区(Extent)

    1.概念

    也称为数据区,是物理上一组连续的数据块构成的逻辑存储单元。

    盘区是段中数据增长的基本单位,即是ORACLE存储空间分配与回收的最小单位。

    一个或多个盘区组成一个段,当一个段的空间被使用完后,系统将自动为该段分配一个新的盘区。

    一个盘区不能跨越多个文件,因为它必须包含连续的数据块

    数据段中,盘区的个数受盘区控制参数控制

    2.区的管理

    (1)区的分配

    表空间的本地管理(LOCAL)方式下,区分配方式:

    统一大小:UNIFORM,指定段的初始区和后续区具有统一的大小。

    自动分配:AUTOALLOCATE,由Oracle系统决定后续区的大小,用户不能干预分配。

    表空间的字典管理(DICTIONARY)方式下,区的分配方式:  使用STORAGE子句设置存储参数。

    (2)区的回收

    通常不论区中的数据块是否被使用,分配给段的区会一直保留在段中,只有当段所属的对象被删除时,段中所有的区才会被回收。

    段(Segment)

    段是由一个或多个连续或不连续的盘区构成的逻辑存储单元,用来保存特定对象,如表、索引、回滚数据、临时数据等。段是表空间的组织单位。

    (1)段内包含的数据区可以不连续,并且可以跨越多个文件。

    (2)段类型

    数据段:用来存储表或簇的数据,普通表数据段、分区表数据段、簇数据段

    索引段:存放索引数据(ROWID、索引键值)

    临时段:存储临时数据

    回滚(退)段:存储数据库的回滚信息

     表空间(Tablespace)

    (1)表空间概念

    表空间是ORACLE数据库最大的逻辑存储单元,一个表空间包含一个或多个数据文件,一个数据文件只能从属于一个表空间,数据库对象就是存储在表空间对应的一个或多个数据文件中。

     (2)表空间类型

    在Oracle11g中有以下几种比较特殊的表空间:

    ⑴SYSTEM表空间(System Tablespace):系统表空间

    ⑵SYSAUX表空间(SYSAUX Tablespace):系统辅助表空间

    ⑶TEMP表空间(Temp Tablespace):临时表空间

    ⑷撤消UNDOBS1表空间(Undo Tablespace):撤消表空间

    (5)USERS表空间:普通用户表空间

    (6)示例EXAMPLE 表空间:示例表空间

    (3)表空间的存储管理方式

    *本地管理方式

    本地管理(Local)的表空间:

    创建本地管理方式的表空间时,可指定区的分配方式:

          自动方式:AUTOALLOCATE  (默认方式)

          统一方式:UNIFORM

    *字典管理方式

    (4)查看表空间信息

     V$tablespace:查询数据库下表空间信息。

    Dba_tablespaces:查询数据库下表空间信息。

    展开全文
  • 第二章 Oracle数据库体系结构 续;2.4 数据库物理结构;从逻辑结构方面讲Oracle 数据库以逻辑结构进行内部的管理和维护的这些结构包括表空间段区和块 从物理结构方面讲Oracle 数据库有外部的存储方法Oracle 数据库由一...
  • Oracle数据库存储结构:逻辑存储结构数据块(data blocks)区(extents)段(segments)表空间(tablespaces) 本文所讨论的内容涉及的数据库版本为 Oracle 19c。 数据块(data blocks) 区(extents) 段(segments...

    本文所讨论的内容涉及的数据库版本为 Oracle 19c。

    逻辑存储架构简介

    Oracle数据库为数据库中的所有数据分配逻辑空间。数据库分配空间的逻辑单位是数据块(data blocks)、区(extents)、段(segments)和表空间(tablespaces)。从物理层面来说,数据都存储在磁盘上的数据文件中。而数据文件中的数据存储在操作系统块中。

    图1 逻辑存储对应物理存储
    在这里插入图片描述

    逻辑存储等级

    一个段包含一个或多个区,而一个区包含多个数据块。下图展示了一个表空间内部数据块、区、段之间的等级关系。

    图2 表空间内的段、区、数据块
    在这里插入图片描述

    从最低粒度到最高粒度,Oracle数据库存储数据的逻辑结构如下:

    • 数据块:是Oracle数据库中最小的逻辑存储单元。一个逻辑数据块对应一定字节(bytes)的物理磁盘空间,比如 2KB。数据块是Oracle数据块可以分配和使用的最小存储单元。
    • :是逻辑上相邻的一组数据块的集合。在图2中,一个24KB的区包含了12个2KB的数据块,而另一个72KB的区则包含了36个数据块。
    • :是为特定数据库对象(比如)分配的一组区的集合。比如,一个表的数据存放在自己的数据段(data segment)中,而每个索引都存放在自己的索引段(index segment)中。每个占用存储的数据库对象都仅由一个段组成一个段可以跨越一个或多个数据文件,但是不能跨越多个表空间
    • 表空间:是包含一个或多个段的数据库存储单元。每个段属于且仅属于一个表空间。因此,一个段的所有区都存储在同一个表空间中。一个段可以包含多个不同数据文件中的区。但是单个区不能跨越数据文件

    逻辑空间管理

    Oracle数据必须使用逻辑空间管理来跟踪和分配表空间中的区。当有数据库对象请求一个区时,数据库必须有办法找到并提供该区;当一个区不再被需要时,数据库也必须有办法释放该区使其可用。

    Oracle数据库使用下面的办法来管理表空间内的空间:

    • 本地管理的表空间(默认):数据库使用表空间内的位图(bitmaps)来管理区。因此,使用本方法时,需要拿出一部分空间用于存放位图。在表空间内,数据库可以使用段空间自动管理(ASSM)或者手动管理(MSSM)来管理段。
    • 字典管理的表空间:数据库使用数据字典来管理区。

    #1 本地管理的表空间
    本地管理(locally managed)的表空间中,在数据文件头(header)会维护一个位图,用以跟踪数据文件中空闲的和已使用的空间。每个比特都对应一组数据块。当有空间被分配或者释放时,Oracle数据块会修改位图的值来更新数据块的状态。其中,1表示空间已被使用,0表示空闲。

    使用本地管理的表空间有以下几点好处:

    1. 避免使用数据字典来管理区:使用数据字典管理区时,如果使用或者释放区空间引起了数据字典中表或undo段的使用或释放操作,就可能发生递归行为,影响数据库性能。
    2. 自动跟踪相邻的可用空间。
    3. 自动确定本地管理的区的大小。

    在本地管理的表空间中,段空间可以自动或者手动管理。段空间自动管理(automatic segment space management, ASSM)也是使用位图来实现的。段空间手动管理(manual segment space management, MSSM)则使用一个被称为 free list 的链表结构来管理空闲的段。

    #2 字典管理的表空间
    该方法使用数据字典(data dictionary)来管理区。当有区被分配或者被释放时,Oracle数据库会更新数据字典中的表。

    数据块

    Oracle数据库中的数据块又被称为Oracle块(Oracle block)或者页(page)。数据块是数据块 I/O 的最小单位。

    数据块vs操作系统块

    在物理层面,数据库的数据都存储在由操作系统块(operating system blocks)组成的磁盘文件中。操作系统块是操作系统可以读写的最小数据单元。而Oracle块则是一个逻辑存储结构,它的大小和结构对于操作系统而言是未知的。

    图3 数据块vs操作系统块
    在这里插入图片描述

    当数据库请求一个数据块时,操作系统将该操作翻译为请求永久存储中的数据。数据块与操作系统块在逻辑上的分割有如下影响:

    • 应用无需决定磁盘数据的物理地址;
    • 数据库数据可以在多个物理磁盘上条带化(striped)或镜像化(mirrored)。

    #1 数据库块大小
    每个数据库都有一个数据库块大小。在创建数据库时,初始化参数 DB_BLOCK_SIZE 设定了数据库的数据块大小。这个参数值对 SYSTEMSYSAUX 表空间生效,同时也是其他所有表空间的默认值。只有重新创建数据块,才能改变该参数的大小。

    如果 DB_BLOCK_SIZE 的值未设定,那么其值取决于操作系统。一般是 4KB 或者 8KB,且必须是操作系统块的倍数(或者相等)。

    #2 表空间块大小
    你也可以创建数据块大小不同于 DB_BLOCK_SIZE 的单独的表空间。非标准大小的表空间可以用于将表空间迁移到其他平台。

    数据块格式

    每个数据块都有能够使数据库跟踪其中数据及其可用空间的内部结构或格式。且无论数据块是否包含表、索引或集群数据时,其格式都是相似的。下面展示了未压缩数据块的格式。

    图4 数据块格式
    在这里插入图片描述

    #1 数据块头部
    Oracle数据块使用块头部(Block overhead)来管理数据块本身。块头部中有些部分的大小是固定的,但是块头部的总大小是可变的。平均来说,块头部一般总共占用84字节到107字节的空间。块头部不用于存储用户数据。块头部包含以下部分:

    • 数据块头(Block header):存有数据块的基本信息,包括磁盘地址、段的类型。对于事务管理(transaction-managed)的数据块,header部分还存有活跃和历史事务信息。
      每个更新数据块的事务都需要一条事务记录(transaction entry)。Oracle数据库在数据块头中为事务记录预留了空间。在header部分空间耗尽时,空闲空间(Free space)也可以用来存储事务记录。大多数操作系统中,数据块中事务记录所需的空间大致为23 bytes。

    • 表目录(Table directory):
      对一个堆组织(heap-organized)的表而言,表目录包含了关于在该数据块中存有行数据的表的元数据信息。在表集群(table cluster)中,多个表可以将行数据存在同一个数据块中。

    • 行目录(Row directory):
      对一个堆组织的表而言,行目录描述了行数据在数据块中的位置。rowid指向一个特定的文件、数据块以及行编号(row number)。其中,行编号是行目录中一条记录(entry)的索引。行目录的记录中包含了一个指向数据块中行数据位置的指针(pointer)。如果数据库移除了数据块中的一条行数据,就会更新行目录中的记录来修改对应的指针。而rowid一直是保持不变。
      数据库在行目录中分配了空间后,并不会回收已删除行对应的行目录空间。仅在有会话在数据块中插入新的行时,数据库才会重用该行目录空间。

    #2 行数据格式
    数据块的行数据(Row data)部分包含了真正的数据,例如表的行或者索引键记录。行数据也有自己的内部格式。Oracle数据将行数据存为长度可变的记录。一条行数据被存储在一个或多个 row piece 中。每个 row piece 都有一个行头(row header)和列数据(column data)。

    图5 Row piece格式
    在这里插入图片描述

    Row header
    Oracle数据库利用row header来管理数据块中的row piece。行头中包含以下部分:

    • row piece中的列;
    • 位于其他数据块中的行的片(pieces),当一条行数据存储在多个row pieces中时;
    • 表集群的集群键(cluster keys)。

    一条完全存储在一个数据块中的行至少包含3个字节大小的row header。

    Column data
    列数据中存储了行中的真正的每一列的数据部分。Row piece通常按照 CREATE TABLE 语句中的顺序来存储列数据(但是并不保证完全按这个顺序)。比如,long类型的列数据通常最后被创建。

    正如图5所示,对于row piece中的每个列,Oracle数据库会分开存储列的长度(column length)和列数据本身。每条行数据在数据块header的行目录中都对应有一个插槽(slot)。这个插槽会指向行数据的开头。

    Rowid 格式
    Oracle数据块使用 rowid 来唯一地标识一行。Rowid是一个包含了数据库可以用来访问一行数据的信息的结构。Rowid并不是以物理形式存储在磁盘上的,而是通过存储数据的文件和数据块推断出来的。

    扩展的rowid包含了数据对象编号(data object number)。这种类型的rowid使用64位编码每行的物理地址,可用的编码字符包括 A-Z、a-z、0-9、+和/。以 OOOOOOFFFBBBBBBRRR 为例,可以分为以下四部分:

    • OOOOOO数据对象编号用于标识段(segment)。每个数据库段都会被分配一个数据对象编号。在同一个段中的schema对象都会有相同的数据对象编号。
    • FFF:表空间相关的数据文件编号用于标识存有行数据的数据文件。
    • BBBBBB数据块编号用于标识存有行数据的数据块。数据块编号与数据文件有关,而不是表空间。因此,两条有相同数据块编号的行数据可以存储在同一个表空间的不同数据文件中。
    • RRR行编号用于标识数据块中的行。

    Rowid在被分配给一个row piece之后,在特殊情形下可以被修改。

    数据块压缩

    数据库可以使用表压缩(table compression)来消除数据块中的重复值。使用了压缩技术的数据块的内部结构与未压缩的数据块大致相同,区别在于:在压缩的数据块中会有一个符号表(symbol table),用于存储重复的行和列的数据值。数据库会把出现这些重复值的地方用符号表中的对应符号替换。

    数据块空间管理

    当数据库从数据块底部开始填充数据时,block header和row data之间的可用空间就会越来越少。数据库可以通过管理数据块中的可用空间来提升性能、避免空间浪费。

    #1 数据块中的可用空间
    SQL参数 PCTFREE 设定了在数据块中为更新现有行数据而保留的可用空间的最小百分比。PCTFREE 对于防止行迁移和避免空间浪费来说非常重要。

    假设,你通过 CREATE TABLE 语句设定了 PCTFREE 的值:

    CREATE TABLE test_table (n NUMBER) PCTFREE 20;
    

    随着数据库向数据块中添加行,底部的行数据和顶部的块头部向中间靠拢,导致可用空间逐渐减少。而PCTFREE参数会保证至少有20%的数据块空间可用(free)。比如,如果有一个INSERT操作会导致可用空间减少到10%,那么数据库会阻止该插入操作。

    #2 可用空间的优化
    一些DML操作可以增加数据块中可用空间的大小。另一方面,被释放的空间在数据块中与可用空间的主要区域也许并不是相邻的,通过合并这些碎片化的空间也可以优化可用空间。

    以下的SQL操作可以增大可用空间:

    • DELETE语句;
    • UPDATE语句,如果将现有值更新为更小的值、或者增大现有值致使发生行迁移;
    • INSERT语句,如果导致插入的数据块发生了行数据压缩。

    仅仅当满足以下条件时,Oracle数据库会自动地、透明地合并(coalesce)数据块中的可用空间:

    • 有INSERT或UPDATE操作尝试使用一个包含了足够可用空间的数据块来存储一个新的row piece。
    • 可用空间处于碎片化(fragmented)状态且新加入的row piece不能被连续地(contiguous)插入到数据块。

    #3 行链接&行迁移
    Oracle数据库使用行链接行迁移来管理太大而无法放到单个数据块中的行。以下情形有可能发生:

    1. 行太大而无法(首次)插入到单个数据块中。
      在行链接(row chaining)中,Oracle数据库将行数据存储在由一个或多个数据块构成的链结构中。例如,当行内包含了 LONG 或者 LONG RAW 数据类型的列,或者当行内包含了非常多的列,这类情况下行链接就是无法避免的。

    在这里插入图片描述

    1. 已经存到数据块中的行,被更新后整体长度增加,现存的可用空间不足以容纳更新后的行。
      在行迁移(row migration)中,Oracle数据库会将整个行迁移到一个新的(能够容纳该行)数据块中。迁移之前的原有row piece中则会包含一个指向新的(存有被迁移行)数据块的指针。被迁移行的rowid不会发生变化

    在这里插入图片描述

    1. 行内有超过255列数据。
      Oracle数据库在一个row piece中仅仅能够存储255列数据。如果你插入一个包含1000列数据的表,那么数据库就会创建4个row pieces,且通常位于多个链接的数据块中。

    索引块

    索引块(index block)是一种特殊的数据块,与表数据块(table blocks)管理空间的方式不同。

    #1 索引块分类
    一个索引包括一个根块(root block)、枝块(branch blocks)和叶块(leaf blocks)。

    • Root块:标识索引的入口点(entry point);
    • Branch块:数据库在搜索索引键时会浏览branch块;
    • Leaf块:存储了指向对应行数据的索引键值rowid。Leaf块会按顺序存储键值,从而提高了数据库搜索的效率。

    #2 索引记录存储
    索引记录(index entries)存储在索引块中的方式与表行存储在数据块中的方式相同。

    数据库管理索引块中行目录的方式不同于数据块中的行目录。行目录中的记录按键值排序。比如,索引键 000000 在行目录中的记录排在索引键 111111 对应的记录之前。这么做可以提高索引扫描的效率。

    相对于一个堆组织的表数据块而言,一个索引块中通常包含更多的行。这使得数据库更加容易管理索引,因为避免了为了容纳新数据而可能导致的索引块的频繁分裂。

    References
    [1] https://docs.oracle.com/en/database/oracle/oracle-database/19/cncpt/logical-storage-structures.html#GUID-13CE5EDA-8C66-4CA0-87B5-4069215A368D

    展开全文
  • 实验2 Oracle数据库物理存储结构管理

    千次阅读 2019-05-03 15:05:34
    (1)掌握Oracle数据库数据文件的管理。 (2)掌握Oracle数据库控制文件的管理。 (3)掌握Oracle数据库重做日志文件的管理。 (4)掌握Oracle数据库归档管理。 二、实验环境: Oracle 11g 三、实验内容: 向...
  • oracle数据库的体系结构

    千次阅读 2018-09-22 10:43:46
    最近在复习oracle数据的相关知识,为了加强理解,...oracle数据库是数据的物理存储,这就包括数据文件(ora或者dbf)控制文件、联机日志、参数文件.Oracle数据库的概念和其他数据库不一样,这里的数据库是指一个操...
  • Oracle-Oracle数据库物理存储结构管理

    千次阅读 2019-05-14 19:30:36
    Oracle数据库物理存储结构管理 紧接着上一篇博客:Oracle-新建Oracle数据库并连接(图文,详细):https://blog.csdn.net/xu_benjamin/article/details/90209332 进行一些简单的Oracle数据库物理存储结构管理操作 ...
  • oracle数据库逻辑结构

    2019-08-10 16:23:24
    oracle database为数据库里面的说有数据都分配了逻辑空间。oracle database的逻辑单元有数据块、extent\段、表空间。下面是逻辑存储和物理存储之间的关系。 参考文献 Logical Storage Structures ...
  • 第七章 Oracle数据库存储 数据库采用有组织的方式存储信息为存储数据Oracle数据库使用存储结构Oracle数据库拥有两种互为相关的逻辑数据存储结构和物理数据存储结构逻辑结构是数据概念上的组织例如数据库表空间物理...
  • 知识点:初步认识Oracle数据库,了解OracleDatabase 11g的体系结构、掌握登录Oracle数据库的方法、理解Oracle数据库中用户、角色与权限之间的关系、能够创建、修改和删除用户,并给用户授予权限。 1、认识Oracle ...
  • Oracle数据库存储结构:逻辑存储结构(二)区(Extent)区的分配区的释放区的存储参数段(Segment)用户段临时段undo段段空间与高水位线表空间永久表空间临时表空间表空间的模式表空间文件大小 区(Extent) 区的...
  • 概述 Oracle DB 服务器由一个...Oracle 实例使用内存结构和进程来管理和访问数据库。所有内存结构都存在于构成数据库服务器的那些计算机的主内存中。进程是在这些计算机的内存中运行的作业。进程被定义为操作系统中可运
  • ORACLE数据库基础1:简介和体系结构

    千次阅读 2018-07-25 12:48:02
    ORACLE数据库基础初探之简介和体系结构   内容:(1)oracle数据库系统简介  (2)oracle数据库相关名词解释  (3)oracle体系结构 1:oracle数据库系统简介    oracle数据库系统是oracle公司提供的一组...
  • 先来看一个,这个取自于教材,这个对于从整体上理解 ORACLE 的体系结构组件,非常关键。 首先看张图: 对于一个数据库系统来说,假设这个系统没有运行,我们所能看到的和这个数据库相关的无非就是...
  • 表空间,oracle逻缉存储结构,表空间下包含一个或者多个物理的文件存储。所有用户对象存放在表空间中。与系统有关的对象存放在系统表空间中。 数据库的作用就是实现对数据的管理和查询。任何一个数据库系统,必然...
  • 目前主流关系型数据库:  大型数据库:sybase、Oracle、db2  中型数据库:mysql、SqlServer、infomix ...Oracle数据库结构化查询语言和数据类型: 一、结构化查询语言(SQL)  1.SQL(Structured Query Langua
  • oracle数据库的物理结构及逻辑结构

    千次阅读 2017-09-02 18:24:17
     Oracle数据库的物理结构由构成数据库的操作系统文件组成,它是从操作系统的角度来分析数据库的组成,在操作系统中可以看得到的文件,也就是说它是数据库在操作系统中的存储位置。常见的物理结构包括:控制文件、...
  • Oracle-新建Oracle数据库并连接(图文,详细)

    万次阅读 多人点赞 2019-05-14 16:23:00
    Oracle数据库物理存储结构管理 环境:win10 64位、Oracle 11g、sqldeveloper (由于一些原因以下内容有一份是在sql plus命令行中完成的,有一部分是在sqldeveloper中完成的) sqldeveloper下载链接: ...
  • 1 绪论....3.1 数据库设计. 5 3.1.1 用户E-R. 5 3.1.2 书籍E-R. 5 3.1.3 银行账户E-R. 6 3.1.4 用户信息E-R. 6 3.1.5 银行账户交易信息E-R. 7 3.1.6 图书销售记录E-R. 7 3.1....
  • Oracle学习笔记(一)–Oracle数据库的体系结构 1. Oracle 数据库概述 1.1 什么是 Oracle 数据库 Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直...
  • 1. oracle 数据库由数据库存储结构和数据库实例两部分构成。  其中,存储结构包括物理存储结构和逻辑存储结构,是数据存储及空间分配的基础;实例是oracle 数据库的软件结构,包括内存结构和后台进程,是数据库...
  • Oracle 数据库实例介绍

    万次阅读 多人点赞 2018-11-23 15:44:13
    本章介绍 Oracle 数据库实例的原理,实例的参数文件和诊断文件,以及实例创建和数据库的打开与关闭的过程。
  • Oracle数据库保存、下载图片

    千次阅读 2017-04-18 00:02:50
    存储图片class: test表结构( id name image)public class Test{ PreparedStatement pst = null; Result rs = null; Connection conn = ConnectionManager.getConnection(); String sql = "insert into
  • 文章目录一、Oracle 数据库概述1、Oracle 概述二、关系型数据库1、数据库管理系统2、数据库设计范式三、Oracle 11g 的新功能 一、Oracle 数据库概述 1、Oracle 概述 ...可以说Oracle数据库系统是目前世界上...
  • 本书包括数据库基本理论以及Oracle数据库系统知识两部分。主要包括关系模型基本理论,ER...强调在学习各种技能的同时,理解关系型数据库理论的一些本质内容,能够对Oracle数据库的体系结构及运作原理有深层次的理解。
  • 两个版本的数据库对比,同时支持sqlserver,oracle,MySql ,代码差异高亮显示 具体功能 介绍博客有图片 :https://blog.csdn.net/wwja_chen/article/details/89336728 如开发库和正式库之间的结构和数据同步,此工具可以...
  • 首先,Oracle数据的存储结构可以分为逻辑存储结构和物理存储结构,对于这两种存储结构,Oracle是分别进行管理 逻辑存储结构:Oracle是内部的组织和管理数据的方式 物理存储结构:Oracle外部(操作系统)组织和管理数据的...
  • oracle逻辑存储结构

    千次阅读 2019-06-14 15:12:56
    一、定义二、数据块二、区(extent)2.1 区的分配2.2 区的释放三 段3.1段的分类3.2 段相关的视图四、表空间4.1 表空间...oracle的逻辑结构包括表空间(tablespace),段(segment),扩展区(extent),数据块(data block)...
  • Oracle数据库体系结构

    2021-04-21 20:08:20
    Oracle数据库存储结构分为物理存储结构和逻辑存储结构两种。物理存储结构主要用于描述在Oracle数据库外部数据的存储,即在操作系统层面如何组织和管理数据,与具体的操作系统有关;逻辑存储结构主要描述Oracle...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 98,998
精华内容 39,599
关键字:

oracle数据库存储结构图