第1章Oracle9i简介.ppt_第1页
第1章Oracle9i简介.ppt_第2页
第1章Oracle9i简介.ppt_第3页
第1章Oracle9i简介.ppt_第4页
第1章Oracle9i简介.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章ORACLE数据库概述 第一章ORACLE数据库概述 本章主要学习目标 理解什么是Oracle的物理存储结构 以及其组成理解Oracle体系的逻辑存储结构理解Oracle体系的逻辑存储结构与物理结构的关系了解Oracle体系的内存管理方式了解什么是数据库实例了解数据库实例的主要后台进程的作用 第一章ORACLE数据库概述 1 1 Oracle9i简介 1 1运行环境Oracle9i服务器软件和Oracle9i客户端软件不支持Windows9X环境 但是可以在客户端安装Oracle8iforWindows9X软件与Oracle9i服务器连接 为了保持Oracle9i服务器的可访问性 建议服务器的操作系统配置如下 lWindowsNT4 0 配置ServerPack6 lWindows2000Server lWindowsXPprofessional lUNIX lLINUX 1 2 ORACLE数据库概述 1 2 1 Oracle的新特点联机事务处理 Onlinetransactionprocessing OLTP 决策支持 Decisionsupport DSS 应用出于数据分析的目的 从数据库查询目标信息的应用 数据仓库 Datawarehousing 应用存取为快速获取 即使最隐秘的 信息而优化过的海量 只读数据库的应用 Oracle9i与高端数据库环境管理一个海量数据库的数据库系统 数据库中或许有几百GB或上TB信息量 并发用户的数量可达成千上万用户数 24 7 52数据库都必须可用 分区表与索引 应用和系统的分区表有许多好处 高性能性因为Oracle可以并行存取它的多个不同分区 所以它可以自动跳过不符合特定的SQL查询条件的分区搜索 高可用性即使磁盘故障导致一个或多个独立分区中的数据成为不可用的 该表完整无缺的分区对于应用仍是可用的 可管理性由于表的分区是独立的存储区域 备份和恢复可以在分区级进行 增加了新的面向对象的大对象的数据类型 UNIX操作系统 May1999 1 2 2 Oracle在数据库市场上的占有率 Windows操作系统 Microsoft 30 5 Oracle 47 3 Other 12 3 IBMDB2 9 9 May1999 1 2 2 Oracle在数据库市场上的占有率 1 3Oracle数据库体系结构 1 3 1Oracle数据库结构Oracle数据库是一个协同工作系统 他由OracleRDBMS及硬件和软件支持环境共同构成 其构成如下图所示 1 3Oracle数据库体系结构 1 3 2Oracle实例一 基本概念数据库 是一个数据容器 它包含了表 索引 视图 簇 过程 函数 包等对象 并对其进行统一的管理 实例 与一个数据库相联系 它是存取和控制数据库的软件机制 RDBMS 实例的组成 实例由SGA 系统全局区 和Oracle进程两部分构成 进程 是操作系统中的一种机制 它是实现资源共享和调度控制的单元 SGA 是一内存区域 存放数据库实例的数据和控制信息 1 3Oracle数据库体系结构 二 Oracle进程进程的分类用户进程 用户的一个应用程序 服务器进程 对SQL进行语法分析和执行 将数据读入缓冲区 将结果返回用户 后台进程 它不属于任何用户进程 其职责为协调所有用户使用Oracle资源 实例启动时随之启动 1 3Oracle数据库体系结构 三 Oracle进程结构 SGA 共享池 数据缓冲区 日志缓冲区 调度进程 数据文件 日志文件 控制文件 DBWR LGWR ARCH CKPT 响应队列 请求队列 RECO PMON SMON ORACLE的进程结构 数据库写进程 采用最近最少使用算法 将缓冲区写入数据库文件 日志写进程 将日志缓冲区的日志项写入日志文件 归档进程 当在线日志已满时 则将其拷贝到指定设备上 系统监控 负责实例的启动与恢复 清理不再使用的临时段及合并相邻的自由块 进程监控 用户进程出现故障时 执行恢复 清理内存区和释放该进程使用的资源 恢复进程 在分布式事务处理中工作 当不能与远程服务器连接时 每隔一段时间后再进行连接 检查点 在检查点出现时 负责对全部数据文件头进行修改 1 3Oracle数据库体系结构 四 各进程的功能DBWR 数据库写 采用最近最少使用算法 将缓冲区写入数据库文件 LGWR 日志写 将日志缓冲区的日志项写入日志文件 CKPT 检查点 在检查点出现时 负责对全部数据文件头进行修改 SMON 系统监控 负责实例的启动与恢复 负责清理不再使用的临时段及合并相邻的自由块 PMON 进程监控 在用户进程出现故障时 执行恢复 清理内存区和释放该进程使用的资源 RECO 恢复进程 只在分布式事务处理中工作 当不能与远程服务器连接时 每隔一段时间后再进行连接 ARCH 归档进程 当在线日志已满时 则将其拷贝到指定设备上 LCKN 封锁进程 用于并行服务器系统 主要完成实例间的封锁 1 3Oracle数据库体系结构 1 3 3 多进程Oracle实例的进程配置方案专用服务器进程结构 多线索服务器进程结构 1 3Oracle数据库体系结构 1 专用服务器结构 1 3Oracle数据库体系结构 2 多线索服务器进程 1 4Oracle的内存结构 1 4 1Oracle在内存中存放的信息内存结构是Oracle数据库体系结构中最为重要的部分之一 内存也是影响数据库性能的主要因素 在Oracle数据库中 服务器内存的大小将直接影响数据库的运行速度 特别是多个用户连接数据库时 服务器必须有足够的内存支持 否则有的用户可能连接不到服务器 或查询速度明显下降 SGA系统全局区PGA程序全局区排序区 大型池Java池 1 4Oracle的内存结构 二 基本内存信息1 SGA 系统全局区 SQL语句 二 基本内存信息1 SGA 系统全局区系统全局区 SGA 是一组为系统分配的共享的内存结构 可以包含一个数据库实例的数据或控制信息 如果多个用户连接到同一个数据库实例 则在实例的SGA中数据可为多个用户共享 在数据库实例启动时 SGA的内存被自动分配 当数据库实例关闭时 SGA被回收 1 4Oracle的内存结构 1 4Oracle的内存结构 2 PGA程序全局区 程序全局区 PGA 是包含单独用户或服务器数据和控制信息的内存区域 PGA是在用户连接到Oracle数据库 并创建一个会话时 由Oracle自动分配的 与SGA不同 PGA是非共享区 只有服务进程本身才能访问它自己的PGA区 每个服务进程都有它自己的PGA区 各个服务进程在各自的PGA区中保存自身所使用到的各种数据 PGA的内容与结构和数据库的操作模式有关 在专用服务器模式下和共享服务器模式下 PGA有着不同的结构和内容 1 4Oracle的内存结构 3 排序区 Oracle利用该内存排序数据排序区用于为排序显示的SQL语句提供内存空间 系统使用专门的内存区域进行数据的排序 这部分空间称为排序区 在Oracle数据库中 用户数据的排序有两个区域 一个是内存排序区 另一个是磁盘临时段 在排序区能够满足要求的情况下 系统将优先使用排序区 如果内存不够 Oracle将自动使用磁盘临时表空间进行排序 使用排序区可以显著提高排序操作的速度 排序区的大小由参数SORT AREA SIZE设置 1 4Oracle的内存结构 5 大型池大池是数据库管理员能够配置的可选内存空间 可以用于不同类型的内存存储 在执行某些特定类型的操作时 可能需要在内存中使用大量的缓存 这些特定类型的操作包括 数据库的备份或恢复操作 执行具有大量排序操作的SQL语句 执行并行化的数据库操作 6 Java池由于Oracle提供了对Java语言的支持 所以系统提供了Java池 Java池主要用于为Java语言提供语法分析区 Java池的大小由参数JAVA POOL SIZE确定 1 5Oracle处理SQL语言的过程 1 5 1专用服务进程的SQL语句运行 1 用户向服务器发送连接请求 2 服务器上的监听进程检验出客户数据库应用的连接请求 并在服务器上为用户进程建立专用服务器进程 3 用户发出单个SQL语句 4 专用服务器接收该语句 并用以下两种方法对SQL语句进行处理 如果在共享池中没有一个共享SQL区包含有相同的SQL语句 在共享池中为该语句分配一新的共享SQL区 如果在共享池的共享SQL区中包含相同的SQL语句 服务器进程可利用已存在的共享SQL区执行客户的SQL语句 5 检查用户对数据的存取权限 6 如果需要 服务器进程从数据文件中检索数据块 或者使用已存储在实例SGA中的缓冲存储区的数据块 7 服务器进程执行SQL语句 8 如果成功运行 服务器返回运行结果 如果不成功 将发送相应的错误信息 1 5Oracle处理SQL语言的过程 1 5 2使用多线程服务器的Oracle的运行1 在客户工作站运行一数据库应用 用户请求与服务器连接 2 服务器上的监听进程检索出用户进程的连接请求 3 用户发出单个SQL语句 4 调度进程将用户进程的放入请求队列 该队列位于SGA中 5 一个可用共享服务器检查请求队列 从队列中检索出下一个SQL语句并进行处理 处理过程同专用的服务器进程相同 6 当共享服务器进程完成SQL语句处理后 该进程将结果放置到响应队列 7 调度进程检查响应队列 并将完成的请求送回发送请求的用户进程 1 6Oracle的存储技术 1 6 1Oracle的三级模式结构 1 6 1Oracle的三级模式结构 外模式 用户看到的数据库的逻辑结构 也称为模式对象 它组成了一个数据库的关系设计 主要包括 表 视图 索引 序列 聚集 触发器 过程等 概念模式 数据库管理员看到的数据库的逻辑结构 它支配一个数据库的物理空间如何使用 主要包括 表空间 段 区间 数据块 内模式 数据库的物理结构 它们为数据信息提供真正的物理存储 主要包括 控制文件 日志文件 数据文件 1 6 2Oracle数据库的物理结构 1 6 2Oracle数据库的物理结构 一 数据文件数据文件用来存储数据库中的全部数据 如数据库表中的数据和索引数据 通常为后缀名为 dbf格式的文件 一个数据库有多个数据文件 它的特征是 1 一个数据文件仅与一个表空间联系 2 一个表空间由一个或多个数据文件组成 二 日志文件记录对数据库所数据的全部变更 如增加 删除 修改 以便在系统发生故障时 用它对数据库进行恢复 名字通常为Log dbf格式 Oracle有两种日志归档模式 ARCHIVELOG 归档日志 或NOARCHIVELOG 非归档日志 模式 1 6 2Oracle数据库的物理结构 三 控制文件每个Oracle数据库都有相应的控制文件 用于打开 存取数据库 它们是较小的二进制文件 其中记录了数据库的物理结构 名字通常为Ctr ctl格式它主要记录当前系统的物理状态 包含表空间 数据文件 日志文件和系统备份的信息 例 数据库名 数据文件和日志文件的名字和位置及数据库建立的日期等信息 当数据库实例启动时 它必须打开 当数据库的物理组成更改时 Oracle自动更改控制文件的内容 当控制文件被破坏时 数据库无法启动 1 6 2Oracle数据库的物理结构 四 初始化参数文件初始化参数文件文件是一个ASCII文本文件 记录Oracle数据库运行时的一些重要参数 名字通常为init ora 每个Oracle数据库和实例都有它自己的init ora文件 Oracle实例启动时 会自动读取一个初始化参数文件 来初始化Oracle数据库 Oracle9i新引入一个服务器参数文件 SPFILE 可以被认为是在Oracle数据库服务器端的初始化参数文件 存储在该文件中的初始化参数是永久的 服务器参数文件是二进制文件 不能使用一个文本编辑器浏览或编辑 Oracle提供了浏览和查看相关参数的另外接口 1表空间 2段 3区 4数据库块 1 6 3数据库的逻辑结构 5模式对象 概念模式 外模式 1 6 3数据库的逻辑结构 一 表空间1 表空间的定义2 表空间的分类3 表空间的使用4 表空间中对象的存储 1 6 3数据库的逻辑结构 1 表空间定义一个数据库被划分为一个或多个逻辑单位该逻辑单位称为表空间 2 表空间的分类Oracle中除了用户创建的存放数据对象的数据表空间外 还有以下类型的表空间 1 System表空间 2 回滚表空间 RollBackTableSpace 3 临时表空间 TempTableSpace 1 6 3数据库的逻辑结构 3 表空间的使用 1 6 3数据库的逻辑结构 在数据库中使用多个表空间具有如下优势 1 能够将数据字典与用户数据分离开来 避免由于字典对象和用户对象保存在同一个数据文件中而产生的I O冲突 2 能够将回滚数据与用户数据分离开来 避免由于硬盘损坏而导致永久性的数据丢失 3 能够将表空间的数据文件分散保存到不同硬盘上 平均分布物理I O操作 4 能够将某个表空间设置为脱机状态或联机状态 以便对数据库的一部分进行备份和恢复 5 能够将某个表空间设置为只读状态 从而将数据库的一部分设置为只读状态 6 能够为某种特殊用途专门设置一个表空间 比如临时表空间等 以优化表空间的使用效率 7 能够更加灵活地为用户设置表空间限额 1 6 3数据库的逻辑结构 3 表空间中对象的存储如果表空间只对应一个数据文件 该表空间中所有的对象都存储在此数据文件中 如果表空间对应于多个数据文件 可将一个对象的数据存储在该表空间的任意一个数据文件中 也可将同一个对象的数据分布在表空间的多个数据文件中 1 6 3数据库的逻辑结构 1 6 3数据库的逻辑结构 4 表空间管理规则每个数据库可以逻辑地划分为一个或多个表空间 每个表空间由一个或多个数据文件组成表空间通过增加数据文件来扩大 也可以增加某个数据文件的大小来扩大 一个数据文件不能跨越多个表空间 1 6 3数据库的逻辑结构 二 段1 定义段是模式对象数据的存储单位 它是数据库的某个对象使用的全部区间的集合 在数据库中有以下几种形式的段 数据段索引段临时段回滚段LOB段 1 6 3数据库的逻辑结构 1 数据段Oracle为不同类型的数据库对象创建不同类型的段 例如 一个表对应一个数据段 数据段中保存的是表中的记录 2 索引段在Oracle数据库中每个未分区索引都有一个索引段保存索引中的索引条目 对于一个分区索引 每个分区都有一个索引段保存它的数据 1 6 3数据库的逻辑结构 3 临时段当为一个大表创建索引时 Oracle一般必须分配一些临时系统空间 以确保在创建索引段之前 能排序全部的索引项 当用户使用SQL语句进行排序和汇总时 需要分配临时段 语句完成后 Oracle将段释放回表空间 以便其他对象能够使用这些空间 1 6 3数据库的逻辑结构 4 回滚段回滚段用于存放数据修改之前的值 包括数据修改之前的位置和值 回滚段的作用主要有以下几方面 事务回滚事务恢复读一致性 5 LOB段如果表中含有CLOB和BLOB等大型对象数据时 系统将创建LOB段以存储相应的大型数据 1 6 3数据库的逻辑结构 三 区间1 定义区间是由很多连续的数据块组成的数据库存储空间 缺省情况下 数据库会使用表空间的存储参数来管理它们的区 1 6 3数据库的逻辑结构 2 主要的几个存储参数 INITIAL 段的初始区间 段建立时分配的第一个区的大小 NEXT 后续区间 段内分配的下一个增量区大小 MAXEXTENTS 最大区间数 分配给段的区总数 MINEXTENTS 最小区间数 建立段时分配的区的总数 也就是段的最小区数量 PCTINCREASE 增长因子 为段分配的每个增量区超过上一个区的百分比 1 6 3数据库的逻辑结构 3 表空间的存储设置参数在建立表空间时 可以指明表空间的缺省区间存储配置 当在一个表空间中创建新的表时 如果没有为新建表指定区间设置时 表的段采取表空间的缺省区间存储设置 例如CREATETABLESPACEuser02DATAFILE d u02 oracle data tbdata05 dbf SIZE50MDEFAULTSTORAGE INITIAL50KNEXT50KMINEXTENTS2MAXEXTENTS50PCTINCREASE20 1 6 3数据库的逻辑结构 下面的语句改变一个表空间的缺省区间存储设置 ALTERTABLESPACEuser02DEFAULTSTORAGE INITIAL100KNEXTlOOKMINEXTENTS3MAXEXTENTS100PCTINCREASE0 1 6 3数据库的逻辑结构 1 数据块是数据库最小的I O单位 当创建一个数据库时 可以指定数据库要使用的块的大小 数据库的块大小必须等于服务器操作系统块的大小或是它的倍数 例如 如果服务器的操作系统块大小为512b 在这种服务器上的数据库的块大小可以是512b 1024b和2048不 等等 数据块的大小由参数db block size确定 1 6 3数据库的逻辑结构 2 Oracle允许控制如何使用段数据块内部的空间 可以设置以下两个参数 PCTFREE 控制为将来要进行的记录更新保留的数据块空间的数量 当一个数据块中空闲的空间小于该值时 Oracle从相应段的空闲列表中删除该块 PCTUSED 控制何时将数据块放回相应段的空闲列表 当一个数据块已使用的空间小于该值时 Oracle将数据块放回相应段的空闲列表中 例 CREATETABLEorders ordernochar10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论