oracle体系结构简介[通俗易懂]

oracle体系结构简介[通俗易懂]oracle体系结构简介 一、物理存储结构 1、数据文件 存放数据库数据,以dbf为扩展名。将数据放在多个数据文件中, 再将数据文件分放在不同的硬盘中,可以提高存取速度。数据文 件由数据块构成,块大小

oracle体系结构简介

一、物理存储结构
    1、数据文件
       存放数据库数据,以dbf为扩展名。将数据放在多个数据文件中,
       再将数据文件分放在不同的硬盘中,可以提高存取速度。数据文
       件由数据块构成,块大小由数据库创建时确定。

    2、重做日志文件,以rdo为扩展名。含对数据库所做的更改记录,
       这样万一出现故障可以启用数据恢复。一个数据库至少需要两个
       重做日志文件。重做日志在日志文件中以循环的方式工作。有
       归档日志模式和非归档日志模式。

    3、控制文件,以ctl或ctrl为扩展名。控制文件维护数据库的全局
       物理结构,记录数据库中所有文件的控制信息,每个数据库至少
       要有一个控制文件,建议用户使用两个或更多控制文件,并存放
       在不同的磁盘上。Oracle系统通过控制文件保持数据库的完整性,
       以及决定恢复数据时使用哪些重做日志。

    4、参数文件,以ora为扩展名。在一个数据库启动时,每个参数都有
       一个默认值,而参数文件中的设置值被用来更改默认值,参数值
       极大影响了oracle如何去执行其不同的任务。参数文件包括以下
       几种:
       <1>、初始化参数文件。当创建一个数据库时,oracle创建了一个
       默认的init.ora文件,如果不修改任何参数,oracle将用所有的
       缺省值来启动数据库,通常根据实际的应用修改参数设置以提高
       性能。
       <2>、配置参数文件。一般被命名为config.ora,它被用于特定实
       例的信息。这个文件是一个由init.ora文件调用或激活的文本文
       件,init.ora中包含一个ifile参数以设置config.ora文件的位置。
       既然一个数据库可以有一个或多个实例与之关联,那么配置文件中
       每一个参数对于不同的实例配置可能不同,当然,如果和数据库关
       联的实例只有一个,所有信息都保存在文件init.ora中,那么
       config.ora文件就不是必需的了。
       <3>、服务器参数文件(spfile)。它被设计为一个服务器端的参
       数文件,可以被认为是在oracle数据库服务器执行的机器上被管理
       的初始化参数的仓库。一个服务器参数文件可以用语句CREATE
       SPFILE从一个传统的文件参数文件创建。
    
    5、跟踪文件与警告日志。
       在实例中运行的每一个后台进程都有一个跟踪文件与之相连,跟踪
       文件记载后台进程遇到的重大事件信息。oracle还有一个称做警告
       日志的文件,用于记录数据库文件运行中主要事件的命令与结果。

    6、归档文件,以arc为扩展名,是重做日志文件的脱机副本,这些副本
       可能对于从介质失败中进行恢复很必要。

二、逻辑存储结构
    1、表空间。
       一个表空间对应一个或多个数据文件组成。一个表空间由段组成,
       段由范围组成,范围由一组连续的数据块组成,它们对应磁盘上
       的一个或多个物理块。一个表空间只能属于一个数据库,每个数据
       库最少有一个表空间(SYSTEM表空间),该表空间包含整个数据库
       的数据字典表,在数据库建立时自动创建。利用增加数据文件的形
       式可以扩大表空间。表空间的大小为组成该表空间的数据文件的大
       下之和。一个数据文件只能属于一个表空间,一个数据文件一旦被
       加入到一个表空间中,就不能再从这个表空间中移走,也不能再加
       入到其他表空间中,建立新的表空间需要建立新的数据文件。
 
    2、段:是逻辑数据库对象的物理副本,段存储数据,例如索引段存储
       与索引相关的数据。段是一个物理实体,它被放到表空间的一个数
       据文件上。一个段segment只能属于一个表空间,但可以属于多个数
       据文件。

    3、范围:段由范围组成,范围由一组连续的数据块组成。一旦段中的
       现有范围不能容纳新数据,该段将获取新的范围,如果需要的话,
       该过程持续下去,直到表空间中的数据文件没有自由空间或已达到
       每个段内部的范围最大数量为止。

    4、块:ORACLE最基本的存储单位,在建立数据库的时候指定,通常为
       操作系统块大小的倍数。
 
三、内存结构
    oracle内存结构大致具有四个区:软件代码区、系统全局区、程序全局
    区和排序区。

    1、系统全局区。(SGA)
       系统全局区为一组由oracle分配的共享数据结构,它是实例的主要部
       分,它含有数据维护、SQL语句分析与重做缓存所必须的所有内存结
       构,系统全局区的数据是共享的,也就是说,多个进程可以在同一时
       间对SGA中的数据进行访问和修改。它包含以下内容:
       <1>、数据块缓冲区
            该区存放最近使用过的数据块,使用LRU(最近最好使用算法)
            进行管理。
       <2>、字典缓冲区
            该区用于保存数据字典中的行,数据字典中存放oracle系统管
            理自身所需的所有信息。该区也使用LRU算法管理。
       <3>、重做日志缓冲区
            任何事务在记录到重做日志之前都先放到该区,数据库系统定期
            将该区内容写入到联机重做日志中。
       <4>、SQL共享池
            存放所有通过SQL语法分析、准备执行的SQL语句。
       <5>、JAVA池
            为JAVA命令提供语法分析。
       <6>、多缓冲池
            可以在SGA中创建多个缓冲池,能够用多个缓冲池把的数据集与其
            他的应用程序分开,以减少它们争夺数据块缓冲区相同资源的可
            能性。

    2、程序全局区(PGA)
       包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共
       享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分
       配在终止进程时回收。
 
    3、排序区
       排序需要内存,这部分空间成为排序区,排序区存在于请求排序的用户
       进程的内存中,该空间的大小为适应排序数据量的大小,可增长,但受
       初始化参数SORT_AREA_SIZER所限制。    

    4、软件代码区
       用于存储正在执行或可以执行的程序代码。

四、进程结构
    进程分为两类:用户进程和oracle进程。oracle为每一个连接的用户运行的
    应用建立一个用户进程。
    1、SMON
    当启动一个数据库时,SMON(系统监控进程)执行所需的实例恢复操作(使
    用联机重做日志文件),它也可以清除数据库(如不再使用的临时段),取
    消系统不再需要的事务对象。
   
    2、PMON
    PMON(进程监控程序)后台进程清除失败的用户进程,负责清理内存储区和
    释放该进程使用的资源。同SMON一样,它被周期唤起检测它是否需要被使用。

    3、DBRW
    数据库写进程。负责将被修改的数据块和字典缓冲内容写入到文件。

    4、LGWR。负责把联机重做日志缓冲内容写入到文件。

    5、CKPT
    检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,
    更新控制文件和数据文件中的数据库状态信息。

    6、ARCH
    归档进程:在每次日志切换时把已满的日志组进行备份或归档

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10875.html

(0)
上一篇 2022-12-20
下一篇 2022-12-20

相关推荐

  • 第04章 MySQL运算符详解「终于解决」

    第04章 MySQL运算符详解「终于解决」第04章 MySQL运算符详解 1. 算术运算符 算术运算符主要用于数学运算,其可以连接运算符前后的两个数值或表达式,对数值或表达式进行加(+)、减(-)、乘(*)、除(/)和取模(%)运算。 1.加

    2023-04-29
    152
  • Python log10 2:计算以10为底,2的对数

    Python log10 2:计算以10为底,2的对数log函数是数学中非常常见的一种函数,在实际的计算中也有着广泛的应用。基本上所有科学工程计算都要用到对数运算,比如测量声音和地震的强度等等。在自然语言处理领域中,log函数也常被用来计算概率。

    2023-12-28
    139
  • 电脑老师CPU爆满_cpu耗尽故障

    电脑老师CPU爆满_cpu耗尽故障问题描述 公司项目测试环境调用某些接口的时候,服务器立即崩溃,并一定时间内无法提供服务。 问题排查 服务器配置不够 第一反应是服务器需要升配啦,花钱解决一切!毕竟测试服务器配置确实不高,2CPU +

    2023-01-27
    183
  • 数据库sql语句优化_数据库是用什么语言

    数据库sql语句优化_数据库是用什么语言博客推行版本更新,成果积累制度,已经写过的博客还会再次更新,不断地琢磨,高质量高数量都是要追求的,工匠精神是学习必不可少的精神。因此,大家有何建议欢迎在评论区踊跃发言,你们的支持是我最大的动力,你们敢

    2023-05-09
    127
  • MySql事务的简单使用 – 纪宇

    MySql事务的简单使用 – 纪宇4个特性 原子性:一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(rollback)到事务开始前的状态 一致性:在事务开始前和事务结束以

    2022-12-23
    138
  • mysql更新语句执行流程_while语句执行

    mysql更新语句执行流程_while语句执行我们来看看更新语句的执行流程 与查询流程不一样的是,更新流程涉及两个重要的日志模块,redo log和 binlog redo log 如果每一次的更新操作都需要写进磁盘,然后磁盘也 要找到对应的那…

    2023-01-25
    152
  • Oracle数字金额转为汉字展示「终于解决」

    Oracle数字金额转为汉字展示「终于解决」
    CREATE OR REPLACE FUNCTION “F_UPPER_MONEY_NEW”(I_NUM in number default null ) …

    2023-04-06
    144
  • SQL优化方向

    SQL优化方向
    SQL优化的具体操作:1、在表中建立索引,优先考虑where、group by使用到的字段。 2、尽量避免使用select *,返回无用的字段会降低查询效率…

    2023-04-09
    154

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注