热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

【Oracle】8.Orecle体系结构分析

概念什么是Oracle数据库?基本上,有Oracle数据库的两个主要组成部分

概念 什么是Oracle数据库? 基本上,有Oracle数据库的两个主要组成部分 - 实例和数据库本身。实例包括一些内存结构和后台进程,而数据库是指磁盘资源。图1会告诉你之间的关系。 实例 该实例分析(SGA + PGA +后台进程)交互过程。 内存结构和后台进程contitu

概念

什么是Oracle数据库?

基本上,有Oracle数据库的两个主要组成部分 - 实例和数据库本身。实例包括一些内存结构和后台进程,而数据库是指磁盘资源。图1会告诉你之间的关系。

实例

该实例分析(SGA + PGA +后台进程)交互过程。

内存结构和后台进程contitute一个实例。内存结构本身由系统全局区(SGA),程序全局区(PGA),以及一个可选的区域。在另一方面,强制性的后台进程数据库写进程(DBWn),日志写入(LGWR),检查点(CKPT)系统监视器(SMON)和进程监视器(PMON)。而另一可选的后台进程是归档程序(ARCn),恢复器(RECO)等。图将说明对一个实例这些组件之间的关系。

如图说明:


SGA

系统全局区(SGA),SGA是主要的内存结构。当Oracle数据库管理员谈记忆,他们通常指的SGA。这个区域被分成几部分的内存-缓冲区高速缓存,共享池,重做日志缓冲区,大池和Java池。

缓冲区高速缓存

缓冲区高速缓存来存储从数据文件检索到的数据块的副本。即,当用户从数据库中检索数据,该数据将被保存在高速缓冲存储器。它的大小可以通过DB_CACHE_SIZE参数init.ora中的初始化参数文件进行操作。

共享池

共享池分为两个小部分记忆-库高速缓存和字典高速缓存。库高速缓存用于对常用的SQL和PL / SQL语句的存储信息; 并且由一最近最少使用(LRU)算法来管理。它也使共享用户之间的那些statemens。在另一方面,字典高速缓存用于对数据库中的对象的定义,如列,表,索引,用户,权限等存储信息的共享池的大小可以通过init.ora中的初始化参数文件SHARED_POOL_SIZE参数来设置。

重做日志缓冲区

每个DML语句(插入,更新和删除),用户执行将产生重做条目。什么是重做条目?它是关于用户的所有数据更改信息。重做条目存储在重做日志缓冲区被写入到重做日志文件之前。操作重做日志缓冲区的大小,您可以使用init.ora中的初始化参数文件中的LOG_BUFFER参数。

大池

大池是SGA中的内存可选区域。它是用来 审查的共享池的负担地方。它也可用于I / O的处理。大池的大小可以通过init.ora中的初始化参数文件LARGE_POOL_SIZE参数进行设置。

Java池

正如其名,Java池是用来在Java的服务解析命令。它的大小可通过在INIT.ORA初始化参数文件。JAVA_POOL_SIZE参数设定

PGA

程序全局区(PGA)尽管SQL statemen的结果分析被存储在库中缓存,但结合可变的值将存储在PGA中。为什么?因为它必须是私人或不用户之间共享。该PGA还用于排序区。

软件区号

软件区号是内存中的一个位置,甲骨文应用软件的驻留。

后台进程

Oracle后台进程是幕后流程 的工作 与共同的回忆。

DBWn进程

数据库写( DBWn进程)工艺被用于从缓冲区高速缓存数据写入数据文件。从历史上看,数据库写被命名为DBWR。但是,由于一些Oracle版本可以让我们有多个数据库作家,名称更改为DBWn进程,其中n值是一个数字0到9

LGWR

日志写入器(LGWR)过程类似于DBWn进程。它从写入重做日志缓冲区重做项到重做日志文件。

CKPT

检查点(CKPT)是给一个信号,DBWn进程来写入数据的缓冲区高速缓存到数据文件的过程。它也将更新,当日志文件切换时的数据文件和控制文件头。

SMON

系统监视器(SMON)进程用于恢复系统通过应用条目在重做日志文件中的数据文件crach或实例失败。

PMON

进程监视器(PMON )过程中所使用的回滚事务并释放其他资源失败的进程后清理工作。

体系结构

数据库是指磁盘资源,和被分成两个主要结构:逻辑结构和物理结构。

逻辑结构

Oracle数据库被分成较小的逻辑单元effeciently管理,存储和检索数据。逻辑单元是表,段,区和数据块。图将说明这些单位之间的关系。


甲骨文逻辑结构之间的关系

表空间

表空间是一个逻辑分组的数据库对象。一个数据库必须有一个或多个表空间。在图3中,我们有三个表空间- SYSTEM表空间,表空间1和表空间2.表空间是由一个或多个数据文件组成。

表空间被进一步分解成段。一个段用于存储相同类型的对象。即,数据库中的每个表将存储到一个特定的段(称为数据段)和每一个索引数据库中的也将存储在其自己的段(称为索引段)。其他的段类型是临时段和回滚段。

程度

一个段被进一步分成范围。在一定程度上由一个或多个数据块。当数据库对象被放大,一个范围将被分配。不同于表空间或段,在一定程度上不能被命名。

数据块

数据块是存储在Oracle数据库中的最小单位。数据块的大小是表内字节的特定数目和它有相同的字节数。

物理结构

的物理结构是Oracle数据库的结构(在这种情况下,磁盘的文件)不直接由用户操纵。物理结构包括数据文件,重做日志文件和控制文件。

数据文件

数据文件是与一个表空间correspondens的文件。一个数据文件可以由一个表空间中使用,但是一个表空间可以有多个数据文件。

重做日志文件

重做日志文件是存储由DML语句所产生的重做条目中的文件。它可用于恢复过程。

控制文件

控制文件用于存储有关数据库的物理结构,例如数据文件的大小和位置的信息,重做日志文件位置等

Oracle数据库架构的图像,清晰的认识.....


业务思想

分析Oracle的体系结构,再次深入理解Oracle的运行机制,感受颇多,很容易学习的体系结构,都来了解了解吧!




推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • Søren Kierkegaard famously stated that life can only be understood in retrospect but must be lived moving forward. This perspective delves into the intricate relationship between our lived experiences and our reflections on them. ... [详细]
  • 计算机网络复习:第五章 网络层控制平面
    本文探讨了网络层的控制平面,包括转发和路由选择的基本原理。转发在数据平面上实现,通过配置路由器中的转发表完成;而路由选择则在控制平面上进行,涉及路由器中路由表的配置与更新。此外,文章还介绍了ICMP协议、两种控制平面的实现方法、路由选择算法及其分类等内容。 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • 线性Kalman滤波器在多自由度车辆悬架主动控制中的应用研究
    本文探讨了线性Kalman滤波器(LKF)在不同自由度(2、4、7)的车辆悬架系统中进行主动控制的应用。通过详细的仿真分析,展示了LKF在提升悬架性能方面的潜力,并总结了调参过程中的关键要点。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文介绍如何利用动态规划算法解决经典的0-1背包问题。通过具体实例和代码实现,详细解释了在给定容量的背包中选择若干物品以最大化总价值的过程。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 题目描述:给定n个半开区间[a, b),要求使用两个互不重叠的记录器,求最多可以记录多少个区间。解决方案采用贪心算法,通过排序和遍历实现最优解。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 探讨一个显示数字的故障计算器,它支持两种操作:将当前数字乘以2或减去1。本文将详细介绍如何用最少的操作次数将初始值X转换为目标值Y。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
author-avatar
情商是你弟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有