Oracle体系结构_培训_第1页
Oracle体系结构_培训_第2页
Oracle体系结构_培训_第3页
Oracle体系结构_培训_第4页
Oracle体系结构_培训_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1、Oracle体系结构 郑州蓝讯网络科技有限公司 2010-10-20u 物理结构u 逻辑结构u 内存结构u 数据库实例与进程u 数据字典Oracle体系结构Oracle体系结构概述2022-2-213u 数据文件u 日志文件u 控制文件u 参数文件 物理结构Oracle物理存储结构数据库文件PasswordfileParameterfileArchivedlog filesControl filesData files Redo logfilesDatabase2022-2-216 数据文件用来存储数据库中的全部数据,如数据库表中的数据和索引数据。通常为后缀名为.dbf格式的文件。数据文件数据

2、文件 日志文件(又称重做日志文件),用于记录数据库所做的全部变更(如增加、删除、修改),以便在系统发生故障时,用它对数据库进行恢复。名字通常为Log*.dbf格式日志文件日志文件 根据在事务信息将被覆盖时,是否应该将文件归档,数据库分为以下两种归档模式:ARCHIVELOG(归档日志)或NOARCHIVELOG(非归档日志)模式。 归档模式归档模式 每个Oracle数据库都有相应的控制文件,用于打开、存取数据库。它们是较小的二进制文件,其中记录了数据库的物理结构。名字通常为Ctr*.ctl格式控制文件控制文件 控制文件中的内容只能够由Oracle本身来修改。每个数据库必须至少拥有一个控制文件。

3、一个数据库也可以同时拥有多个控制文件,但是一个控制文件只能属于一个数据库。控制文件控制文件参数文件参数文件 参数文件是一个ASCII文本文件,记录Oracle数据库运行时的一些重要参数。名字通常为initsid*.ora格式,如:initCIMS.ora,SID相当于它所控制的数据库的标识符。每个Oracle数据库和实例都有它自己惟一的init.ora文件。 Oracle9i新引入一个服务器参数文件(SPFILE),一个服务器参数文件(SPFILE)可以被认为是在Oracle数据库服务器端的初始化参数文件。存储在一个服务器参数文件的初始化参数是永久的,它提供了由Oracle数据库服务器自我调节

4、的一个基础。服务器参数文件是二进制文件,不能使用一个文本编辑器浏览或编辑。参数文件参数文件表空间段区数据库块逻辑结构模式对象 Oracle逻辑结构图表空间的分类表空间的使用表空间中对象的存储表空间 数数据据库库 Data1.Ora 1MB Data2.Ora 1MB SYSTEM 表空间 Data3.Ora 4MB USER 表空间 数据文件 数据库的控制空间分配(例如表和索引)数据库的控制空间分配(例如表和索引)为数据库用户设置空间配额为数据库用户设置空间配额 备份或恢复数据备份或恢复数据 Oracle中除了用户创建的存放数据对象的数据表空间外,还有以下类型的表空间:(1)System表空间

5、(2)回滚表空间(RollBack TableSpace)(3)临时表空间(Temp TableSpace)1表空间的分类在数据库中使用多个表空间具有如下优势: (1)能够将数据字典与用户数据分离开来,避免由于字典对象和用户对象保存在同一个数据文件中而产生的10冲突。 (2)能够将回退数据与用户数据分离开来,避免由于硬盘损坏而导致永久性的数据丢失。 (3)能够将表空间的数据文件分散保存到不同硬盘上,平均分布物理10操作。2表空间的使用 (4)能够将某个表空间设置为脱机状态或联机状态,以便对数据库的一部分进行备份和恢复。 (5)能够将某个表空间设置为只读状态,从而将数据库的一部分设置为只读状态。

6、 (6)能够为某种特殊用途专门设置一个表空间,比如临时表空间等,以优化表空间的使用效率。 (7)能够更加灵活地为用户设置表空间限额。 如果表空间只对应一个数据文件,该表空间中所有的对象都存储在此数据文件中。如果表空间对应于多个数据文件,可将一个对象的数据存储在该表空间的任意一个数据文件中,也可将同一个对象的数据分布在表空间的多个数据文件中。3表空间中对象的存储 数据段段 索引段 临时段 回退段 数据段中保存的是表中的记录。1数据段 在Oracle数据库中每个未分区索引都有一个索引段保存索引中的索引条目。对于一个分区索引,每个分区都有一个索引段保存它的数据。2索引段 当处理查询时,Oracle可

7、能会需要使用到一些临时存储空间,用于临时保存解析过的查询语句以及在排序过程中产生的临时数据。Oracle会自动在专门用于存储临时数据的表空间为操作分配临时段。3临时段 回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值)。回滚段的作用主要有以下几方面:(1)事务回滚(2)事务恢复(3)读一致性4回滚段 回滚段数据库操作数据库操作老旧的数据老旧的数据产生新的数产生新的数据据回滚段回滚段表表 区是由很多连续的数据块组成的数据库存储空间。缺省情况下,数据库会使用表空间中默认的存储参数来管理他们的区。区 数据库块也称逻辑块或Oracle块,它对应磁盘上一个或多个物理块,它的大小由初始化参数db

8、_block_size(在文件init.ora中)决定,典型的大小是8k。数据库块Oracle存储结构 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 2 K b 数据块扩展区 扩

9、展区 段 Pckfree和Pctused两个参数用来优化数据块空间的使用。PCTFREE:块中保留用于UPDATE操作的空间百分比,当数据占用的空间达到此上限时,新的数据将不能再插入到此块中;PCTUSED:指定块中数据使用空间的最低百分比; Oracle数据库的模式对象包括表、视图、序列、同义词、索引、触发器、存储过程等。 模式对象 内存结构 系统全局区程序全局区排序区 系统全局区(SGA,System Global Area.)是内存结构的主要组成部分,是Oracle为一个实例分配的一组共享内存缓冲区,保存着Oracle系统与所有数据库用户的共享信息,包括数据维护、SQL语句分析,重做日志

10、管理等。是实例的主要部分。系统全局区 数据块缓冲区中存放着Oracle系统最近从数据文件中读取的数据块。数据块缓冲区又称用户数据高速缓冲区,为所有与该实例相链接的用户进程所共享。 1数据块缓冲区数据缓冲区 存储最近使用的块,包括 DB_CACHE_SIZE、DB_KEEP_CACHE_SIZE以及DB_BK_CACHE_SIZE Data buffercache数据块缓冲区的容量受物理容量限制。在Oracle9i中,数据库缓存的大小可以直接由初始化参数DB_ACHESIZE指定,该参数可以直接以K字节或M字节为单位来设置数据库缓存的大小。 字典缓冲区用于保存数据字典中的行。数据字典缓冲区也通过

11、最近最少使用(LRU)算法来管理。大小由数据库内部管理。字典缓存区是SQL共享池的一部分,共享池的大小(以字节为单位)由数据库文件init.ora中的SHARED_POOL_SIZE参数来设置。2字典缓冲区 对数据库进行修改的任何事务(Transaction)在记录到重做日志之前都必须首先放到重做日志缓冲区(Redo Log Buffer.)中。重做日志缓冲区是专为此开辟的一块内存区域,重做日志缓存中的内容将被LGWR后台进程随时写入重做日志文件。 3重做日志缓冲区 重做日志缓冲区重做日志缓冲区o大小由LOG_BUFFER确定o记录实例做出的修改o顺序使用o是循环缓冲区Redo logbuff

12、er重做日志缓存是一个循环缓存区,在使用时从顶端向底端写入数据,然后再返回到缓冲区的起始点循环写入。重做日志缓冲区的大小(以字节为单位)由init.ora文件中的LOGBUFFER参数决定。 数据库数据库数据库实例数据库实例 LGWRSGARedo logbufferData buffercacheShared poolCOMMIT处理1234用户进程用户进程服务进程服务进程Control filesData files Redo logfiles共享SQL池(Shared SQL Pool)相当于程序高速缓冲区,所有的用户程序都存放在共享SQL池中。SQL共享池包括库高速缓存、数据字典高速缓

13、存和服务器控制结构。4共享SQL池 共享池的大小取决于init.ora文件参数SHARED_POOL_SIZE,它是以字节为单位的。用户必须将这个值设得足够大,以确保有足够的可用空间来装载和存储PL/SQL块和SQL语句。 库缓存中包含SQL语句文本、分析代码和执行计划 数据字典缓存中包含表、字段和其他对象的定义与权限 共享池的大小由SHARED_POOL_SIZE确定 Shared poolDatadictionarycacheLibrarycache共享池SGARedo logbufferData buffercacheShared poolDatabase11DML 语句的处理234UP

14、DATE emp .UserprocessServerprocessControl filesData files Redo logfiles Java池为Java命令提供语法分析。5Java池 缓冲池把大数据集与其他的应用程序分开,以减少它们争夺数据块缓冲区内相同的资源。可以在SGA中创建多个缓冲池 。6多缓冲池 程序全局区PGA(Program Global Area,PGA),是单个Oracle进程使用的内存区域,不属于实例的内存结构。它含有单个进程工作时需要的数据和控制信息,PGA是非共享的,只有服务进程本身才能够访问它自己的PGA区。程序全局区 排序区存在于请求排序的用户进程的内存中

15、,由于排序需要内存空间,Oracle利用该内存排序数据,这部分空间称为排序区。该空间的大小为适应排序数据量的大小,可增长,但受初始化参数SORT_AREA_SIZER所限制。 排序区 数据库实例与进程Oracle数据库实例进程数据库是指物理上的数据库文件或逻辑上的数据库结构。 基于之上管理和控制物理数据库的软件系统,称为数据库管理系统(DBMS)。数据库实例是指软件系统中用来访问数据库文件集的存储结构以及后台进程的集合,它是存取和控制数据库的软件机制。 Oracle数据库实例 数据库实例Background processes一个Oracle 实例:o是访问Oracle 数据库的一种方法o总是

16、打开一个并且仅仅一个数据库Memory structuresInstanceSGARedo logbufferData buffercacheShared pool PMON DBW0SMON LGWRCKPTOthers进程又称任务,是操作系统中一个极为重要的概念。一个进程执行一组操作,完成一个特定的任务。对Oracle数据库管理系统来说,进程由用户进程、服务器进程和后台进程所组成。进程与程序的区别在于前者是一个动态概念,后者是一个静态实体;程序仅仅是指令的有序集合,而进程则强调执行过程。进程可以动态地创建,完成任务后即会消亡。进程 当用户运行一个应用程序时,系统就为它建立一个用户进程。用户

17、进程执行的是一个应用程序或Oracle工具程序的代码,以完成用户所指定的任务。用户进程不是实例。1用户进程服务器进程 服务器进程处理与应用程序相连的用户进程的请求,它与用户进程相通讯,为相连的用户进程的Oracle请求服务。2服务器进程 Oracle的后台进程主要包括:(1)SMON系统监控进程(system monitor)(2)PMON进程监控进程(process monitor)(3)DBWR数据库写进程(4)LGWR日志文件写进程(5)ARCH归档进程(archiver process)(6)RECO恢复进程(7)LCKN封锁进程3后台进程 日志写 (LGWR)LGWR 在下列情况下写

18、日志:o提交o重做日志缓冲区三分之一满o重做超过1 MBo在DBW0写之前DatabaseInstanceLGWRSGARedo logbufferData buffercacheShared poolControl filesData files Redo logfiles其它实例进程o其它需要的进程:n数据库写(DBW0)n进程监测(PMON)n系统监测(SMON)n检查点(CKPT)o在产品数据库中通常需要创建归档进程 (ARC0)DatabaseControl filesData files Redo logfiles数据库写 (DBW0)DBW0写的时机:o脏缓冲区多o空闲缓冲区很少

19、o超时o发生检查点InstanceSGARedo logbufferData buffercacheShared poolDBW0SMON: 系统监测o自动恢复实例n前滚重做日志中的修改n打开数据库允许用户访问n会滚未提交的事务o合并空闲空间o释放临时段PMON: 进程监测在进程失败后执行清除工作:o回滚事务o释放锁o释放其他资源归档o数据库归档模式n对于磁盘失败后不需要恢复的数据库使用NOARCHIVELOG模式n对于产品数据库使用ARCHIVELOGoARC0 进程n自动归档联机重做日志n保留对数据库做出的所有修改数据字典数据字典 数据字典的结构数据字典的用途数据字典是Oracle数据库的核心组件,它是对用户来说为只读类型的表和视图组成。在其中保存着关于数据库系统本身以及其中存储的所有对象的基本信息。 数据库对象所有的框架对象的定义(表、视图、索引、群集、同义词、序列、过程、函数、包、触发器等)为框架对象如何分配和使用空间列的默认值完整性约束信息数据库安全信息,包括用户、权限、角色等审计信息一个数据字典包括基础表,动态性能视图及数据字典视图。数据字典视图又包含ALL视图,USER视图和DBA视图。数据字典的结构 1基础表基础表 存储相关数据库信息的表,这些数据库的信息包括表、索引、约束,以及所有其他数据库对象结构的信息。它们属于S

温馨提示

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

评论

0/150

提交评论