Oracle 体系结构 - 逻辑和物理存储结构之间的关系

栏目: 数据库 · 发布时间: 5年前

内容简介:Oracle数据库从物理存储中完全抽象出逻辑存储。逻辑数据存储采用“段”的形式。段的类型有很多种:典型的段是“表”。这些段以物理形式存储在数据文件中。通过表空间将逻辑存储从物理存储中抽象出来。逻辑结构和物理结构及其定义之间的关联在数据字典中定义。物理数据库结构Oracle数据库包括三类文件,以及其他几种数据库之外(或者说是可选的)的文件。必需的文件是控制文件(control file)、联机重做日志文件(online redo

Oracle数据库从物理存储中完全抽象出逻辑存储。逻辑数据存储采用“段”的形式。段的类型有很多种:典型的段是“表”。这些段以物理形式存储在数据文件中。通过表空间将逻辑存储从物理存储中抽象出来。逻辑结构和物理结构及其定义之间的关联在数据字典中定义。

物理数据库结构

Oracle数据库包括三类文件,以及其他几种数据库之外(或者说是可选的)的文件。必需的文件是控制文件(control file)、联机重做日志文件(online redo

log file)和数据文件(data file)。通常所说的外部文件(还有一些事高级选项需要的)是初始化文件、口令文件、归档重做日志文件以及日志和追踪文件。

控制文件

控制文件包含指向数据库其余部分的指针:联机重做日志文件和数据文件的位置,以及更新的归档日志文件(如果数据库处于归档日志模式)的位置。它还存储这维护数据库完整性所需的信息:例如各种重要的序列号和时间戳。例如,如果将恢复管理器 工具 用于备份,则控制文件也将存储这些备份的详细信息。控制文件的大小通常不过数MB,却起着至关重要的作用。

不必考虑使控制文件的多路副本保持同步,Oracle将做好这一切。维护工作将自动完成,只需要控制要制作多少副本,以及要将副本放于何处即可。如果创建数据库时设置的副本数量或位置有误,就可以在后期添加或删除副本,或移动它们,但要注意,执行任何此类工作都需要停机,因此,最好还是一开始就设置好。如果任何控制文件副本受损,数据库实例将立即终止。Oracle不允许使用控制文件数量低于要求的数据库。

联机重做日志文件

重做日志按时间顺序存储应用于数据库的一连串的变更向量。其中仅包含重建(或重做)所有已完成工作的最少限度的信息。如果数据文件(或整个数据库)受损,则可以将这些变更向量应用于数据文件备份来重做工作,将它们恢复到发生故障的那一刻前的状态。重做日志包含两类文件:联机重做日志文件(必需的)和归档日志文件(可选的)。

每个数据库至少有两个联机重做日志文件,但与控制文件一样,优秀的DBA总是为每个联机重做日志文件创建多个副本。联机重做日志包含多组联机重做日志文件,每个文件都称为一个成员。Oracle数据库至少需要两个组,其中每个组知道有一个成员在运行。处于性能考虑,可以创建两个以上的组,出于安全起见,每组要有多个成员。

其中一个组是当前组:LGWR将更改写入当前联机重做日志文件。当用户会话更新数据库缓冲区缓存中的数据时,也将尽可能少的变更向量写出到重做日志缓冲区。LGWR将此缓冲区不断转储到当前联机重做日志文件组中的文件。日志文件的大小固定不变,因此,当前组中文件最终会被写满。此时,LGWR将执行称为“日志切换”的操作。这使第二个组称为当前组,并开始执行写入。如果数据库配置得当ARCn进程将归档(实际上是备份)第一个组中的日志文件成员。当第二个组变满时,LGWR将再切换回第一个组,使第一个组成为当前组,并重写其内容。ARCn将接着归档第二个组。这样,联机重做日志文件组(及其成员)将被循环使用,而每次日志切换将生成归档重做日志文件。

与控制文件一样,如果每组具有多个成员(事实也应当如此),那么仍然不必担心保持这些成员同步的问题。LGWR能够确保对所有成员进程并行写操作,从而使这些成员完全相同。如果丢失某个组的一个成员,只要还存在其他成员,数据库仍然能够继续运行。

联机重做日志文件组的大小与数量涉及调整问题。通常,我们应当选择与预期活动数相适应的大小。至少为50MB,但某些活动数特别多的数据库需要将此数值提高到数GB,否则,每过几分钟,文件就会变慢。就十分忙碌的数据库而言,每秒钟可生成数MB的重做数据,就基本处于静态的数据库而言,每小时也不过生成数MB的重做数据。每个联机重做日志组的成员数量取决于适当的容错级别,也依照住址标准中的文档记录而定。不过,不必再数据库创建阶段担心这个问题。在稍后的任意时间,都能够移动、添加或删除联机重做日志文件,并且可以任意创建不同大小的联机重做日志文件。上述操作都可以在不停机的情况下“联机”执行,因此对于最终用户来说是透明的。

数据文件

在数据库创建阶段,至少必须创建两个数据文件。一个用于SYSTEM表空间(存储数据字典),一个用于SYSAUX表空间(存储数据字典的辅助数据),一个用于UNDO表空间(存储保护事务所需的撤销段)。

数据文件是数据的存储仓库。数据文件的大小与数量实际上是不受限制。其大小只受操作系统和硬件功能的限制。

数据文件是系统管理员可以看见的物理结构。从逻辑上讲,它们是段(包含编程人员可以看到的用户数据的段,以及构成数据字典的段)的储存库。“段(segment)”是数据的存储结构,典型的段是表和索引。在数据库的生命周期内,可以随时重命名、移动、添加或删除数据文件,也可以重设其大小。对某些数据文件执行某些操作时,将产生停机时间。

在操作系统级别看,数据文件由多个操作系统块组成。在内部,将数据文件的格式设置为Oracle“块(block)”。在每个数据文件中,这些块连续编号。在创建数据文件时,块大小固定不变,在大多数环境中,整个数据库的块大小都是一样的。块大小设计调整问题,大小范围是2KB到32KB(收到平台的限制)。Oracle块大小与操作系统的块大小不存在任何关联。

Oracle 体系结构 - 逻辑和物理存储结构之间的关系

块中存在头部分和数据区域,还可能有一些空闲空间。头部分包含诸如行目录的信息,行目录列出块中行数据区域中的位置(如果将相应的块用于表段),还包含行锁定信息(如果有事务或几个事务正在处理块中的行)。数据区域包含行本身,如行(如果是表段的一部分)或索引键(如果块是索引段的一部分)。

服务器进程对数据文件执行读操作,而DBWn对数据文件执行写操作。

其他数据库文件

这些文件位于数据库之外。在实际中,它们都是必需的,但雅阁地将,它们并不是数据库的一部分。

  • 实例参数文件(Instance Parameter File)当启动Oracle实例时,SGA结构会根据此参数文件的设置内置到内存,后台进程会据此启动。这是启动实例所需的唯一文件。其中的参数有数百个,但只有一个是必需的,它就是DB_NAME参数。其他多有参数都有默认值。因此说,此参数文件可以很小,但必须存在。
  • 口令文件(Password File)用户用过提交用户名和口令来建立对话。Oracle服务器根据存储在数据字典的用户定义对用户名和口令进行验证。数据字典是数据库中的一组表,如果未打开数据库,将无法对其进行访问。有时,需要在使用数据字典前对用户进行身份验证:在需要启动数据库时或创建数据库时。外部口令文件是完成此任务的一种方式。它包含存在于数据字典之外的少量用户名和口令(通常少于6个),这些用于在使用数据字典前连接到实例。
  • 归档重做日志文件(Archive Redo Log Files)当联机重做日志文件变满时,ARCn进程会将联机重做日志文件从数据库复制到归档日志文件中。在完成后,归档日志就不再是数据库的一部分,因为它不是连续的数据库操作所必需的。但是,如果需要还原数据文件备份,它将起到重要的作用。Oracle提供了用于管理归档重做日志文件的功能。
  • 警报日志和跟踪文件(Alert Log and Trace Files)警报日志是影响视力和数据库的某些重要操作的相关消息的连续流。并非所有事项都予以记录:只记录认为确实重要的事件,例如启动和关闭、更改数据库的物理结构和更改控制实例的参数。后台进程会在检测到错误条件时生成跟踪文件,有时也用于报告特定事件。

逻辑数据库结构

Oracle使用术语“段”来描述任何包含数据的结构。典型的段是包含数据行的表,但是Oracle数据库包含十多种段类型。其中最引人关注的表段、索引段和撤销段。Oracle通过表空间(tablespace)方式,将逻辑存储从物理存储中抽象出来。表空间在逻辑上是一个或多个段的集合,在物理上是一个或多个数据文件的集合。如果使用“关系分析”术语,则段和数据文件之间存在多对多关系:可以将一个表分布在多个数据文件中,而一个数据文件也可能包含多个表的一部分。Oracle通过在段和文件之间插���表空间实体,解决这种多对多关系的问题。

必须在创建数据库时创建SYSAUX表空间。如果未予指定,将创建默认的SYSAUX表空间。

段由多个块组成。数据文件的格式被设置为多个块,随着块的增加,这些块被分配给段。由于每次管理一个块的空间过于耗时,又将块分组为区间(extent)。区间是数据文件中编号连续的一系列块,通过为段新添区间,段将扩大。这些区间不必相邻,即使在同一数据文件中,也是如此。它们可以来自作为段所在表空间一部分的任何数据文件。

从逻辑上讲,一个表空间可以包含多个段,每个段可以包含多个区间。区间是一组Oracle块。从物理上界量,数据文件由多个操作系统块(由操作系统正在使用的文件系统所分配)组成。连接模型的两端的关系显示一个表空间可以包含多个数据文件,从最低级别看,一个Oracle块将包含多个操作系统块。

数据字典

数据字典包含从逻辑上和物理上描述数据库及其内容的元数据。用户定义、安全信息、完整性约束和性能监视信息都是数据字典的一部分。元数据作为一组段存储在SYSTEM和SYSAUX表空间中。

从很多方面讲,构成数据字典的段与其他的段很相似。关键区别在于:数据字典表在创建数据库时生成,你无权直接访问它们。Oracle提供了一组视图来查询字典。视图有四种形式:带有前缀CDB_、DBA_、ALL_和USER_。任何带有前缀USER_的视图将描述查询视图的用户拥有的对象。任何带有前缀ALL_的视图将显示描述您有权访问的对象的行。因此ALL_TABLES将显示描述你的表的行,以及描述已经授权你查看的任何人的表的行。任何带有前缀DBA_的视图将显示数据库中每个对象的行,因此,DBA_TABLES拥有数据库中每个表对应的行。CDB视图与DBA视图相同,除非在多租户数据库中工作。在创建数据库的过程中,将创建这些视图,还会创建大量由Oracle提供的PL/SQL包来帮助数据库管理员管理数据库,帮助编程人员开发应用程序。PL/SQL代码也存储在数据字典中。

表空间和数据文件之间的关联在数据库控制文件中维护。其中列出多有数据文件,致命其所属的表空间。如果没有控制文件,实例就无法找到数据文件,然后识别组成SYSTEM表空间的文件。只有打开SYSTEM表空间时,实例才可能访问数据字典,才可能打开数据库。

更多Oracle相关信息见 Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-04/158208.htm


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

微信民族志、自媒体时代的知识生产与文化实践

微信民族志、自媒体时代的知识生产与文化实践

赵旭东 / 中国社会科学出版社 / 2017-9 / 98.00元

进入二十一世纪以来,随着网络技术的发展,自媒体的悄然登场深度影响着我们的日常生活。中国社会中自媒体通讯方式的普及以及随之而有的一种文化书写的新形式——微信民族志的出现使原有文化秩序中时空意义发生转变的同时,也在重新塑造着以研究异文化为己任的人类学学科自身的成长、转型与发展。在此种情境之下,由中国人民大学人类学研究所、中国人民大学国家发展与战略研究院、中国人民大学社会学理论与方法研究中心、《探索与争......一起来看看 《微信民族志、自媒体时代的知识生产与文化实践》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具