Oracle数据库体系结构

文章目录

    • Oracle系统体系结构由三个部分组成:**实例、物理结构和逻辑结构**
    • 实例和物理结构(数据库)组成了Oracle服务器。
  • 一、实例
      • 1.1 内存结构
      • 1.1.1 系统全局区(SGA)
          • 1.1.1.1 共享池(共享储存区)
          • 1.1.1.2 共享池——库缓冲区
          • 1.1.1.3 共享池——数据字典缓冲区
          • 1.1.1.4 数据块高速缓冲区
          • 1.1.1.5 重做日志缓冲区
          • 1.1.1.6 大型池
          • 1.1.1.7 Java池
      • 1.1.2 程序全局区(PGA)
      • 1.2 进程结构
      • 1.2.1 用户进程
      • 1.2.2 服务器进程
      • 1.2.3 后台进程
          • 1.2.3.1 数据库复写器(DBWn)
          • 1.2.3.2 日志复写器(LGWR)
          • 1.2.3.3 系统监控进程(SMON)
          • 1.2.3.4 进程监控器(PMON)
          • 1.2.3.5 检查点(CKPT)
          • 1.2.3.6 归档进程(ARCn)(可选)
  • 二、物理结构
      • 2.1 数据文件
      • 2.2 重做日志文件
      • 2.3 控制文件
  • 三、逻辑结构

Oracle系统体系结构由三个部分组成:实例、物理结构和逻辑结构

实例和物理结构(数据库)组成了Oracle服务器。

一、实例

也成为服务器Server,是用来访问一个数据库文件集的一个存储结构以及后台进程的集合。总是打开一个且仅打开一个数据库,一个数据库可以被多个实例访问。

由内存结构和进程结构组成。

1.1 内存结构

内存结构由系统全局区和程序全局区构成

1.1.1 系统全局区(SGA)

SGA(System Global Area):由所有服务进程、后台进程共享
在实例启动时分配,时一组为系统分配的共享内存结构。是占用内存最大的一个区域,也是影响数据库性能的重要因素。

由共享池、数据块高速缓冲区、重做日志缓冲区组成,另外有两个可选的内存结构:大型池、JAVA池。

1.1.1.1 共享池(共享储存区)

用来储存最近最多执行的SQL语句和最近最多使用的数据定义

主要由库缓冲区和数据字典缓冲区组成

1.1.1.2 共享池——库缓冲区

储存最近使用的SQL和PL/SQL语句信息。
它能够使普遍使用的语句能被共享。
由两种结构组成,其各自的大小由共享池内部指定:

  • 共享SQL区域
  • 共享PL/SQL区域
1.1.1.3 共享池——数据字典缓冲区

使数据库里最经常使用的对象定义的集合。
包括数据文件名、表、索引、列、用户权限和其他数据库对象等信息。数据库需要这些信息时,将查找数据字典获取关联对象信息。
缓存数据字典信息在内存区能提高查询数据响应时间。

1.1.1.4 数据块高速缓冲区

储存以前从数据文件中取出过的数据块的拷贝信息。
通常只缓存数据库大小的1%~2%。使用LRU(最近最少使用)算法来管理可用空间。

1.1.1.5 重做日志缓冲区

记录数据块的所有变化。重做项会被周期性分批写到重做日志文件中,以便再数据块恢复过程中用于恢复操作。

1.1.1.6 大型池

只配置在共享服务器环境中,能减轻共享池的负担。

1.1.1.7 Java池

目的是为JAVA命令提供语法分析,如果安装并使用JAVA是必须的。

1.1.2 程序全局区(PGA)

PGA(Program Global Area):由每个服务进程、后台进程专有;每个进程都有一个PGA。
当客户进程访问oracle服务器时,会在oracle服务器端为用户进程分配相应的服务进程,并且为该服务进程分配相应的内存空间来存放其数据和控制信息,每一个后台进程也需要为其分配专用的存储空间。也就是PGA

1.2 进程结构

分别为用户进程、服务器进程和后台进程。

1.2.1 用户进程

用户进程是要求Oracle服务器交互的一种进程。
当数据库用户要求连接到Oracle服务器时启动,不直接和Oracle服务器连接。

1.2.2 服务器进程

连接ORacle实例,当用户建立一个会话时开始启动。

连接和会话是两个不同的概念。 连接是用户进程到实例之间的一条物理路径;会话是实例中存在的一个逻辑实体。一条连接上可以建立0个,1个或多个会话,而且各个会话单独且独立的。
使用connect和disconnect创建或结束会话

服务器进程就是代表客户会话完成工作的进程。几乎所有的工作都是由它们来做的,因此占用系统cpu的时间最多。

任务:

  • 对sql进行解析和执行
  • 如果所需的数据不在sga中,则server process会去磁盘上将其读到sga的database_buffer_cache中。
  • 把结果返回给应用程序

可用专用服务器模式或共享服务器模式创建会话。

1.2.3 后台进程

若干个常驻内存的操作系统进程,在进程启动时分配。
数据库的物理结构与内存结构之间的交互通过这些进程完成。

1.2.3.1 数据库复写器(DBWn)

负责管理缓冲储存区。主要任务是将缓冲区的脏数据写入磁盘。

1.2.3.2 日志复写器(LGWR)

负责管理日志缓冲区,将上次写入磁盘以来的全部日志缓冲区写入磁盘上的日志文件。

1.2.3.3 系统监控进程(SMON)

该实例启动时,执行实例恢复,还负责清理不再使用的临时段。

1.2.3.4 进程监控器(PMON)

该进程在用户进程出现故障时执行进程恢复,负责清理内存储区和释放该进程所使用的资源。

1.2.3.5 检查点(CKPT)
1.2.3.6 归档进程(ARCn)(可选)

当ArchiveLog模式被设置时,自动归档联机重做日志文件,保存所有数据库变化。

二、物理结构

包括了数据文件、日志文件和控制文件。

2.1 数据文件

每个Oracle数据库有一个或多个物理的数据文件。一个数据库的数据文件包括全部数据库数据。逻辑结构中的一个表空间有一个或多个数据文件组成。

2.2 重做日志文件

每个数据库有两个或多个日志文件的组。每个日志文件组用于收集数据库日志。
日志的主要功能是记录对数据所做的修改,用于保护数据库以防止故障。

2.3 控制文件

每一Oracle数据库有一个控制文件。用于记录数据库的物理结构

三、逻辑结构

描述了数据库的物理空间怎样运用,是一种层次结构。包括表空间、段、片区、快

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Distributed transactions with multiple databases, Spring Boot, Spring Data JPA and Atomikos

2019独角兽企业重金招聘Python工程师标准>>> A couple of weeks ago I was evaluating the possibility to use Spring Boot, Spring Data JPA and Atomikos for distributed transactions involving multiple databases. After looking at the Spring blog articl…

js如何查看元素类型

<script type"text/javascript"> //定义变量temp var temp Object.prototype.toString.apply("abcdef"); alert(temp); //执行结果------>[Object String] //定义变量temp var temp Object.prototype.toString.apply(123456); alert(te…

Android之用adb命令快速获取手机IP方法总结

方法1 adb shell netcfg 方法2 adb shell netstat 找到local address 方法3 手机root 安装busyboxadb shell ifconfig

Avalonia跨平台入门第十四篇之ListBox折叠列表

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定、自定义Window样式、动画效果、Expander控件;今天趁着空闲时间接着去摸索基于ListBox的折叠列表的效果,最终实现的效果如下图:先来看看布局吧:…

《HTML5触摸界面设计与开发》——1.4 神秘谷,是什么让触摸界面反应灵敏?...

本节书摘来自异步社区《HTML5触摸界面设计与开发》一书中的第1章&#xff0c;第1.4节,作者&#xff1a; 【美】Stephen Woods 更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.4 神秘谷&#xff0c;是什么让触摸界面反应灵敏&#xff1f; 我有个两岁半的儿子。他从一…

Android之获取移动网络ip

1、获取移动网络ip 2、代码 public String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddres…

GCD

使用GCD 什么是GCD Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。该方法在Mac OS X 10.6雪豹中首次推出&#xff0c;并随后被引入到了iOS4.0中。GCD是一个替代诸如NSThread, NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术。 GCD和…

软件测试技术——系统测试

文章目录一、功能测试二、回归测试定义测试时机三、性能测试定义目标性能测试类型压力负载测试1.并发性能测试&#xff08;重点&#xff09;2. 疲劳强度测试3. 大数据量测试压力测试&负载测试四、其他非功能测试1. 安全性测试功能性测试&安全性测试2. 可靠性3. 容错性测…

nagios-3.4.3搭建

nagios转载于:https://blog.51cto.com/yujianglei/1557718

.NET Core程序瘦身器发布,压缩程序尺寸到1/3

.NET Core具有【剪裁未使用的代码】的功能&#xff0c;但是由于它是使用静态分析来实现的&#xff0c;因此它的剪裁效果并不是最优的。它有如下两个缺点&#xff1a;不支持Windows Forms和WPF&#xff0c;而对于程序剪裁功能需求最强烈的其实反而是桌面程序的开发者。无法删除运…

Android之切换账号登录依然能登录成功问题解决办法

1、问题 切换账号登录依然能登录成功 2、原因和解决办法 原因是因为我调用了第三方的sdk,里面有个生成签名文件的函数&#xff0c;写死了一个参数&#xff0c;导致每次生成签名文件内容都是一致&#xff0c;导致到服务端验证通过成功。 分析路线&#xff1a; 1、 先打印日志…

《大型网站服务器容量规划》一1.1 容量规划背景

本节书摘来异步社区《大型网站服务器容量规划》一书中的第1章&#xff0c;第1.1节&#xff0c;作者&#xff1a; 郑钢 责编&#xff1a; 张涛&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.1 容量规划背景 如今人们已经习惯从互联网上获取信息&#xf…

iptables配置详解

-A参数是将规则写到现有链规则的最后面-I 参数默认是将一条规则添加到现有规则链的最前面&#xff0c;当然也可以指定插入到第几行 行数可以用数字来指定 比如说将一条规则添加到某一条链的第三行 那么原来在第三行的规则就会降到下一行第四行。例如&#xff1a; iptables -I …

软件测试技术——单元测试和集成测试

一、单元测试 为何要进行单元测试&#xff1f; 尽早发现错误 错误发现越早&#xff0c;成本越低。发现问题比较容易修正问题更容易 1.定义 单元测试是对软件基本的组成单元进行独立的测试 2.目标 单元模块是否被正确编码。信息能否正确地流入和流出单元。在单元工作过程中…

文本框输入值文字消失常用的两种方法

1.这种相对来说较简单&#xff0c;举例子&#xff1a; <input name"textfield" type"text" value"点击添入标题" style"color: gray;" onfocus"if (value 点击添入标题){value }" onblur"if (value ){value点击添…

C语言之strstr函数类似Java字符串的contain函数

1、strstr函数介绍 找出haystack字符串在needle字符串中第一次出现的位置&#xff08;不包括needle的串结束符&#xff09;。返回该位置的指针&#xff0c;如找不到&#xff0c;返回空指针。 2、举例 3、运行结果

软件测试技术——软件测试概述

文章目录一、软件测试的定义标准定义Bug和缺陷二、软件测试与软件质量保证三、软件测试七大基本原则四、软件测试分类按测试手段按测试执行方式按测试阶段或层次按测试对象五、软件测试过程模型V模型W模型H模型X模型一、软件测试的定义 正向观点逆向观点验证软件是否能正常工作…

《编写高质量代码:改善c程序代码的125个建议》——建议14-2:在右移中合理地选择0或符号位来填充空出的位...

本节书摘来自华章计算机《编写高质量代码&#xff1a;改善c程序代码的125个建议》一书中的第2章&#xff0c;建议14-2,作者&#xff1a;马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。 建议14-2&#xff1a;在右移中合理地选择0或符号位来填充空出的位 在右移…

Linux-No.04 Linux 设置定时任务发送邮件功能

2019独角兽企业重金招聘Python工程师标准>>> 1、定时任务 crontab -l crontab -e /sbin/service crond start //启动服务/sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置 /sbin/…

WPF 基础控件之 DataGrid 样式

此群已满340500857 &#xff0c;请加新群458041663由于微信群人数太多入群请添加小编微信号yanjinhuawechat 或 W_Feng_aiQ 邀请入群需备注WPF开发者 PS&#xff1a;有更好的方式欢迎推荐。支持NugetInstall-Package WPFDevelopers.Minimal -Version 3.2.001—代码如下一、创建…