文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Oracle的体系结构和物理、逻辑存储结构介绍

2024-04-02 19:55

关注

本篇内容主要讲解“Oracle的体系结构和物理、逻辑存储结构介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle的体系结构和物理、逻辑存储结构介绍”吧!

1.Oracle体系结构

说到Oracle,Oracle是什么呢?接触过Mysql,SQL Server的人可能下意识就认为不就一个关系型数据库么?其实不然,太笼统的概念不能让我们清醒的看懂Oracle的结构,从严格意义上来讲Oracle由两部分组成: 
Oracle的体系结构和物理、逻辑存储结构介绍

实例是数据库启动时初始化的一组进程和内存结构,数据库则是指用户存储数据的一些文件。实例是伴随着数据库的启动而存在的,它的存在是为了高效访问和处理数据库中的文件,以及保证故障时数据零丢失。正是如此,才会有启动和关闭实例、加载卸载数据库这些术语。 
如果上面那些让你对Oracle有了一点浅显的认知,那么请看下图: 
Oracle的体系结构和物理、逻辑存储结构介绍 
如你所见,以中间空白的为线,上面粉嫩嫩的部分便是Oracle实例部分,下面的便是数据库部分,那接下来我们便逐个进行剖析。

2.Oracle物理存储结构

顾名思义,物理存储结构就是一些能看得见,实际存在的东西,大白话就是一群文件组成了Oracle的物理存储结构。如图 
Oracle的体系结构和物理、逻辑存储结构介绍  
黄黄的部分代表着Oracle的核心组成,分别是数据文件、控制文件以及重做日志文件。除此之外,物理存储结构还包括着一些其他文件,例如参数文件、密码文件以及归档日志文件等等。下面将主要介绍这些文件。

3.Oracle逻辑存储结构

在oracle数据库中,对数据库操作会涉及逻辑存储结构,它是从逻辑角度分析数据库的构成,描述的是数据库内部数据的组织与管理方式,与操作系统没有关系。 
Oracle的体系结构和物理、逻辑存储结构介绍如图,可以明显的看出数据库逻辑结构主要包括表空间、段、区和数据块,所有的结构都是一对多的关系,一个数据库可以拥有多个表空间,一个表空间拥有多个段等等。

Oracle的体系结构和物理、逻辑存储结构介绍

1.块头 
包含了该数据块一般的属性信息,如数据块的物理地址、所属段类型等 
2.表目录 
如果数据块中存储的数据时某个表的数据,则这里存放该表的信息 
3.行目录 
用来存储数据块中有效的行信息 
4.空余空间 
指数据块还没有使用的存储空间 
5.行空间 
表或者索引的数据存储在行空间中,所以行空间是数据块中已经使用的存储空间。

所以从描述就可以看出来,一个数据块的容量其实就是行空间与空余空间的容量总和。

4.Oracle实例内存结构与相对应的后台进程

如图所示,Oracle实例结构分为左右两部分,一个叫做SGA,称作系统全局区;一个叫做PGA,称作程序全局区。SGA是系统分配的一组共享的内存结构,用来实现对数据库数据的管理和操作;PGA是用户会话专有的内存区域,每个服务进程、后台进程都有一个PGA。其实从上图可以看出,实例和数据库本来是八竿子打不到一起的两个东西,但是正好中间出来一个媒婆:实例的后台进程,也就是图中示例部分椭圆形一块一块的那个将两者沟通到了一起。下面先对SGA进行分析描述,其中也会涉及到相对应的进程也将进行分析: 
如图:

Oracle的体系结构和物理、逻辑存储结构介绍

数据库缓冲区缓存和日志缓冲区都是为了提高性能,避免频繁IO而存在的。日志缓冲区相比数据库缓冲区缓存要小的多,并且不能进行自动管理,对于日志缓冲区的修改需要重启实例,数据库缓冲区缓存可进行自动管理。作用在数据库缓冲区缓存上的DBWn进程,为了避免频繁的磁盘IO导致系统性能下降,会尽可能少地执行写入,且DBWn的写入和commit操作没有任何关系;

  而作用在日志缓冲区上的LGWR进程,则会非常积极地进行写入,一般情况下,它几乎是实时地将重做日志记录转储到磁盘中去。LGWR是Oracle体系结构中最大的瓶颈之一。DML的速度不可能超过LGWR将变更向量写入磁盘的速度。

以上列举了Oracle常见的内存结构,要注意的是,上面列举的内存区域,除了日志缓冲区是固定的,不能动态调整也不能进行自动管理外,其他内存区域都可以进行动态调整,也可以进行自动管理。

5.Oracle程序全局区

PGA包含单个用户或者服务器数据和控制信息,是oracle分配给一个进程的私有内存区域,每当有用户进程连接到数据库并创建一个会话时,便会由Oracle自动分配相对应的空间。 
在上面我们介绍了DBWn、LGWR这两个进程,下面将介绍其他的进程信息:

以上进程除了ARCn之外,全部都是系统必要的进程。对维持物理和内存之间的联系起了重大作用。

6.数据字典

数据字典是Oracle数据库重要的组成部分,由Oracle自动创建并更新,用来存储数据库实例信息的一组表,以表和视图的方式组织其拥有的信息。数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。数据字典的拥有者是SYS用户,并存储在默认表空间SYSTEM表空间中。数据字典主要存储以下信息:

Oracle中的数据字典有静态和动态之分;静态数据字典,在用户访问数据字典时不会发生改变,zhelei动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数据字典时往往不是一成不变的。 
静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、 all_*、 dba_*。

动态性能视图都是以V$开头的视图,V$视图以V$为前缀,用来记录与数据库活动相关的性能统计动态信息。例如V$session视图,可以查看当前会话的详细信息。

7.数据库启动和关闭流程

Oracle启动分3个过程nomount、mount和open,这三个过程具体执行的工作如下: 
Oracle的体系结构和物理、逻辑存储结构介绍 
- nomount状态:启动实例。 
首先从环境变量下dbs目录按如下顺序读取参数文件,但是会考虑参数文件重要性,便会通过以下过程进行读取: 
首先,读取spfile+实例名.ora这个文件;若未发现这个文件则读取spfile.ora;若未发现这个文件则读取init+实例名.ora这个文件;如果以上文件都没找到,也可以指定pfile参数文件启动以替代默认启动方式。 
读取完参数文件之后,便开始分配SGA,启动后台进程,启动预警日志文件(记录实例生命周期内事件,如系统内部错误、数据块损坏、系统参数修改等)和追踪文件(记录SQL操作及时间消耗等。要注意的是,数据库必须用初始参数文件或启动命令中的DB_NAME参数命名。 
- mount状态:关联实例与数据库,读取控制文件并获取数据文件和重做日志文件名称状态。 
启动完实例之后,便要将实例与数据库相关联,在读取参数文件时,找到控制文件位置并将其打开,从中读取到数据文件以及重做日志文件名称与状态,但是这里不检查数据文件与重做日志文件的存在性。在mount状态下,系统完成了了数据库的装载。

shutdown有四个参数:normal、transactional、immediate、abort,不带参数默认为normal。

startup有7个参数:nomount、mount、open、pfile、force、restrict和 recover

附录:常用的数据字典

静态视图

数据字典名称说明
dba_tablespaces关于表空间的信息
dba_ts_quotas所有用户表空间限额
dba_free_space所有表空间中的自由分区
dba_segments描述数据库中所有段的存储空间
dba_extents数据库中所有分区的信息
dba_tables数据库中所有数据表的描述
dba_tab_columns所有表、视图以及簇的列
dba_views数据库中所有视图的信息
dba_synonyms关于同义词的信息
dba_sequences所有用户序列信息
dba_constraints所有用户表的约束信息
dba_indexs数据表中所有索引的描述
dba_ind_columns所有表及簇上压缩索引的列
dba_triggers所有用户的触发器信息
dba_source所有用户存储过程信息
dba_data_files查询关于数据库文件的信息
dba_tab_grants/privs查询关于对象授权的信息
dba_objects数据库所有对象
dba_users关于数据库中所有用户的信息

动态视图

数据字典名称说明
v$database描述关于数据库的相关信息
v$datafile数据库使用的数据文件信息
v$log从控制文件中提取有关重做日志组的信息
v$logfile有关实例重置日志组文件名及其位置的信息
v$archived_log记录归档日志文件的基本信息
v$archived_dest记录归档日志文件的路径信息
v$controlfile描述控制文件的相关信息
v$instance记录实例的基本信息
v$system_parameter显示实例当前有效的参数信息
v$sga显示实例的SGA区大小
v$sgastat统计SGA使用情况的信息
v$parameter记录初始化参数文件中所有项的值
v$lock通过访问数据库会话,设置对象锁的所有信息
v$session有个会话的信息
v$sql记录SQL语句的详细信息
v$sqltext记录SQL语句的语句信息
v$bgprocess显示后台进程信息
v$process当前进程的信息

到此,相信大家对“Oracle的体系结构和物理、逻辑存储结构介绍”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯