Oracle10g体系结构.ppt_第1页
Oracle10g体系结构.ppt_第2页
Oracle10g体系结构.ppt_第3页
Oracle10g体系结构.ppt_第4页
Oracle10g体系结构.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

第 2 章 Oracle10g 体系 结构 2.1 概述 2.2 物理存贮结构 2.3 逻辑存贮结构 2.4 内存结构 2.5 进程结构 2.6 数据字典 2.1 概述 nOracle系统的体系结构是指Oracle数据 库服务器的主要组成以及这些组成部 分之间的联系和操作方式。通过介绍 Oracle的体系结构能够清楚地理解 Oracle的工作机制和工作过程,对深刻 理解Oracle数据库非常有帮助。所以, 这部分是Oracle数据库的核心内容。 n从宏观上看,Oracle数据库服务器主要 由两部分组成:数据库和实例。整体结 构如图所示。 (1) 实例(Instance) 实例是由服务器在运行过程中的内存 结构和一系列进程组成的。 (2) 数据库(Database) 数据库是Oracle用于保存数据的一 系列物理结构和逻辑结构。实例与数 据的关系如图所示。 2.2 物理存贮结构 n物理存储结构是指在操作系统下数据 库的文件组织和实际的数据存储等。 从文件的角度看数据库可以分成三个 层次,如图 : 2.2.1 数据文件 2.2.2 重做日志文件 2.2.3 控制文件 2.2.4 归档日志文件 2.2.5 参数文件 2.2.6 口令文件 2.2.7 其它文件 2.2.1 数据文件 n数据文件(Data File)用来存储数据和相关脚本的文件。 Oracle数据库由一个或多个数据文件组成。在数据库内部, 数据与文件有逻辑上的映射关系,允许不同类型的数据分开存 储。 n用于存放所有的数据库数据,数据文件结合在一起就形成了表 空间; n数据文件可以存储两种类型的数据:用户数据和系统数据。 (1) 用户数据 用户数据是指用于应用系统的数据,包括与应用系统的所有相 关信息。如本书的员工管理系统中的员工信息、民族信息、职 位信息、部门信息等。 (2) 系统数据 系统数据是指用于管理用户数据和Oracle数据库本身的数据 。如表的结构、空间、用户、数据文件的位置(存放路径、访 问时间等)。 利用v$datafile动态性能视图,生成 构成数据库的数据文件的列表 nSelect status,bytes,name from v$datafile; 2.2.2 重做日志文件 n重做日志文件(Redo Log File)也称为联 机重做日志文件,用于记录所有的数据变化 ,即操作的信息,是任何数据库的重要组成 部分。 n Oracle数据库以循环方式写日志文件,每 个数据库至少包含两个redo日志文件,一般 是三个日志文件,如图2-5所示。 nOracle系统有两种工作模式: n ARCHIVELOG在覆盖一个重做日志之前, 为其建立一个备份;复制完成之后,再写入一个重 做日志。 由于有了所有事务的拷贝,数据库就可以 从所有类型的失败中恢复,包括用户错误或磁盘崩 溃。 最安全的数据库工作方式。 n NOARCHIVELOG系统不保留旧的重做日志 ,直接写入一个新重做日志将覆盖旧的重做日志信 息。由于在归档模式下,需要占用较多的资源给系 统带来性能方面的问题,所以在默认情况下, Oracle系统运行在非归档模式下。 n 非归档模式具有有限的恢复,主要设计为在例行 故障时得到保护。 确认模式的两种方法如下: 1、 SQLselect log_mode from v$database; (select * from v$logfile;) 2、 SQLarchive log list 查找日志文件方式: 利用v$logfile视图生成数据库联机日志文件的一 个列表,用以查询,该命令需要作为system或有 特权的用户登录实现。 Select member from v$logfile; 2.2.3 控制文件 n每个数据库至少有一个控制文件,一般是三个控制文件,和数 据文件放在同一目录下。控制文件是特定的二进制文件,一般 比较小,其中存放了数据库文件相关的关键信息。 在Windows操作系统下,对应的控制文件是 CONTROL01.DBF、CONTROL02.DBF、CONTROL03.DBF。如 :D:oracleproduct10.2.0 oradatademodbcontrol01.dbf 等。 n数据库控制文件名通过init.ora文件的CONTROL_FILES参数规 定。主要包含信息类型: (1) 数据名 (2) 数据库创建时间 (3) 数据文件和重做日志文件的存放位置 (4) 表空间名 (5) 当前日志序列号 (6) 检查点信息 (7) 关于重做日志和归档的当前状态信息 查看控制文件有两种方法: 1、在参数文件中查找control_files记录; 如:f:oracle_xpproduct10.2.0admintestpfileinit.ora 2、select * from v$controlfile; 2.2.4 归档日志文件 n归档日志文件(Archived Log File)用于保存被覆盖 的重做日志文件。 在归档模式下各日志文件记录满后要被覆盖前, 先由归档进程(ARCH)将被覆盖的信息读出并写到 归档日志文件中,便于恢复操作时需要;然后覆盖 重做日志文件。 非归档模式就是在数据库运行时,日志信息不断 地记录到日志文件组中,当日志文件组记录满后又 重新从第一个日志组开始覆盖写日志信息,这时不 会用到归档日志文件。 查找归档日志文件 利用v$archived_log生成归档日志文件 列表 nSelect name from v$archived_log order by recid; 2.2.5 参数文件 n参数文件SPFILE(Server Parameter File)也称 为初始化文件,是二进制文件,它记录Oracle实例 的基本参数信息,当系统启动时,使用有关参数进 行初始化。这些参数包括数据库实例名( db_name)、控制文件(control_files)的路径 及名称、版本、基本进程等。 n 参数文件在Oracle数据库系统安装时以默认的方 式创建,文件命名为SPFILEsid.ora,其中sid为数 据库实例名。如: D:oracleproduct10.2.0admindemodbp fileinit.ora。 n 除SPFILE之外还有与Oracle数据库相关的参数 文件,如客户端的tnsnames.ora文件、服务器端 的listener.ora文件、sqlnet.ora、cman.ora等文 件。 2.2.6口令文件 n口令文件(Password File)也称为密码文件 ,用于记录用户的口令信息和验证权限的二 进制文件。当用户以sysdba或sysoper身份 登录时,一般要进行口令文件验证。有的情 况下,通过操作系统验证而不需要通过口令 文件验证。 n 口令文件的创建一般要在操作系统下用 orapwd程序来实现。 2.2.7 其它文件 n(1) 警告文件 警告文件(Alert File)是存储数据库系统运行期间例行信 息和出错信息的文本文件。 当数据库安装完成后,产生警告文件的文件名为 alert_sid.log,其中sid是数据库实例的名字。一般警告文件 的路径由BACKGROUD_DUMP_DEST参数指定。如: D:oracleproduct10.2.0admindemodbbdump n(2) 跟踪文件 跟踪文件(Trace File)是Oracle实例在系统出现异常时 由系统自动创建的文本文件。当系统出现错误时,跟踪文件记 录了比警告文件更详细的错误事件信息。 跟踪文件所在路径由参数文件SPFILE.ora的 USER_DUMP_DEST参数指定。在Windows操作系统里跟 踪文件在 D:oracleproduct10.2.0admindemodbudump目 录下。 2.3 逻辑存贮结构 nOracle数据库在逻辑上是可以按照层次进行管理的 ,从大到小分别为:表空间、逻辑对象、段区间和 块.数据库使用者的角度来考虑它的逻辑组成,可以 分成6个层次,如图 : 2.3.1 块 块(Block)是Oracle进行逻辑管理的最基本的单元,数据库进 行读写都是以块为单位进行的,由db_block_size参数决定,如 : db_block_size=8192 2.3.2 区间 区间(Extent) 是Oracle数据库的最小存储单元。由一系列的连 续的块组成的空间,每一次系统分配和回收空间都是以区间为单 位进行的。 2.3.3 段 段(Segment)是表空间中指定类型的逻辑结构,由一个或多 个区间组成。 一个段可以包含来自多个数据文件的盘区,但一个盘区只能来自 一个数据文件; 段有以下类型: n数据段(Data Segments) 对于每一个非聚集的表有一数据段,表的所有数据存放在该段。 每一聚集有一个数据段,剧集中没一个表的数据存储在该段中。 n索引段(Index Segments) 每一个索引有一个索引段,存储索引数据 n回滚段(Rollback Segments) 由dba建立,用于临时存储要撤销的信息,这些信息用于生成读 一致性数据库信息、在数据库恢复时使用,回滚未提交的事务。 n临时段(Temporary Segments) 当以个sql语句需要临时工作去时,由oracle建立。当语句执行完 毕,临时段的范围退回给系统。 2.3.4 方案和方案对象 n每一个数据库用户对应一个方案,方案是方案对象 的一个集合。 n方案对象为直接引用数据库数据的逻辑结构,方案 对象包含如表、视图、索引、聚集、序列、同义词 、数据库链、过程和包等结构。 n方案对象是逻辑数据结构,每种方案对象在磁盘上 没有一个相应文件存储其信息。一个方案对象逻辑 地存储在数据库的一个表空间中,每个对象的数据 物理地包含在表空间的一个或多个数据文件中。 (1) 表 表(Table)又称为数据表,是存储和管理数据的 基本机制,包含一组固定的列。在关系数据库中, 表是二维的,称为关系。每列都有名字和含义,由 两部分组成:数据类型和长度。 用户SYS和SYSTEM拥有的表称为数据字典。数据字 典提供了一个数据库管理的系统数据,由Oracle系 统的脚本文件创建。 (2) 视图 视图(View)是由一个或多个表(或其他视图)中的数据 的一种定制的表示,是用一个查询定义,所以可认为是 一个可存储的查询(Stored Query)或是一个虚表 (Virtual Table)。 (3) 聚集 存储表数据的可选方法,一个聚集是一组表,将具有同一 公共列值的行存储在一起,并且他们经常一起使用。这 些公共列构成聚集码。 如:雇员表和部门表,共享部门号列,可将它们聚集在一 起,聚集码为部门号列,该聚集将每个部门的全部职工 行、该部门的行物理地存储在同一数据块中。 (4)索引 索引(Index)是一种提供在表中快速查找行的数据库结 构。在关系数据库中,为了尽快找到数据,根据条件对 表中的行进行有规则的排列,从而改善数据库性能,又 保证唯一性,可以在表中一列或多列上建立索引。 一旦建立由oracle自动维护和使用,对用户是透明的。 (5)序列生成器 负责产生序列号。 一个序列定义指出一般信息:序列的名 字、上升或下降、序列号之间间距和 其他信息。 同一序列生成器可用于一个和多个表。 所生成的序列号可用于生成唯一的主 码。 2.3.5 表空间 n表空间(Tablespace)是用于存放表、索引、视图 等对象的磁盘逻辑空间,是数据库中最高级的逻辑 存储结构,是数据库的逻辑划分,由一个或多个物 理文件表示。 n每个数据库至少有一个表空间(system表空间) n为便于管理和提高运行效率,可以使用一些附加表 空间来划分用户和应用程序,如user表空间供一般 用户使用,rbs表空间供回滚段使用。 n一个表空间只能属于一个数据库; (1) SYSTEM表空间 (2) SYSAUX表空间 (3) UNDO表空间 (4) USERS表空间 (5) 其它表空间 2.4 内存结构 n在一个实例中,一般有三个主要内存区域:系统全局区(SGA ,System Global Areas)、程序全局区(PGA,Program Global Areas)和用户全局区(UGA,User Global Areas )。 2.4.1 系统全局区 n系统全局区(SGA)是一块内存区域,保 存Oracle系统与数据库用户的共享信 息,包括数据管理、重做日志管理、 SQL程序分析时必需的一些信息。 n设计的主要目的:内存中通信进程的 效率高、速度快。 所有用户进程和服务进程都可以访问 此内存结构。 (1)共享池 n 共享池(Shared Pool)包括两部分:库高速缓存 (Library Cache)和数据字典高速缓存(Data Dict Cache)。 n 库高速缓存存储最近执行的SQL语句文件、解析的 代码、执行计划;执行计划是Oracle执行SQL语句 的内部操作步骤;当第二次执行相同SQL语句时, 可以利用缓存中的语法分析信息加速sql的执行。 n 数据字典高速缓存存储数据字典中最近常用的数据 信息,如用户名、权限、表名等;这是一种“行缓存 ”,即在其中保存的是一条条的记录,而不像其他缓 存那样保存的是缓存块。 n 共享池大小由init.ora文件中的参数 SHARED_POOL_SIZE决定。如语句: n SQLAlter SYSTEM set SHARED_POOL_SIZE=60M (2)数据高速缓存 n 数据高速缓存(Data Buffer Cache)用来存储最 近从数据库中读取数据段的数据块(如表、索引、 聚集簇),大小由参数DB_BLOCK_BUFFERS决 定。由许多小缓冲区组成(缓冲区尺寸数据块尺 寸),下面的初始化参数可以改变大小: nDB_BLOCK_SIZE决定标准数据块大小。 n DB_CACHE_SIZE定义标准数据高速缓存的尺寸 (必须定义) n DB_nK_CACHE_SIZE定义非标准数据高速缓存 的尺寸 n因为数据块缓存区的大小固定,并且其大小通常小 于数据库段所使用的空间,所以不能一次装下内存 中所有的数据库段,通常,数据块缓存区只是数据 库大小的1%到2%,oracle使用LRU算法来管理 可用空间。将最频繁使用的数据保存在存储区中。 (3)重做日志缓存 n重做日志缓存(Redo Log Buffer)记录数据的变 化; n重做项描述对数据库进行的修改,它们写到 redolog之前,事务首先被记录在重做日志缓存的 SGA中,数据库周期地分批向联机重做日志文件中 写重做项的内容,从而优化这个操作; n大小由参数log_buffer决定; n重做日志缓冲区由许多重做记录组成,每条记录记 载了被修改数据块的位置及其变化后的数据。 当数 据库中出现一个事务时,把该事务输入到重做日志 缓冲区;同时受该事务影响的数据块不会立即写入 磁盘。 (4)Java池 Java池(Java Pool)用来为Java代码提供 语法分析。大小由参数JAVA_POOL_SIZE 决定。 Init.ora文件的java_pool_size默 认设置为10M。 (5)大型池 大型池(Large Pool)用来存放与SQL语句 不直接相关的大型内存结构,如在备份和恢 复过程中的数据块复制、执行具有大量排序 操作的SQL语句、执行并行化的数据库操作 等,其大小由参数Large_Pool_Size决定。 2.4.2 程序全局区 n程序全局区(PGA)是为单独的服务器进程保存数据和控制信息的内 存结构,这个内存结构是不能共享的。 当创建一个进程时,就分配一个PGA;当进程结束时,PGA被释 放。PGA一般存放排序区域(Sort Area)、会话信息(Session Information)、游标状态(Cursor State)、堆栈空间(Stack Space)等信息。 n(1) 排序区域(Sort Area):存放排序操作过程中所产生的临时数 据,其参数由SORT_AREA_SIZE定义。如: nSQLselect * from Employee n2 order by EmployeeName n则先将数据读到数据高速缓存,然后排序,将排序后的数据存放到排 序区,再将排序区的数据返回到用户。 n(2) 会话信息(Session Information):应用程序访问Oracle Server时,会话所具有的权限、角色以及会话的性能统计信息放入 该区域。 n(3) 游标状态(Cursor State):运行SQL语句会在共享池中分配一 个上下文区,游标是指向该区的指针,PGA中的游标状态指出了当前 SQL语句所处状态。 n(4)堆栈空间(Stack Space):存放会话变量信息,如: nSQLselect * from Employee where EmployeeNo=:a 2.4.3 用户全局区 n用户全局区(UGA)用于存储会话状态 的内存区域,其位置由服务器运行模 式决定。在专用服务器模式下,UGA会 在PGA中分配并只能由服务器进程访问 。在共享服务器模式下,UGA在大型池 中分配,并可以由任何服务器进程访 问。 2.5 进程结构 当用户连接到Oracle数据库实例并进行事务处理的过程中 ,一定会产生不同类型的进程来实现事务处理。 2.5.1 用户进程 用户进程是用户向服务器发出访问或请求信息。一些软 件或工具可以产生用户进程,实现与数据库的通信,如 SQL*Plus、Oracle Net Manager、Report Builder等 。 2.5.2 服务器进程 服务器进程是接收用户进程信息,并根据请求与数据库 进行通信。这些通信实现数据操作,完成用户对数据库数 据的处理要求。每个服务器进程都有自己的内存区域。 如:某用户查询不在数据库缓存中的数据时,相应的服务器进 程会从数据文件中读取合适的数据块到系统全局区。 优化:可配置oracle,以改变每个服务器进程处理的用户进 程的数量。 A。专用服务器:服务器进程为单个用户进程处理请求; B。共享服务器:让许多用户进程共享少量服务器进程,最小 化服务器进程,最大化可用系统资源。 2.5.3 后台进程 nOracle为每个实例创建后台进程,增 强了为每个用户进程运行的oracle程 序处理的功能。 n每个oracle实例可以使用几个后台进 程; nOracle数据库实例中常见的后台进程 有以下几种: (1)数据库写入进程 将数据高速缓存中修改的块写入 数据文件中。 (2) 日志写入进程 (3) 归档进程 (4) 检查点进程 (5) 系统监控进程(smon) 在一个失败实例进程启动时,执行崩溃恢 复。 (6) 进程监控进程(pmon) 用户进程失败时,执行进程恢复。 (7) 锁进程 (8) 恢复进程 (9) 调度

温馨提示

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

评论

0/150

提交评论