暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

数据库-Oracle(一)

衰仔 2021-06-23
469

表空间

默认表空间

  • SYSTEM
    :管理任何其他表空间。它包含数据字典,有关数据库管理信息的表和视图,编译的存储对象(如触发器,过程等)。

  • SYSAUX
    :辅助表空间。

  • UNDOTBS1
    :撤销表空间。存储的是撤销信息,可以用于恢复操作。

  • TEMP
    :临时表空间。可用于排序操作等。

  • USERS
    :存储用户的表和索引数据。

表空间的类型有如下三种:

  • 永久表空间:永久表空间包含持久性模式对象。永久表空间中的对象存储在数据文件中。

  • 撤销表空间:撤消表空间是在自动撤消管理模式下运行数据库时,管理撤消数据的一种永久性表空间。

  • 临时表空间:临时表空间仅包含会话期间的模式对象。临时表空间中的对象存储在临时文件中。



数据表

数据字典:记录所有对象的信息。

  • 用户级别:user_*,指一个用户可以使用的数据字典。

  • 管理员级别:dba_*,指由数据库管理员使用的数据字典。

  • 全部级别:all_* ,指不管是用户还是管理员都可以使用。

Oracle 结构


  • 物理存储结构

归档的日志文件

数据库有两种操作模式:ARCHIVELOG
NOARCHIVELOG
模式。如果选择了 ARCHIVELOG 模式,也就是归档模式,就会有归档的日志文件,是重做日志文件的备份,可以用来将数据库的内容恢复到某个时间点。


  • 内存结构

主要了解共享内存中的 SGA (系统全局区域)部分。为了便于理解,把它单独提出来,用一个更简单的图表示:


共享池

共享池(share pool)的大小由初始参数 SHARED_POOL_SIZE
确定,它的大小可调节。共享池包含两个主要的子缓存:

  • 库缓存(Library cache):存储数据库运行的 SQL 和 PL/SQL 语句有关信息。

  • 数据字典缓存(Data dictionary cache):数据字典高速缓存也被称为行高速缓存,因为它将数据保存为行而不是保存整个数据块的缓冲区。它是数据库表和视图的只读集合,其中包含有关数据库及其结构和用户的参考信息。

  • 进程结构图


SMON

SMON 是系统监控器(System Monitor)进程。它负责

  • 清理未使用的临时段。

  • 通过将联机重做日志文件中的条目应用与数据文件,为一个失败的实例进行实例恢复。

  • 合并字典管理表空间的连续可用范围。

PMON

PMON 是进程监控器(Process Monitor)进程。它负责检测其他后台进程的终止。如果一台服务器或调度进程异常终止,那么 PMON 负责执行进程恢复。

DBWn

DBWn 是数据库写入程序(database writer)的进程。它负责将脏数据(缓冲区缓存中新增或改动的数据块)写入数据文件。

LGWR

LGWR 是日志写入程序(log writer)的进程。它负责管理联机重做日志缓冲区。当 LGWR 已经成功写入重做信息到重做日志文件后,才可以通过 DBWn 将脏数据写入数据文件。

ARCn

ARCn 是归档程序进程,跟我们前面说到的归档重做日志文件相关。它将重做日志文件备份到一个地方。它的进程数量由初始参数 LOG_ARCHIVE_MAX_PROCESSES
控制。



  • 逻辑存储结构

表空间将逻辑存储从物理存储中抽象出来,在逻辑上,表空间是段的逻辑存储容器,在物理上,表空间将数据存储在一个或多个数据文件或临时文件中。数据库必须具有 SYSTEM 和 SYSAUX 这两个表空间。

  • SYSTEM 表空间:管理任何其他表空间。它包含数据字典,有关数据库管理信息的表和视图,编译的存储对象(如触发器,过程等)。

  • SYSAUX 表空间:辅助 SYSTEM 的表空间,减少了 SYSTEM 表空间的负载。了解更多有关 SYSAUX 可以参考 SYSAUX 表空间

了解更多有关表空间信息可参考 表空间

是为用户对象(例如表或索引),撤消数据或临时数据分配的一组扩展区。

盘区是逻辑上连续的特定数量的数据块,在单个分配中获得,用于存储特定类型的信息。

是 Oracle 数据库中最小的存储单位。一个数据块对应于磁盘上特定数量的字节。

表空间(Tablespace),段(Segment),盘区(Extent),块(Data block)的关系如下图所示:

连接线表示一对多的关系。


视图


视图(View)是从一个或多个表(这里的表指基本表和视图)导出的表。为了区分视图和表,所以表有时又被称为“基本表”。

对于视图来说,数据库中只保存有视图的定义,而通过视图获得的数据,都来自与它相关的基本表,视图本身是没有数据的。因此,如果我们对视图的数据进行操作,其实也就是对基本表的数据进行操作,而这种操作也是有一定的限制。


文章转载自衰仔,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论