10分钟了解Oracle体系结构( 五 )


数据文件由一个个的Oracle块组成 , 这是Oracle的I/O基础单元 , 与操作系统块是不同的概念 , Oracle块要比操作系统块大 , 这当然有处于性能的一些考虑 , 但我们考虑这样一种情况 , 当用户使用操作系统命令进行数据文件的备份的时候(假设1个Oracle块=8个操作系统块) , 已经复制了4个操作系统块 , 然后CPU被DBWn抢占了 , DBWn又重新对这个Oracle块进行了更新 , 这时 , 当复制命令又得到了CPU时间去复制剩余的4个块的时候 , 就造成了整个Oracle块的数据不一致 , 所以 , 这也是在执行这种备份(用户自行备份)的时候 , 需要做一些额外处理 , 比如将表空间置为备份模式的原因 。当然 , 使用RMAN是不存在这样的问题的 , RMAN的备份机制是肯定可以得到数据一致的块的 。(这块内容作了解即可)
对于数据文件的保护 , 一般可进行定期备份 , 或者使用RAID也可以 。
实例参数文件这个文件存储了数据库所需的一些参数设置 , 比如各个内存区域的大小 , 可允许的最大进程数 , 最大会话数 , 控制文件的位置 , 数据库的名称等等 , 参数文件也是实例启动时首先要加载的文件 。
口令文件一般称为外部口令文件 。一般的用户名和口令是存放在数据字典中 , 不会存放在这个文件中 。在一些特殊场景下 , 比如实例还未启动 , 这时 , 我可能需要以管理员的身份登入系统去执行一些恢复或者启动操作 , 然而此时 , 数据字典由于实例还没启动是不存在的 , 这时就需要外部口令文件进行用户身份的验证 。
归档日志文件ARCn将联机重做日志文件会备份归档到这类文件中去 , 归档日志文件保留了数据更改的完整历史信息 。
逻辑存储结构Oracle将其物理结构从逻辑存储结构中抽象出来 , 物理机构是系统管理员能看到的 , 逻辑结构则是用户所能感知到的 。比较典型的逻辑结构就是 "段"和"表空间" 。
段:段就是包含所有数据的逻辑结构 , 比较典型的段就是"表" , 称为表段 , 还有索引段 , 撤销段等等 。
 表空间表空间从逻辑上是多个段的结合 , 在物理上是多个数据文件的集合 , 相当于在段和数据文件的对应中加入了一个中间层来解决这种多对多的关系 。
在早期的一些数据库设计中 , 段和数据文件是一对一的关系 , 一个段一个数据文件 , 这种设计有很多弊端 , 首先 , 段的数量是不固定的 , 有可能一个系统中上千张表 , 那就得需要上千个数据文件 , 系统管理员要管理这么多文件肯定会抓狂的;还有一种情况就是某些历史表可能特别大 , 大到底层系统对单个文件的限制 , 用一个数据文件去承载的话肯定是不行的 。表空间则完美解决了这样的问题 。
还有一些逻辑结构如区间和Oracle块(Oracle块前面有提到过 , 区间则为块的集合) , 下面通过一张图对Oracle的存储结构进行整体的宏观的认识 , 进一步加深些理解

10分钟了解Oracle体系结构

文章插图
 
本文博主对Oracle的体系结构做了相对全面的介绍 , 包括内存结构 , 进程结构 , 存储结构等等 , 相信大家对其全貌也有了基本的了解 。
本文作者:chengxiao
原文地址: https://www.cnblogs.com/chengxiao/p/5904783.html
本文分享自微信公众号 - 有关SQL(SQLHub)

【10分钟了解Oracle体系结构】


推荐阅读