`

【赵强老师】Oracle数据库的存储结构

阅读更多

Oracle的存储结构分为:物理存储结构和逻辑存储结构。

一、物理存储结构:指硬盘上存在的文件

  • 数据文件(data file)

一个数据库可以由多个数据文件组成的,数据文件是真正存放数据库数据的。一个数据文件就是一个操作系统文件。数据库的对象(表和索引)物理上是被存放在数据文件中的。当我们要查询一个表的数据的时候,如果该表的数据没有在内存中,那么oracle就要读取该表所在的数据文件,然后把数据存放到内存中。通过下面的语句可以查看当前存在的数据文件和对应的表空间:

 

 

select file_name,tablespace_name from dba_data_files;

 

 

  •  联机日志文件(online redo log file)

一个数据库可以有多个联机日志文件,联机日志文件包含了重做记录(undo records).联机日志文件记录了数据库的改变,例如当一次意外导致对数据的改变没有及时的写到数据文件中,那么oracle就会根据联机日志文件中 的信息获得这些改变,然后把这些改变写到数据文件中.这也是联机日志文件存在的意义.联机日志文件中重做记录的唯一功能就是用来做实例的恢复.比如,一次系统的意外掉电,导致内存中的数据没有被写到数据文件中.那么oralce就会根据联机日志文件中的重做记录功能包数据库恢复到失败前的状态。可以通过下面的语句查看当前存在的日志文件和对应的日志组信息:

 

select member,group# from v$logfile;

 

 

 注意:Oracle使用日志组来管理日志文件。默认有三个日志组,每组中至少两个成员。如上图所示。

另外,我们已经知道了什么是数据文件和联机日志文件,通过下面的图解来说明他们之间的关系。

  •  控制文件(control file)

一个数据库至少要有一个控制文件,控制文件中存放的数据库的"物理结构信息",正是因为他存放的是数据库的物理结构信息,所以他就显得尤其的重要.这些物理结构信息就包括:

  1. 数据库的名字。
  2. 数据文件和联机日志文件的名字及位置。
  3. 创建数据库时的时间戳。
  4. RMAN备份的元信息

为了更好的保护数据库,我们可以镜像控制文件.每个控制文件中的内容就是相同的.镜像了控制文件,即使其中的一个控制文件出现了问题,也不会影响到数据库的损坏,数据的丢失. 在启动数据库的时候,oracle就会根据控制文件中的数据文件和联机日志文件的信息来打开数据库.

可以通过下面的语句查看当前存在的控制文件。

 

select name from v$controlfile;

 

 

 注意:这里默认有两个控制文件,这种方式叫做“多路复用”。

  • 归档日志文件

是联机日志文件的副本,他记录了对数据库改变的历史。注意:Oracle默认是非归档模式,可以通过下面的语句查看

 

archive log list;

 

 

 通过下面的语句,将数据库切换到归档模式。

 

shutdown immediate
startup mount
alter database archivelog;
alter database open;

 

 

  • 参数文件

通常情况下指的就是初始化参数文件(initialization parameter file).参数文件包括了初始化参数文件和服务器端参数文件(server parameter file).在数据库启动的时候就会读取参数文件,然后根据参数文件中的参数来分配SGA并启动一系列的后台进程.参数文件中存放的是数据库和实例的参数.

Oracle的参数文件有两种类型:

  1. Spfile:二进制形式,9i之后
  2. Pfile:文本形式,9i之前

可以通过下面的语句查看当前的参数文件信息:

 

show parameter spfile

 

 

可以使用下面的方式将spfile转换为pfile:

 

create pfile='/home/oracle/pfile.ora' from spfile;

 

 

 查看pfile中的参数值:

可以通过下面的语句修改参数的值。

 

alter system set open_cursors=400 scope=both;
注意:scope的取值有三个:memory、spfile、both

 

 

  • 告警日志文件

记录了数据库的重大活动和所发生的错误.警报文件按照时间的先后来记录所发生的重大活动和错误.警报文件的名字的格式是 alert_SID.log。警报文件的位置可以通过查询v$diag_info得到,如下:

 

select * from v$diag_info;

 

 

注意:在12c以前的版本,告警日志的位置可以通过查询参数background_dump_dest得到。

告警日志文件中记录的信息,包括:

  1. 数据库启动和停止的信息
  2. 数据库的结构变化
  3. 强制审计的信息
  4. 死锁的信息
  •  跟踪文件

就是跟踪日志文件,每个服务器进程和后台进程都写跟踪文件.例如当后台进程发生了错误的时候,oracle就会把错误的信息写到跟踪文件中.DBA就可以根据跟踪文件的信息来查看进程中所发生的错误。

跟踪文件的位置跟告警日志文件,在同一个目录下:

 

select * from v$diag_info;

 

 

  • 备份文件

就是在数据库发生介质损坏的时候用来还原(restore)数据库的,恢复(recover)数据的。

 

二、逻辑存储结构

从逻辑上来看,

  1. 数据库是由一个或者多个表空间等组成。
  2. 一个表空间(tablespace)由一组段组成
  3. 一个段(segment)由一组区组成
  4. 一个区(extent)由一批数据库块组成
  5. 一个数据库块(block)对应一个或多个物理块
  • Database(数据库)

数据库是按照数据结构来组织、存储和管理数据的仓库。

  • Tablespaces(表空间)

表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。表空间(tablespace)是最大的逻辑单位,对应一个或多个数据文件,通常由相关的段组成。表空间的大小是它所对应的数据文件大小的总和。所有的数据库对象都存放在指定的表空间中。但主要存放的对象是表, 所以称作表空间。

必须存在的表空间

  • system
  • sysaux
  • temp
  • undo

可选的表空间:一般指用户创建的用户表空间,比如:users

可以通过下面的语句查看当前数据库的表空间信息:

 

select tablespace_name from dba_tablespaces;

 

 

  • Segments (段)

一个段是分配给一个逻辑结构(一个表、一个索引或其他对象)的一组区,是数据库对象使用的空间的集合;段可以有表段、索引段、回滚段、临时段和高速缓存段等。

  • extents (区)

是数据库存储空间分配的一个逻辑单位,它由连续数据块所组成。第一个段是由一个或多个盘区组成。当一段中间所有空间已完全使用,oracle为该段分配一个新的范围。

  • Data Block (数据块)

是oralce 管理数据文件中存储空间的单位,为数据库使用的I/O的最小单位,最小的逻辑部件,其大小可不同于操作系统的标准I/O块大小。数据块的大小由DB_BLOCK_SIZE参数确定。块尺寸是处理Oracle更新、选择、或者插入数据事务的最小单位。当用户从表中选择数据时,选择操作从数据库文件中以块为单位读取或者提取数据。例如Oracle块的大小为8kb,即使只想检索4kb的字符的名字,也必须读取含有这4个字符的整个8kb的块。

通过下面的语句查看当前数据块设置的大小:

 

show parameter db_block_size

 

 

 

 

 

 

分享到:
评论

相关推荐

    传智播客 赵强 Oracle课件

    赵强老师的Oracle课件全面覆盖了Oracle数据库的学习路径,无论你是初学者还是有经验的DBA,都能从中受益匪浅。通过系统的理论学习和实践操作,你将能够熟练掌握Oracle数据库系统,并在IT行业中提升自己的竞争力。

    赵强老师的Oracle课件

    想要好好地学习Oracle数据库的朋友呀,你错过了她就太不值得了。里面有好多的Oracle操作命令可能你都没接触过吧。好了,话不多多说。坚信资料不错!你,值得拥有!OK.还有,之所有要你2分打赏,是我给了你这么好的...

    从零开始oracle

    ### Oracle基础教程:从零开始了解Oracle9i #### 关系型数据库系统简介 ##### 1.1.1 什么是关系型数据 关系型数据是一种按照关系数学模型组织和存储的数据形式。这种模型以二维表格的方式呈现数据,表格中的每一...

    Oracle数据库赵强视频教程【3天】

    教程名称:Oracle 数据库赵强视频教程【3天】教程目录:【】Oracle安装与管理、SQL语句(赵强)【】Orcale存储过程jdbc与Orcale大文本操作等(赵强)【】SQL简单查询触发器视图(赵强)  资源太大,传百度网盘了,链接在...

    oracle讲义

    Oracle数据库管理系统是全球广泛使用的大型关系型数据库系统之一,它为各类企业和组织提供高效的数据存储和管理解决方案。本文将深入探讨"Oracle讲义"中涉及的关键知识点,包括Oracle的体系结构、文件管理、光标、...

    oracle内部培训教材(来自传智播客学员)

    Oracle数据库是一个关系型数据库管理系统(RDBMS),它以表格的形式存储数据,并通过SQL(结构化查询语言)进行数据的增删改查操作。Oracle支持多用户并发访问,具有高度的数据完整性和安全性,适合大型企业的复杂...

    oracle课件

    Oracle数据库是一个用于存储和管理数据的软件系统,它支持多种数据类型,包括数值、字符串、日期、二进制数据等。Oracle使用SQL(结构化查询语言)作为其主要的数据操作语言,用户可以通过SQL进行数据查询、插入、...

    Oracle学习笔记(传智播客 赵强)

    在Oracle数据库的学习中,SQL优化是一项至关重要的技能,因为它直接影响到数据库的性能和查询效率。以下是一些关于SQL优化的关键知识点: 1. **使用列名代替通配符(*)**:在编写SQL查询时,避免使用`*`来获取所有列...

    精通JSP编程 作者赵强

    《精通JSP编程》是赵强先生的一部深入解析JSP技术的专业著作,该书针对JSP编程进行了全面且深入的讲解,旨在帮助读者掌握JSP的核心概念和技术,提升Web应用开发能力。根据提供的文件名列表,我们可以推测书籍的章节...

    精通JSP编程 作者赵强 编

    精通JSP编程 作者赵强 编 12-18节

    10天掌握MongoDB

    它的特点在于它的无模式设计,这意味着用户可以在不需要改变数据库结构的前提下存储任何类型的数据。MongoDB的数据存储结构以“数据库-集合-文档”的层次形式组织,类似于传统数据库中的“表-行”。 在安装MongoDB...

    [1120][赵强精通JSP编程][37M]

    根据提供的文件信息,我们可以推断出这是一份与Java Server Pages (JSP)相关的学习资料介绍,特别是关于赵强编写的《精通JSP编程》这本书的相关信息。下面将基于这个理解来生成相关知识点。 ### 一、JSP基础概念 ...

    信息存储技术的发展赵强.doc

    进入数字时代,存储技术进一步发展,包括半导体存储(RAM、ROM、Flash)、磁存储(硬盘、软盘、磁带)和光存储(CD、DVD、蓝光),各自具有独特的优缺点,共同构建了丰富的存储体系。 存储技术的今天,已经形成了...

    day2013-0110-webLogic配置和集群(赵强).zip

    WebLogic Server是Oracle公司的一款企业级Java应用服务器,它提供了全面的Java EE(Enterprise Edition)支持,包括Servlet、JSP、EJB等,以及对Web服务的支持。本资料包“day2013-0110-webLogic配置和集群(赵强)....

    三角奇异性增强的Λc+→pK-π+中可见的窄尖点结构

    在Belle的Λc+→pK-π+中的K-p不变质量分布中观察到窄至10 MeV的类似共振的结构。 基于约150万个事件的大数据样本和K-p不变质谱的仅1 MeV的小条带宽度,发现窄峰恰好位于Λn阈值处。 尽管缺乏在此质量区域具有如此窄...

    java代码-46 赖赵强

    在Java编程语言的世界里,"java代码-46 赖赵强"可能是指一个特定的项目或示例,由开发者赖赵强编写的。这个项目编号46可能表示它是作者众多作品中的第46个,或者是某个系列教程的一部分。在深入探讨之前,让我们先...

    地面机器人结构光道路识别方法的研究.pdf

    - [3] 李明, 赵强, “基于结构光的三维测量技术进展”,《光学精密工程》,20XX年,第XX卷,第XX期,第XX-XX页。 - [4] 刘华, 张伟, “结构光技术在三维物体重建中的应用”,《计算机辅助设计与图形学学报》,20XX年...

Global site tag (gtag.js) - Google Analytics