`
yuanlanjun
  • 浏览: 1176939 次
文章分类
社区版块
存档分类
最新评论

《深入解析Oracle》学习笔记(6)---Oracle体系结构之存储结构

 
阅读更多

[声明:本文是学习著名ORACLE DBA盖国强先生的大作《深入解析ORACLE--DBA 入门 进阶与诊断案例》的学习笔记与心得体会。在此声明,文中摘录了书中部分内容,非是出于抄袭目的,而是有感于盖国强先生所写确实经典。在此声明对原作者的尊重与敬佩。]

第五章(前) Oracle存储结构

Oracle数据库存储结构分为逻辑存储结构和物理存储结构。
一:物理存储结构
描述Oracle数据库的外部存储结构,即在操作系统中如何组织、管理数据。物理存储结构是和操作系统相关的。
现实的数据存储单元,对应于操作系统文件。
包括控制文件、数据文件、重做日志文件、其他文件。
1.控制文件(control file):
一个大小在1--5M之间的二进制小文件,却是Oracle数据库的大脑。它对Oracle的启动和运行至关重要,它存储了Oracle的如下信息,而这些信息中的绝大部分在其他地方时无法获得的:
.数据库的名称(这个在初始化参数文件中存在,而且必须存在。事实上,之所以在Oracle中也存在这个参数,目的就是为了与初始化参数中的对应)
.数据文件/重做日志文件的名称、位置、大小、状态(联机/脱机)。
.发生磁盘故障或用户错误时,用于恢复数据库的信息(日志序列号、检查点)。
控制文件在数据库启动的装载、打开阶段都是不可或缺且不容出错的。在数据库的运行过程中,每当出现数据库检查点(checkpoint)或修改数据库结构后,Oracle本身就会修改控制文件的内容。
在Oracle 安装之后,自动创建了3个控制文件,这3个文件从诞生起就将保持绝对的一致性,起到备份的作用,尽管有这种备份机制,但每个数据库必须,而且只需要有一个控制文件。
2.数据文件(data file):
数据文件是存储了实际数据的操作系统文件。数据文件的大小是可以改变的。
一个表空间在物理上对应于若干个数据文件,一个数据文件只能属于一个表空间。
在创建表空间时,Oracle会自动为该表空间创建第一个数据文件。当表空间中的数据文件的空间被用完后,需要为表空间增加存储空间:要么创建新的数据文件。要么调整现有数据文件存储空间的大小。
除SYSTEM表空间外,任何表空间都可以由联机状态切换为脱机状态,以进行备份。联机状态时不能备份的。
3.重做日志文件(redo file):
内存中,Oracle更改的数据在被写入到数据文件前,会被“即时”写入到重做日志文件,一旦系统出现故障,可以利用这些文件重新恢复丢失的数据。
这样做是出于性能的考虑。
Oracle以循环方式来使用重做日志文件,至少需要2个重做日志文件,第一个被写满后,后台进程LGWR将写第二个重做日志文件,当第二个写满后,又开始写第一个。以此循环。
重做日志文件可以进行归档,前提是开启了自动归档功能,这样可以把所有的修改记录全都保存下来,得以恢复任何数据。
在Oracle 安装之后,自动创建了3个重做日志文件,这3个文件是循环使用的。
4.其他文件
.初始化参数文件:存储SGA、后台进程的配置参数、Oracle特性配置参数。
.口令文件:一个二进制文件,用户验证SYSDBA/SYSOPER权限的用户。这些用户可以启动/关闭实例、创建数据库、执行备份/恢复等。
.预警文件:记录了服务器进程、后台进程写入的错误和消息。通过查看该文件可以诊断数据库状态或故障、监视数据库变化等。MySQL中的my.cnf与此文件起着同样作用。
.后台进程跟踪文件:每个后台进程都有相应的跟踪文件。记录后台进程的警告或错误消息。
.服务器进程跟踪文件:跟踪SQL语句、诊断SQL性能。必须先激活SQL跟踪,才能使用该功能(sql_trace=TRUE)。
.归档日志文件:重做日志文件的备份。保留所有重做历史记录。开启归档模式。
.监听程序日志文件、跟踪文件:记录监听程序的启动时间、正在监听的端口、正运行在哪台机器上、建立过哪些了解等。
二:逻辑存储结构
描述Oracle数据库的内部存储结构,即从技术概念上描述在Oracle数据库中如何组织、管理数据。因此,逻辑存储结构是和操作系统无关的,由Oracle数据库定义、创建和管理。
包括:表空间、段、区、块。
1.表空间(tablespace):
表空间是最大的逻辑单位。一个数据库由多个表空间组成,一个表空间可以包含多个数据文件,一个数据文件只能属于一个表空间。任何数据库对象被逻辑的存储在表空间中,
又被物理的存储在数据文件中。
Oracle数据库在创建时,自动创建的表空间包括EXAMPLE表空间、SYSAUX表空间、SYSTEM表空间、TEMP表空间、UNDOTBS1表空间、USERS表空间。
.SYSTEM表空间存放信息:表空间名称、控制文件、数据字典、数据库对象的定义、PL/SQL代码、SYSTEM撤销段。
.SYSAUX表空间:是Oracle 10g才引进的,辅助SYSTEM表空间,提高效率。
.TEMP表空间:执行大型的分类操作,存放临时数据。
被存储在SYSTEM表空间中,数据库对象的数据被存储在该对象的数据表空间中,往往是该用户的用户表空间。
2.段(segment):
段是表、索引、簇等对象的存储空间。如表段、表分区段、索引段、索引分区段、临时段、回退段、撤销段、二进制大对象段等。
3.区(extent):
区是由多个物理上连续的Oracle块组成的。是Oracle存储分配的最小单位。
4.块(block):
Oracle最小的数据管理单位,数据管理中输入输出的最小单位。Oracle读取数据最小每次必须读取一个块出来。
Oracle块的大小是操作系统块的整数倍,较大的块在数据仓库中常见,这样可以使B树较浅,提高性能。
所以针对业务不同合理规划块的大小对数据库性能是很重要的。

分享到:
评论

相关推荐

    三菱PLC例程源码QD75P八轴定位系统程序

    三菱PLC例程源码QD75P八轴定位系统程序本资源系百度网盘分享地址

    WeRoBot-0.3.2-py2.7.egg

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    tensorflow_serving_api_gpu-1.14.0-py2.py3-none-any.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    三菱PLC例程源码ro1-chunshui

    三菱PLC例程源码ro1_chun shui本资源系百度网盘分享地址

    产品经理与产品原型(详解)

    互联网产品经理在向技术部门递交产品策划方案时,除了详尽的需求阐述,一份清晰易懂的产品原型设计方案同样不可或缺。一份出色的原型设计,不仅能促进前期的深入讨论,更能让美工和开发人员更直观地理解产品特性,进而优化工作流程,减少不必要的时间消耗,提升整体工作效率。接下来,我想就产品经理与原型设计之间的关系进行简要的探讨,并期待能与大家进行深入的交流和探讨。 产品原型,简而言之,是产品设计最终成形之前的一个基础框架。对于网站而言,它意味着对页面模块和元素进行初步、大致的排版与布局。进一步讲,我们还会加入一些交互性元素,使原型更加具体、生动,更贴近最终产品的形态,从而帮助团队成员更好地理解和构建产品。 很多人存在一个误区,认为UI、UE设计师的职责就是将产品原型转化为具体的页面效果。然而,实际上他们的工作流程是在原型设计完成之后展开的。在整个产品开发流程中,产品经理是最了解产品特性、用户和市场需求的角色。尽管设计师在视觉设计方面可能表现得非常出色,但他们在理解产品、用户、市场及业务方面的深度与准确性上,往往无法与产品经理相提并论。准确地说,设计师的工作是将产品原型转化为产品经理所期望的视觉效果。

    小红书娱乐营销520明星大事件《全明星告白季》招商方案ss.pptx

    小红书娱乐营销520明星大事件《全明星告白季》招商方案ss.pptx

    本科毕业设计-基于深度学习的模糊人脸图像增强系统的设计与实现.zip

    人工智能毕业设计&课程设计

    三菱PLC例程源码车辆进出车库

    三菱PLC例程源码车辆进出车库本资源系百度网盘分享地址

    三菱PLC例程源码PLCFX0N三层三站程序

    三菱PLC例程源码PLCFX0N三层三站程序本资源系百度网盘分享地址

    三菱PLC例程源码纯水控制三菱PLC实例和触摸屏程序

    三菱PLC例程源码纯水控制三菱PLC实例和触摸屏程序本资源系百度网盘分享地址

    三菱PLC例程源码pp復卷機三菱伺服編程

    三菱PLC例程源码pp復卷機三菱伺服編程本资源系百度网盘分享地址

    三菱PLC例程源码变频器16段速控制

    三菱PLC例程源码变频器16段速控制本资源系百度网盘分享地址

    wheel-0.34.2.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    基于SSM框架的二手物品交易管理系统设计源码

    这是一个基于SSM框架的二手物品交易管理系统设计,使用Java语言开发,包含344个文件。主要文件类型包括59个JPG图片文件、59个Java源文件、48个PNG图片文件、37个JAR包文件、34个JavaScript文件、28个JSP文件、26个CSS文件、16个XML文件和5个GIF图片文件。该项目提供了一个全面的二手物品交易平台,支持用户发布商品、查看闲置、充值账户、查看所有订单和发布求购信息,旨在为用户提供便捷、安全的交易环境。

    tensorflow_privacy-0.2.1-py3-none-any.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    使用DS Client在PPT中动态展示分子三维结构.pdf

    使用DS Client在PPT中动态展示分子三维结构

    quartus ii安装教程.docx

    quartus ii安装教程

    基于ssm高校食堂订餐系统.zip

    基于ssm高校食堂订餐系统.zip

    Google-JavaScript-编码规范指南

    Google JavaScript编码规范指南是Google公司推出的一套详尽且实用的JavaScript编程规范,旨在为开发者提供一个清晰、一致的编码标准,以提高代码质量、可读性和可维护性。这套规范不仅涵盖了JavaScript语言的基础语法和常见模式,还针对Google的实际项目需求,提供了一系列最佳实践和建议。 通过遵循Google JavaScript编码规范指南,开发者可以确保自己的代码风格与团队其他成员保持一致,减少因编码习惯不同而引发的沟通成本和潜在错误。规范中详细说明了变量命名、函数定义、注释书写、代码格式化等方面的要求,使得代码更加整洁、易于阅读和理解。 此外,Google JavaScript编码规范指南还强调了代码性能和可维护性的重要性。它提倡使用高效的数据结构和算法,避免不必要的性能开销;同时,也鼓励开发者编写可重用的代码,减少重复劳动,提高开发效率。 对于初学者来说,Google JavaScript编码规范指南也是一本极佳的入门教材。它可以帮助初学者养成良好的编程习惯,掌握JavaScript的核心概念和技巧,为未来的项目开发打下坚实的基础。

    tensorflow_ranking-0.5.3-py2.py3-none-any.whl

    算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

Global site tag (gtag.js) - Google Analytics