




已阅读5页,还剩105页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库开发技术第3章Oracle体系结构 福建工程学院 1 本章要点 Oracle服务器体系结构Oracle实例Oracle内存结构Oracle进程结构Oracle数据库逻辑存储结构Oracle数据库物理存储结构 2 3 1Oracle服务器体系结构概述 数据库系统是一个存储和管理数据记录的系统 通常由DB DBMS及其开发工具 应用系统和用户组成 其中 DB实现数据存储功能 DBMS是数据库和其它部分的中间层 具有对数据库的管理和控制功能 开发工具 应用系统和用户通过DBMS可以实现对数据库的操作和数据存储 3 3 1Oracle服务器体系结构概述 Oracle服务器Oracle服务器由Oracle数据库和Oracle实例组成 Oracle数据库是指Oracle保存数据的一系列物理结构和逻辑结构 主要由一系列操作系统文件组成 Oracle实例就是在运行状态下的Oracle软件 主要是由操作系统的内存结构和一些进程组成 4 Oracle体系结构 OS RAM DISK Net 5 Oracle构架 实例内存结构后台进程 PMONSMONDBWRLGWRCKPT其他 数据库 数据文件 数据文件 数据文件 控制文件 控制文件 日志文件 日志文件 参数文件 归档日志文件 口令文件 SGA 用户进程 服务器进程 PGA 共享池 数据缓冲区 日志缓冲区 6 3 1Oracle服务器体系结构概述 Oracle服务器1 Oracle数据库Oracle数据库是一个存储数据的容器 由一些操作系统文件组成 它的基本功能是存储数据库全部的数据 数据的种类主要包括用户数据 控制数据以及操作信息等 数据库文件可分为数据文件 控制文件和重做日志文件三类 7 Oracle数据库文件 8 3 1Oracle服务器体系结构概述 Oracle服务器2 Oracle实例Oracle实例是运行在内存中的Oracle软件 主要包括Oracle内存结构和一些Oracle进程 在启动Oracle服务器时 实际上是在内存中创建一个Oracle实例 然后由这个实例访问和控制数据库文件的存取 9 Oracle实例 10 3 1Oracle服务器体系结构概述 Oracle服务器3 用户进程和其它进程用户进程是当用户执行一个Oracle应用程序 如Pro C C 或启动一个Oracle工具 如SQL Plus 时 Oracle所创建的用于管理这些应用程序或Oracle工具与Oracle实例通信的进程 用户进程不是实例的一部分 是一些试图连接数据库的软件 11 用户进程连接Oracle实例 12 3 1Oracle服务器体系结构概述 Oracle服务器工作过程以取款过程为例 跟踪Oracle对这一事务的执行过程 了解Oracle各组成部分的功能和Oracle服务器的工作过程 1 首先通过银行柜员机查询银行卡上存款情况 柜员机接受请求后 向远程服务器发出SQL语句 SELECTUSER ACCOUNTFROMBANK ACCOUNTWHEREPASEWORD 123456 ANDACCOUNT ID 1938743228 13 3 1Oracle服务器体系结构概述 Oracle服务器工作过程SQL语句通过网络传送到服务器端 服务器进程接收到SQL语句后 检查共享池中是否保存有该SQL语句解析后的程序代码 如果SQL不在共享池中 服务器进程将解析SQL语句 然后执行此程序 否则从共享池中取出SQL语句直接执行 服务器将保存有存款数量的数据块从数据文件中读出并放到SGA的数据高速缓存中 一旦存款数据放进数据高速缓冲区中 客户进程即可读出此数据并将其返回至柜员机 14 3 1Oracle服务器体系结构概述 Oracle服务器工作过程 3 根据存款情况从银行卡上取出一部分现金 柜员机接收取款数量后 形成下列SQL语句并发送到服务器 UPDATEBANK ACCOUNTSETACCOUNT BALANCE 100WHEREPASEWORD 123456 ANDACCOUNT ID 1938743228 15 3 1Oracle服务器体系结构概述 Oracle服务器工作过程Oracle按下列步骤执行UPDATE语句 1 用户进程通过服务器进程把该语句传给Oracle实例 2 服务器进程在共享池中查找该SQL的可执行版本 如果找到 则转向第 4 步 否则执行第 3 步 3 解析这条SQL语句 并将其可执行版本送入共享池 4 执行此SQL语句 5 服务器进程在数据高速缓存中查找该语句处理的数据 如果有 则转向第 7 步 否则 执行第 6 步 6 从数据库文件中把数据读入数据高速缓冲区 7 在回退段中记录原来的存款数量 8 在重做日志中生成该事务的一个重做日志项 9 将数据高速缓冲区中的存款数据改为取款后的数据 10 LGWR进程在重做日志文件中记录已完成事务 11 DBWn进程在数据文件中记录取款后的数据 16 3 1Oracle服务器体系结构概述 数据字典1 数据字典的概念数据字典是Oracle数据库中最重要的逻辑结构之一 它是由一些只读的基础表和视图组成 在这些基础表中 保存着Oracle服务器所有的信息 17 3 1Oracle服务器体系结构概述 数据字典1 数据字典的概念数据字典中的信息主要包括 数据库物理结构和逻辑结构的定义数据的完整性约束信息数据库的安全信息审计信息数据库运行时的性能和统计信息其它关于数据库的基本信息 18 3 1Oracle服务器体系结构概述 数据字典2 数据字典的结构基础表数据字典中的数据都是保存在基础表中的 用户视图大多数用户通过从视图而不是从基表进行选择来检查数据字典 它们将基表数据解码为有用的信息 使用连接和WHERE子句来简化基表信息 19 3 1Oracle服务器体系结构概述 数据字典3 数据字典的作用获取有关用户 模式对象和存储结构的信息 从而控制和管理服务器工作 任何数据库用户都可从DD中读取关于数据库的信息 从而实现对数据库进行相关的开发 修改和维护等操作 DBA可以从数据字典中获取数据库的各种参数信息和运行状态信息 从而进行有效的数据库管理 Oracle服务器在执行DDL语句时对其进行修改 20 3 1Oracle服务器体系结构概述 数据字典4 用户视图用户视图也叫静态数据字典视图 内容是基本表中的数据 只有基本表改变后 视图的内容才随之改变 21 3 1Oracle服务器体系结构概述 数据字典4 数据字典视图类别 22 3 1Oracle服务器体系结构概述 数据字典4 用户视图 1 USER 为前缀的用户视图通常包含执行查询的用户所拥有的对象的信息 这类视图可以被一般用户使用 例如 用户SCOTT想知道自己拥有那些表 SQL SELECTTABLE NAME TABLESPACE NAMEFROMUSER TABLES 结果将会显示用户SCOTT所拥有的全部表的表名和表空间情况 TABLE NAMETABLESPACE NAME BONUSSYSTEMDEPTSYSTEMEMPSYSTEM 23 3 1Oracle服务器体系结构概述 数据字典4 用户视图 2 ALL 为前缀的用户视图通常包含包括执行查询的用户所拥有的对象信息及授权给该用户所拥有的对象信息 这类视图可以被一般用户使用 例如 用户SCOTT想知道自己能够访问那些表 SQL SELECTTABLE NAME TABLESPACE NAMEFROMALL TABLES 结果将会显示用户SCOTT所能访问的全部表的表名和表空间情况 TABLE NAMETABLESPACE NAME DUALSYSTEMSYSTEM PRIVILEGE MAPSYSTEMTABLE PRIVILEGE MAPSYSTEMSTMT AUDIT OPTION MAPSYSTEM 24 3 1Oracle服务器体系结构概述 数据字典4 用户视图 3 DBA 为前缀的用户视图则包含所有数据库对象的信息 而不管其所有者是谁 这类视图只能被具有DBA权限的用户或被授予了SELECTANYTABLE权限的用户使用 如 以用户SCOTT登录Oracle服务器 执行下述语句 SQL SELECTTABLE NAME TABLESPACE NAMEFROMDBA TABLES 结果将会显示如下提示信息 ERROR位于第1行 ORA 00942 表或视图不存在 25 3 1Oracle服务器体系结构概述 数据字典4 用户视图现在以用户SYSTEM登录Oracle服务器 查询数据库用户信息 SQL SELECTTABLE NAME TABLESPACE NAMEFROMDBA TABLES 结果将会显示系统中所有表的表名和表空间情况 TABLE NAMETABLESPACE NAME SEG SYSTEMCLU SYSTEMOBJ SYSTEM 26 常用数据字典用户视图 说明 每个视图都对应着一个 DBA 一个 ALL 和一个 USER 视图 27 Oracle服务器体系结构概述 数据字典5 动态性能表 V 视图Oracle服务器在运行过程中 会将当前服务器的运行状态记录在内存中的一些 虚拟 表中 这些 虚拟 表称之为动态性能表 Oracle在动态性能表的基础上建立了动态性能视图 这些动态性能视图由前缀V 标示 其公共同义词具有前缀V 或GV 因此 动态性能视图一般又称为V 视图 28 常用的动态性能视图 29 Oracle服务器体系结构概述 数据字典例如 使用V SGA视图查询SGA情况 首先用SYS帐户 以SYSDBA连接身份登录SQL Plus 执行下列命令 SQL SELECT FROMV SGA 结果显示为 NAMEVALUE FixedSize453492VariableSize109051904DatabaseBuffers25165824 30 Oracle服务器体系结构概述 数据字典例如 使用V FIXED TABLE视图可看所有动态性能表和动态性能视图的信息 SQL SELECT FROMV FIXED TABLE 结果显示为 NAMEOBJECT IDTYPETABLE NUM X KQFTA4294950912TABLE0X KQFVI4294950913TABLE1X KQFVT4294951149TABLE2 31 3 1Oracle服务器体系结构概述 数据字典6 其它视图例如 下面的代码以另一种方式显示当前用户 如 scott 已创建的所有表Select fromtab TNAMETABTYPECLUSTERID ACCOUNTTABLEBONUSTABLEDEPTTABLEEMPTABLERECEIPTTABLESALGRADETABLE已选择6行 32 3 2Oracle实例 Oracle实例是运行在内存中的Oracle软件 主要包括Oracle内存结构和一些Oracle进程 在启动Oracle服务器时 实际上是在内存中创建一个Oracle实例 然后由这个实例访问和控制数据库文件的存取 33 3 2Oracle实例 实例的概念1 实例实例就是运行状态下的Oracle软件 主要是由内存结构和一些进程组成 在Oracle中 每一个数据库至少有一个与之对应的实例 但一个实例只能打开和使用一个数据库 34 Oracle体系结构 OS RAM DISK Net 35 Oracle实例 36 3 2Oracle实例 实例的概念2 实例的组成系统全局区SGA 后台进程 37 3 2Oracle实例 实例的概念实例可以实现数据库的访问和控制功能 单节点服务器多节点服务器 38 3 2Oracle实例 实例的概念例如 假定有一台计算机上有两个数据库 分别称作ORCL和TEACH 如果这两个数据库分别有自己的SGA和独立的Oracle服务器进程集 那么就有了两个数据库实例 为了不致使这两个数据库混淆 每个实例都要用称为SID SystemIdentifier 系统标识符 的符号来标识 39 3 3Oracle内存结构 内存结构是Oracle服务器体系结构中最重要的组成部分之一 是决定Oracle服务器整体性能的关键因素 40 3 3Oracle内存结构 内存结构的组成系统全局区 SGA 在实例启动的时候分配 是Oracle实例中的一个基本部分程序全局区 PGA 服务器进程启动时分配 与SGA区不同的是 PGA不是一个共享全局区 而是一个私有区 41 3 2Oracle内存结构 内存结构的组成Oracle内存结构保存有以下信息 解析后的SQL语句和PL SQL程序代码连接数据库的所有会话信息缓存数据 包括用户执行SQL语句和PL SQL程序生成的数据和重做日志数据Oracle运行所需要的信息 如数据字典信息等Oracle进程共享和通信所需要的信息 例如锁信息 42 3 2Oracle内存结构 系统全局区 1 SGA的结构数据库高速缓存 DatabaseBufferCache 重做日志缓存 RedoLogBuffer 共享池 SharedPool Java池 JavaPool 大型池 LargePool 数据字典高速缓存 DataDictionaryCache 其它信息存储结构 43 SGA结构图 44 3 2 1系统全局区 SGA 数据库高速缓存数据库高速缓存 DatabaseBufferCache 是SGA的一个缓冲存储区 暂存有从数据文件中读取的数据 Oracle可以对这些数据进行各种数据库操作 并且连接到Oracle数据库的所有用户可以共享其中的数据 45 数据库高速缓存 DatabaseBufferCache 存放最近使用的数据采用最近最少使用 LRU 算法来管理空间 有关参数 db block buffersdb block size 3 2 1系统全局区 SGA 46 重做日志缓存 RedoLogBuffer 存放日志条目由log buffer参数决定大小 3 2 1系统全局区 SGA 47 共享池包括 字典缓冲区 DateDictionaryCache 库缓冲区 LibraryCache 大小由参数SHARED POOL SIZE决定 3 2 1系统全局区 SGA 48 3 2 1系统全局区 SGA 共享池共享池 SharedPool 主要用来存储SQL PL SQL 过程和包 数据字典 字符设置信息和安全属性等 共享池是SGA中最关键的内存结构之一 太小的共享池会严重影响Oracle的性能和可伸缩性 49 共享池1 库高速缓存库高速缓存用来保存已经提交给Oracle的SQL语句 解析并执行过的PL SQL程序 库高速缓存又可分为 共享SQL区在共享SQL区中 保存有执行过的SQL的解析结果和执行计划 共享PL SQL区共享PL SQL区就是存储经过解析 编译后的Oracle程序单元 存储过程 函数 包和触发器等 代码的一块内存区域 3 2 1系统全局区 SGA 50 共享池2 数据字典高速缓存保存数据字典信息也是采取最近最少使用算法来管理空间的 3 2 1系统全局区 SGA 51 大型池1 大型池的概念大型池 LargePool 是用来暂存大块数据的一个内存结构 它不是Oracle实例必须有的 DBA可根据需要选配 在下述情况下 最好配置大型池 在共享服务器模式下 设置大型池可以用来保存会话信息 较多的I O服务操作 设置大型池可作为磁盘I O缓冲区 进行数据库备份或恢复操作 设置大型池可作为磁盘I O缓冲区 3 2 1系统全局区 SGA 52 Java池Java池 JavaPool 是为Java程序设置的 用于存储Java的方法和类定义在共享内存中的表示法 以及在调用结束时移植到Java会话空间的Java对象 Java池是一个静态内存结构 它的大小由JAVA POOL SIZE设置 取值范围没有限制 可根据操作系统而定 Oracle9i的默认值为24MB 3 2 1系统全局区 SGA 53 程序全局区或叫进程全局区 PGA 是一个内存区域 它包含单个进程工作时需要的数据和控制信息 与几个进程共享的SGA正相反 PGA是只被一个进程使用的区域 是不共享的 它类似家中的对讲电话 进程的不同部分可以相互通信 但与外界没有联系 PGA在创建进程时分配 在终止进程时回收 3 2 2程序全局区 PGA 54 3 3进程结构 所有Oracle用户必须通过两类程序才能访问数据库 一类是应用程序或Oracle工具 另一类是Oracle代码 这两类程序构成了Oracle服务器的进程结构 55 进程结构的组成Oracle进程的分类用户进程 UserProcess 用户进程执行的是应用程序代码或Oracle工具代码 Oracle进程Oracle进程执行的是Oracle服务器的代码 它包括服务器进程和后台进程两种 3 3进程结构 56 3 3 1用户进程 用户进程用户通过用户进程连接到Oracle实例 实现用户命令的提交和执行结果的获取功能 当用户运行应用程序时 Oracle自动为用户建立一个用户进程 用户进程通过用户程序接口 UserProgramInterface 简称UPI 在应用程序和服务器进程之间建立起了一个完整的通信连接 通过这个连接 用户和Oracle服务器建立起了会话 最终实现用户访问数据库 57 3 3 2服务器进程 服务器进程主要完成以下功能 对用户发出的SQL语句进行语法分析 编译和执行 在数据库高速缓存中搜索所需的数据 如果数据不在数据库高速缓存中 则从磁盘中读取数据 并将数据复制到数据库高速缓存中 将结果返回给用户 58 服务器进程分类专用服务器进程 DedicatedServerProcess 一个服务器进程只能服务于一个用户进程共享服务器进程 SharedServerProcess 一个服务器进程可以服务于多个用户进程 为多个用户进程共享 3 3 2服务器进程 59 Oracle服务器工作模式专用服务器模式在专用服务器模式中 Oracle为每一个连接到实例上的用户进程创建一个专用的服务器进程 这个专用服务器进程只为该用户进程提供服务 共享服务器模式在共享服务器模式中 Oracle在创建实例时启动一定数量的共享服务器进程 调度进程从服务器进程共享池中取出一个空闲的共享服务器进程为用户进程服务 3 3 2服务器进程 60 专用服务器进程在专用服务器模式下 用户进程和服务器进程的数量是相等的 专用服务器进程随着用户进程的产生而产生 随着用户进程的终止而终止 并始终为一个用户进程服务 3 3 2服务器进程 61 共享服务器进程在共享服务器模式下 用户进程和服务器进程的数量是不相等的 共享服务器进程是在Oracle实例启动时创建的 直到数据库实例停止运行 少数服务进程为任意数量的用户进程提供 3 3 2服务器进程 62 3 3 3后台进程 必须的后台进程包括 DBWn数据库写进程PMON进程监控进程CKPT检查点进程LGWR日志写进程SMON系统监控进程 63 3 3 3后台进程 可选的后台进程包括 ARCn归档进程QMNn队列监控进程CJQ0作业队列进程RECO恢复进程Dnnn调度进程LMS锁管理服务器进程Snnn共享服务器进程 64 3 3 3后台进程 后台进程Oracle为每个实例创建一组后台进程 这些后台进程执行I O操作 监控其它进程工作 维护系统的可靠性 为多个用户的并发访问提供有效的服务 65 66 3 3 3后台进程 后台进程1 DBWn 数据库写进程 DBWn进程负责将数据库高速缓存中 脏 的数据写入到数据文件 在下列情况下 DBWn进程将 脏 数据块写入数据文件 当检查点发生时当数据库高速缓存中 脏 数据块达到一定数量时 在服务器进程需要读入大量的数据文件中的数据 但通过扫描数据库高速缓存没有找到足够的空闲块时发生超时 3秒 时设置表空间为脱机状态时设置表空间为只读状态时删除或删减一个表时备份表空间时 67 3 3 3后台进程 后台进程2 LGWR 日志写进程 LGWR进程是一个管理日志缓冲区的后台进程 负责将重做日志缓冲区的重做项写入到重做日志文件中 在下列情况下 LGWR进程将重做日志缓冲区的数据写入到重做日志文件中 当用户提交一个事务时重做数据占有重做日志缓存1 3时DBWn进程将数据库高速缓存中的 脏 写入数据文件之前每3秒中执行一次LGWR进程日志切换 68 3 3 3后台进程 后台进程3 CKPT 检查点进程 检查点是Oracle设置的触发事件 当检查点发生时 CKPT进程将更新数据文件和控制文件的头信息 DBWn进程将数据库高速缓存中的 脏 数据块写入数据文件 DBWn进程的运行又会启动LGWR进程将重做日志缓存的内容写入重做日志文件 这样就完全同步了数据文件 日志文件和控制文件的内容 69 3 3 3后台进程 后台进程3 CKPT 检查点进程 CKPT工作的检查点包括 在重做日志文件切换时将表空间设置为脱机状态时数据库关闭时根据初始化参数LOG CHECKPOINT INTERVAL LOG CHECKPOINT TIMEOUT LOG CHECKPOINT TO ALERT的设置的时间间隔来确定用户触发 70 3 3 3后台进程 后台进程4 SMON 系统监控进程 SMON进程在实例启动时 执行数据库恢复工作 如果数据库非正常关闭 在数据库再次启动时 SMON自动读取重做日志文件 对数据库进行恢复 除此之外 SMON进程还负责清理临时段 收回不再使用的存储空间 以及对表空间中的存储碎片进行整理合并等工作 71 3 3 3后台进程 后台进程5 PMON 进程监控进程 PMON进程在用户进程出现故障 如用户非正常关闭了应用程序等 时 清除失效的用户进程 释放用户进程所占用的资源 如PMON将回滚未提交的事务 释放锁 释放分配给失败进程的SGA和PGA资源 同SMON进程一样 PMON进程周期性地被唤醒检查是否需要它服务 72 3 3 3后台进程 后台进程6 ARCn 归档进程 当数据库以归档方式运行的时候 ARCn进程负责将写满的重做日志文件复制到一个或多个指定的目录或存储设备中 这些被复制的目标文件被叫做归档日志文件 73 3 3 3后台进程 后台进程7 RECO 恢复进程 RECO进程用于解决分布式数据库环境下由于网络或系统故障而失败的事务 8 Dnnn 调度进程 Dnnn存在于共享服务器模式中 负责接受用户进程的请求 调度服务器进程 并将结果返回给用户 74 3 3 4Oracle服务器工作过程 Oracle按下列步骤执行SELECT语句 1 用户进程通过服务器进程把该语句传给Oracle实例 2 服务器进程在共享池中查找该SQL的可执行版本 如果找到 则转向第 4 步 否则执行第 3 步 3 解析这条SQL语句 并将其可执行版本送入共享池 4 执行此SQL语句 5 服务器进程在数据高速缓存中查找该语句处理的数据 如果有 则转向第 7 步 否则 执行第 6 步 6 从数据库文件中把数据读入数据高速缓冲区 7 用户进程即可通过服务器进程读出此数据 75 Oracle按下列步骤执行UPDATE语句 1 用户进程通过服务器进程把该语句传给Oracle实例 2 服务器进程在共享池中查找该SQL的可执行版本 如果找到 则转向第 4 步 否则执行第 3 步 3 解析这条SQL语句 并将其可执行版本送入共享池 4 执行此SQL语句 5 服务器进程在数据高速缓存中查找该语句处理的数据 如果有 则转向第 7 步 否则 执行第 6 步 6 从数据库文件中把数据读入数据高速缓冲区 7 在回退段中记录原来的存款数量 8 在重做日志中生成该事务的一个重做日志项 9 将数据高速缓冲区中的存款数据改为取款后的数据 10 LGWR进程在重做日志文件中记录已完成事务 11 DBWn进程在数据文件中记录取款后的数据 3 3 4Oracle服务器工作过程 76 3 4Oracle数据库存储结构 Oracle数据库是一个数据集合 它的主要功能是存储和检索数据 Oracle数据库采用了两种存储结构 逻辑存储结构和物理存储结构 这两种结构相互独立 互不影响 逻辑存储结构主要是指在Oracle内部使用的组织和管理数据的数据结构 物理存储结构是Oracle在操作系统中存储和管理数据的方式 即保存数据的Oracle文件在操作系统中的存储结构 77 3 4Oracle数据库逻辑存储结构 Oracle存储结构1 逻辑存储结构块 Block 块是Oracle存储结构中最小的逻辑存储单元 是读写数据文件的最小单位 区 Extent 区是由一定数量连续的块组成的逻辑存储结构 是Oracle进行存储分配的单位 段 Segment 段是由一个或多个区组成的逻辑存储结构 可以用来保存特定的模式对象 表 索引等 段可以分为数据段 索引段 临时段和回退段四类 表空间 Tablespace 表空间是最高一级的逻辑存储单元 是连接逻辑存储结构和物理存储结构之间的桥梁 表空间建立起了两者之间的对应关系 78 Oracle通过表空间 段 区间和数据块 实现磁盘空间使用的细粒度控制 79 3 4Oracle数据库逻辑存储结构 Oracle存储结构2 物理存储结构在操作系统级 Oracle以文件的形式组织和管理数据 而这些文件是存储在物理磁盘上的 是具体的物理存在 因此把这种结构叫物理存储结构 Oracle物理存储结构组成包括 数据文件数据文件用来存储所有的数据库数据 控制文件控制文件用来存储数据库的物理结构等信息 重做日志文件重做日志文件用来记录对数据库的所有修改信息 80 数据库存储结构 81 Database Physical Tablespace Datafile OSblock Oracleblock Segment Extent 数据库存储结构 82 3 4Oracle数据库逻辑存储结构 Oracle存储结构3 模式对象模式是一个数据库对象的集合 表Oracle数据库中基本的数据单元 视图从表或视图中抽取出来的数据的表现形式 序列Oracle自动生成的一个代码唯一的连续数值列 索引一种与表相关的数据结构 利用索引 Oracle能够提高数据检索的性能 程序单元包括存储过程 函数 程序包 触发器等 同义词表 索引 视图或其它模式对象的一个别名 簇一组由于共享公共列而在物理上存放在一起的一个或多个表 83 3 4Oracle数据库逻辑存储结构 块1 标准块是Oracle存储结构的最小单位 是Oracle进行存储管理的最小单元 初始化参数DB BLOCK SIZE指定的数据块被称为标准块 标准数据块是在创建数据库时设定的 数据库创建完成后 该参数就不能改变 84 3 4Oracle数据库逻辑存储结构 区区 Extent 是Oracle进行存储空间分配的最小单位 是由一系列物理上连续的块组成的逻辑存储结构 区存在于段中 是段的组成单位 一个或多个数据块组成区 一个或多个区组成一个段 85 3 4Oracle数据库逻辑存储结构 段1 段的类型在Oracle中 不同类型的模式对象拥有不同类型的段 主要段的类型包括 数据段 DataSegment 数据段用来存储表和簇的数据 主要包括表 分区的表和簇 索引段 IndexSegment 索引段保存索引的索引条目 临时段 TemporarySegment 在临时表空间中保存临时操作的段 回退段 RollbackSegment 回退段主要用来保存数据被事务修改之前的原始数据 86 3 4Oracle数据库逻辑存储结构 表空间表空间 Tablespace 是OracleDB最高层次的逻辑存储结构 是由一系列数据文件组成的集合 其中保存着由段 区和块等逻辑存储结构描述的各种模式对象 表空间是数据文件的集合 也是段的集合 因此 可以将表空间看作是逻辑存储结构和物理存储结构之间的桥梁 表空间建立起了两者之间的对应关系 表空间 Oracle的文件夹 Oracle使用表空间组织数据库 在将数据插入到数据库之前 必须首先建立表空间 然后将数据插入表空间的一个对象中 87 3 4Oracle数据库逻辑存储结构 表空间一个表空间必须包含一个或多个数据文件 但是一个数据文件只能属于一个表空间 一个数据库对象可以在一个数据文件中 也可以在多个数据文件中 88 3 4Oracle数据库逻辑存储结构 表空间每个数据库至少有一个表空间 系统表空间 一个表空间在某一时刻只能属于一个数据库 系统建立表空间的目的是尽量将相同目的的表存放在一起 是为了便于管理及提高使用效率 89 3 4Oracle数据库逻辑存储结构 90 3 4Oracle数据库逻辑存储结构 表空间3 表空间的查询SQL SELECTTABLESPACE NAME STATUSFROMDBA TABLESPACESTABLESPACE NAMESTATUS SYSTEMONLINEUNDOTBS1ONLINETEMPONLINE 91 3 4Oracle数据库逻辑存储结构 表空间3 表空间的查询通过数据字典DBA FREE SPACE查询表空间的可用空间状态 SQL SELECTTABLESPACE NAME SUM BYTES 2FROMDBA FREE SPACE3GROUPBYTABLESPACE NAME 结果显示为 TABLESPACE NAMESUM BYTES CWMLITE11141120DRSYS10813440EXAMPLE524288 其中 SUM BYTES 为总的可用空间 92 3 5Oracle数据库物理存储结构 Oracle数据库的物理结构是指Oracle在运行过程中存储数据的操作系统文件 这些操作系统文件主要包括数据文件 控制文件 重做日志文件和归档日志文件四种类型 数据库物理结构与逻辑结构是相互联系 密不可分的 一个数据库至少由一个表空间组成 一个表空间可以包含一个或多个数据文件 一个数据文件只能属于一个表空间和一个数据库 控制文件 重做日志文件和归档日志文件不是数据文件 不属于某一个表空间 但是每一个数据库必须包括这些文件 93 3 5Oracle数据库物理存储结构 数据文件1 数据文件的种类系统数据文件主要用来存储系统数据 撤销数据文件主要用来存储撤销记录 临时数据文件主要用来暂存临时数据 用户数据文件主要用来存储用户数据 94 3 5Oracle数据库物理存储结构 数据文件2 数据文件的创建在为数据库创建表空间时 Oracle自动为表空间创建一个或几个数据文件 当一个表空间中的数据文件写满后 可以为一个表空间追加一个数据文件 95 3 5Oracle数据库物理存储结构 数据文件4 数据文件的状态脱机状态在脱机状态下 用户不能访问该数据文件上的数据 联机状态在联机状态下 用户可以访问该数据文件上的数据 96 3 5Oracle数据库物理存储结构 数据文件5 临时数据文件的特殊性临时数据文件只能存在于临时表空间中 主要用来存储复杂SQL查询语句产生的临时数据信息 同一般的数据文件相比 它有一定的特殊性 临时数据文件不能设置成LOGGING模式临时数据文件不能设置成只读方式不能对临时数据文件改名不能使用ALTERDATABASE语句增加临时数据文件 97 3 5Oracle数据库物理存储结构 数据文件5 数据文件的查询SQL SELECTNAME STATUS ENABLED BYTESFROMV DATAFILE 结果显示为 NAMESTATUSENABLEDBYTES D ORACLE ORADATA ORADB01 SYSTEM01 DBFSYSTEMREADWRITE419430400D ORACLE ORADATA ORADB01 UNDOTBS01 DBFONLINEREADWRITE209715200D ORACLE ORADATA ORADB01 CWMLITE01 DBFONLINEREADWRITE20971520 98 3 5Oracle数据库物理存储结构 数据文件5 数据文件的查询SQL SELECTFILE NAME TABLESPACE NAME BYTESFROMDBA DATA FILES 结果显示为 FILE NAMETABLESPACE NAMEBYTES D ORACLE ORADATA ORADB01 SYSTEM01 DBFSYSTEM419430400D ORACLE ORADATA ORADB01 UNDOTBS01 DBFUNDOTBS1209715200D ORACLE ORADATA ORADB01 CWMLITE01 DBFCWMLITE20971520 99 3 5Oracle数据库物理存储结构 控制文件1 控制文件的概念控制文件 ControlFiles 是一个非常小的二进制文件 其中存放有Oracle数据库物理结构 数据文件和重做日志文件等 的信息 是Oracle启动和运行所必须的文件 Oracle系统通过控制文件保持数据库的完整性 Integrity 100 3 5Oracle数据库物理存储结构 控制文件2 控制文件的内容控制文件所属的数据库的名字 一个控制文件只能属于一个数据库数据库创建的时间数据文件的名称 位置 联机 脱机状态信息重做日志文件和归档日志文件的名称 位置 联机 脱机状态信息所有表空间信息当前日志序列号最近检查点信息 101 3 5Oracle数据库物理存储结构 控制文件4 控制文件的查询SQL SELECT FROMV CONTROLFILE 结果显示为 NAME D ORACLE ORADATA ORADB01 CONTROL01 CTLD ORACLE ORADATA ORADB01 CONTROL02 CTLD ORACLE ORADATA ORADB01 CONTROL03 CTL 102 3 5Oracle数据库物理存储结构 重做日志文件1 重做日志文件的概念重做日志文件 RedoFiles 是Oracle用来记录用户对数据库进行修改操作的文件 在重做日志文件中 用户所作的任何修改操作都以重做项的形式记录在其中 这些重做项描述了被修改的数据块的信息 是数据库恢复操作的主要依据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中交一公局集团有限公司校园招聘备考考试题库附答案解析
- 2025山东临沂罗开控股集团有限公司及其权属公司招聘工作人员6人考试参考试题及答案解析
- 2025山西阳泉人才发展集团招聘服务工作人员19人备考考试题库附答案解析
- 2025年金华兰溪市市属国企(兰创集团)下半年公开招聘工作人员19人备考考试题库附答案解析
- 2025广东肇庆市高要区公办中小学招聘临聘教师200人备考考试题库附答案解析
- 哲学博士答辩精要
- 2025版泌尿外科疾病常见症状及护理建议分享
- 运动中的数学乐园
- 工厂安全培训效果验证课件
- 神经影像标志物筛选-洞察及研究
- 大学创意写作(第二版)课件 第七章 微短剧剧本与短视频脚本
- 生涯彩虹图完整版本
- DB11∕T 1773-2022 分布式光伏发电工程技术规范
- 第二单元《万以内的加减法(一)》单元作业设计 三年级数学上册
- 输血科岗前培训课件
- 个人述职报告范文汇总参考模板
- 间质性肺炎护理查房内容课件
- 剑桥Think第一级Unit+1+Welcome课件
- 横河CS3000工程师培训资料
- LY/T 3355-2023油茶
- IDC云数据中心机房运维服务解决方案
评论
0/150
提交评论