版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 Oracle的体系结构(重点重点)l1.体系结构概述l2.逻辑存储结构l3.物理存储结构l4.实例的内存结构l5.实例的进程结构l6.数据字典1.体系结构概述l 完整的Oracle数据库系统通常由两个部分组成:实例(实例(INSTANCE)+ 数据库(数据库(DATABASE)l 数据库数据库是由一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等)。l 实例实例是由一组Oracle后台进程/线程以及在服务器分配的共享内存区。l 数据库和实例之间的关系:数据库和实例之间的关系:数据库可以由多个实例装载和打开实例可以在任何时间装载和打开一个数据库一个实例在其生存期最多只能装载和
2、打开一个数据库1.体系结构概述l 在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台进程),然后由这个实例来访问和控制磁盘中的数据文件。Oracle实例和数据库2.逻辑存储结构逻辑存储单元从小到大依次为逻辑存储单元从小到大依次为:l 数据块(Data Blocks)l 盘区(Extent)l 段(Segments)l 表空间(Table Spaces)数据库的逻辑存储组成2.逻辑存储结构l2.1数据块数据块(Data Blocks)l 数据块是Oracle用来管理存储空间管理存储空间的最小单元最小单元,也是执行数据库
3、输入输出操作时的最小单位。l 数据块的组成:块头部、表目录、行目录、空闲空间、行空间。SQL select name,value from V$parameter where name=db_block_size;NAME VALUE- -db_block_size 81922.逻辑存储结构l2.2盘区l 盘区是Oracle存储分配存储分配的最小单位最小单位。l 盘区是由一系列物理上连续存放的数据块所构成的Oracle存储结构,由一个或多个数据块组成一个盘区,而一个或多个盘区组成一个段。l 当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的盘区。2.逻辑存储结构l2.3段l 段是由一
4、系列盘区组成,它也不再是存储空间的分配单位,而是一个独立的逻辑存储结构独立的逻辑存储结构。l 对于具有独立存储结构的对象,它的数据全部存储在保存它的段中。一个段只属于一个特定的数据库对象,每当创建一个具有独立段的数据库对象时,Oracle将为它创建一个段。l 在Oracle中,不同类型的数据库对象拥有不同类型的段。根据段中存放的数据库对象类型,将段分为几种类型:数据段、索引段、临时段、回退数据段、索引段、临时段、回退段和段和LOB段段。2.逻辑存储结构l2.4表空间l 表空间是在Oracle中可以使用的最大的逻辑存储结最大的逻辑存储结构构,在数据库中建立的所有内容都被存储在表空间中。l 一个表
5、空间由一个或多个数据文件组成,一个数据文件只可以属于一个表空间,这是逻辑与物理的统一。l 存储空间在物理上表现为数据文件,在逻辑上表现为表空间。l 表空间的大小等于构成该表空间的所有数据文件的大小之和。l 数据库的大小等于其中所有表空间的大小之和。2.逻辑存储结构l2.4表空间l 在创建数据库时, Oracle会自动创建一些默认的表空间,其中除了用于存储用户数据的普通表空普通表空间间外,还有SYSTEM表空间表空间、撤销表空间撤销表空间、临时临时表空间表空间。l (1). SYSTEM表空间(SYSAUX表空间加以辅助),用于存储:数据字典、内部系统表基表PL/SQL程序的源代码和解析代码数据
6、库对象的定义2.逻辑存储结构l2.4表空间l(2). 撤销表空间,专门用来在自动撤销管理方式下存储撤销信息,即回退信息。l(3).临时表空间。在实例运行过程中, Oracle使用一些临时空间来保存SQL语句执行过程中所产生的临时数据。2.逻辑存储结构3.物理存储结构l 物理存储结构并不是独立存在的,它与数据库逻辑存储结构之间有着不可分割的联系。l 从整体上看,Oracle的数据在逻辑上存储在表空间中,而物理上存储在表空间所对应的数据文件中。物理存储结构与逻辑存储结构之间的关系3.物理存储结构l 3.1数据文件l 数据库物理存储结构主要包括3类物理文件:数据文件数据文件(data file)(*
7、.dbf)控制文件控制文件(control file)(*.ctl)重做日志文件重做日志文件(redo log file)(*.log)及一些参数文件查看数据库文件命令:查看数据库文件命令:SQLselect name from v$datafile;3.物理存储结构l 数据库文件大致分为以下几类:系统数据文件(SYSTEM01.DBF、SYSTEMAUX01.DBF) l存放系统表和数据字典。撤销段文件(UNDOTBS01.DBF) :l存放撤销段数据文件,在数据修改中存储修改之前的记录。用户数据文件(USER01.DBF、EXAMPLE01.DBF):l存放用户数据。注意:注意:临时表空间
8、所对应的临时数据文件是一类比较特殊的数据文件。临时文件的信息只能通过数据字典视图DBA_TEMP_FILE和动态性能视图V$TEMPFILE来查看;不能像普通数据文件一样通过DBA_DATA_FILES和V$DATAFILE视图来查看。3.物理存储结构l 3.2控制文件l 数据库控制文件是一个很小的二进制文件,在其中包含了关于数据库物理结构的重要信息。通过在加载数据库时读取控制文件,Oracle才能找到自己所需的操作系统文件(数据文件、重做日志文件等)。l 控制文件对于数据库的成功启动和正常运行是至关重要的。在加载数据库时,实例必须首先找到数据库的控制文件。如果控制文件正常,实例才能加载并打开
9、数据库。但是如果控制文件中记录了错误的信息,或者实例无法找到一个可用的控制文件,数据库将无法加载,当然也法打开。3.物理存储结构l 3.2控制文件l 在数据库运行过程中, Oracle会不断更新控制文件的内容,因此控制文件必须在整个数据库打开期间保持可用状态。如果由于某种原因导致控制文件不可用,则数据库将崩溃。l 每个数据库必须至少拥有一个控制文件,一个数据库可以同时拥有多个控制文件,但是一个控制文件只能属于一个数据库。l 控制文件中的主要信息包括:数据库的名字、检查点信息、数据库创建的时间戳、所有的数据文件、重做日志文件、归档日志文件信息和备份信息等。3.物理存储结构l3.2控制文件l 控制
10、文件信息可以从V$controlfile中查询获得3.物理存储结构l 3.3重做日志文件l 重做日志文件是记录数据库中所有修改信息的文件l 重做日志文件记录两类数据:1.修改前的数据2.修改后的数据 l 当满足一定条件时先将修改操作所产生的重做记录写入重做日志文件中,然后才将内存中的修改结果成批的写入数据文件,最后再提交事务。l 重做日志文件是由重做记录组成的,重做记录是由修改向量组成的。l 当用户执行一条update语句对某一个表中的记录进行修改时,会生成一条记录。这条记录用多个向量记录下了被这条语句修改过的各个数据块中的信息。3.物理存储结构l3.3重做日志文件l 一旦数据库崩溃,Orac
11、le服务器就使用重做日志文件中的记录来进行数据库的恢复工作。引入重做日志文件的目的就是数据库的恢复。l Oracle使用了多组(group)重做日志。重做日志写进程(LGWR)在任意时刻只能写一组重做日志组,LGWR后台进程正在写的重做日志组称作当前(current)重做日志组。LGWR把完全相同的信息从重做日志缓冲区(redo log buffer)中复制到该组的每个重做日志文件中。它是以循环的方式写重做日志组的。当LGWR写满了一组重做日志时,它就开始写下一组重做日志。这称为日志切换。当写满了最后一组时,LGWR开始写第一组重做日志。3.物理存储结构l3.3重做日志文件l Oracle用以
12、上这种循环的操作方式的确解决了为了提高数据库系统的效率而产生日志文件不够大的难题。但这种循环操作的方式本身又带来了另一个严重的问题。那就是当LGWR循环写了一圈之后再写重做日志文件组中的文件时,这些重做日志中的信息就要被覆盖掉,从这时起Oracle数据库就无法保证数据库崩溃后能恢复全部提交的数据。为了解决这一问题,Oracle引入了归档(archive)日志的结构。3.物理存储结构l3.4其他文件l 除了上述三种类型的文件外,Oracle还提供了其他一些类型的文件,如:l 归档日志文件l 参数文件l 密码文件l 预警日志文件l 后台或用户跟踪文件P27-304.实例的内存结构l 内存结构是Or
13、acle数据库体系结构中最为重要的部分之一,内存也是影响数据库性能的主要因素。l 在Oracle数据库中,服务器内存的大小将直接影响数据库的运行速度,特别是多个用户连接数据库时,服务器必须有足够的内存支持,否则有的用户可能连接不到服务器,或查询速度明显下降。l 在Oracle系统的体系结构中,有许多不同的内存区域。不同的内存区域用于不同的目的。Oracle的服务器进程和许多后台进程负责在内存区域中写入、更新、读取和删除数据。4.实例的内存结构lOracle的2个主要的内存结构系统全局区(System Global Area,SGA)程序全局区(Program Global Area,PGA)4
14、.实例的内存结构l4.1系统全局区SGAl 位于系统的共享内存段中,SGA区中的数据可以被所有的服务和后台进程共享。l 如果多个用户连接到同一个数据库实例,则实例的SGA区中的数据可被多个用户共享。在数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA被回收。l SGA区中的主要包含如下内存结构:数据缓存区、共享池、重做日志缓存、Java池和大型池等结构。4.实例的内存结构l4.1系统全局区SGA数据缓冲区数据缓冲区( Data buffer cache )Java池池大型池大型池重做日志缓冲区重做日志缓冲区固定固定SGASGA共享池(共享池(Shared pool)库缓存库缓
15、存数据字典缓存数据字典缓存4.实例的内存结构l4.2程序全局区PGAl 程序全局区(PGA)是保存特定服务进程的数据和控制信息的内存结构,这个内存结构是非共享的,只有服务进程本身才能够访问它自己的PGA区。每个服务进程都有它自己的PGA区。l 包含如下结构:私有SQL工作区会话内存区5.实例的进程结构l 进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务。l 进程与程序的区别在于前者是一个动态概念,后者是一个静态实体。程序仅仅是指令的有序集合,而进程则强调执行过程。l 进程可以动态地创建,当完成任务后即会消亡。5.实例的进程结构l Oracle的进程包括三类:的进程包括三类:用户进程
16、用户进程服务器进程服务器进程后台进程后台进程5.实例的进程结构服务器进程、用户进程和后台进程之间的关系5.实例的进程结构l 5.1用户进程l 用户执行一个Oracle应用程序或启动一个Oracle工具(如SQL*Plus)时,创建一个用户进程来执行相应的用户任务。相关概念:(1)连接:是一个用户进程与数据库实例之间的一条通信路径,这条通信路径通过操作系统平台中的进程间通信机制或网络连接来实现。(2)会话:是一个用户到数据库的指定连接。例如当一个用户启动SQL*Plus,并输入正确的用户名和密码连接到一个数据库库后,就为该用户创建了一个会话。会话在用户连接到实例的过程中始终存在,直到用户断开连接
17、或终止应用程序为止。会话是通过连接来建立的;同一个用户可以通过建立多个会话是通过连接来建立的;同一个用户可以通过建立多个连接来创建到连接来创建到Oracle数据库的多个会话。数据库的多个会话。5.实例的进程结构l5.2服务器进程l 服务器进程就是代表客户会话完成工作的进程。负责在用户进程和Oracle实例之间调度请求和响应。应用向数据库发送的SQL语句就是由这些进程接收并执行。l 当用户进程提交查询之后,服务器进程则负责执行该查询语句,即将数据从磁盘读入缓存,获取查询结果,然后向用户进程返回结果。即使响应出现了某些错误,服务器进程也会把错误信息发回用户进程,以便用户进程进行合适的处理。l 在O
18、racle数据库中可以同时存在两种类型的服务器进程: 专用服务器进程:只能为一个用户进程提供服务。 共享服务进程:可以为多个用户进程提供服务。5.实例的进程结构l5.3后台进程l Oracle实例包括两部分:SGA和一组后台进程。和一组后台进程。l 在任意一个刻,Oracle数据库可以处理多个并发用户请求,进行复杂的数据操作,与此同时还要维护数据库系统使其始终具有良好的性能。l 为了完成这些任务,Oracle具有一组后台进程保证数据库运行所需的实际维护任务。5.实例的进程结构中心后台进程5.实例的进程结构Oracle的实例所必需的后台进程:l DBWR(数据写进程)l LGWR(日志写进程)l
19、 CKPT(检查点进程)l SMON (系统监视进程)l PMON(进程监视进程)此外,常用的其他进程:ARCn(归档进程)RECO(恢复进程)Dnnn(调度进程)5.实例的进程结构PMON进程监控进程职责:进程监控进程职责: SMON系统监控进程职责:系统监控进程职责: DBWR数据库写入进程职责:数据库写入进程职责: LGWG日志写入进程职责:日志写入进程职责:向在线重做日志文件中记录所有数据库的已提交事务处理向在线重做日志文件中记录所有数据库的已提交事务处理它会在以下四种情况中执行写入操作它会在以下四种情况中执行写入操作 CKPT检查点进程职责:检查点进程职责:该进程在检查点出现时,对全
20、部数据文件的标题进行修改该进程在检查点出现时,对全部数据文件的标题进行修改 ARCH归档进程职责:归档进程职责:将重做日志的事务变化写入归档日志将重做日志的事务变化写入归档日志在重做日志文件中的事务处理被覆盖之前保存重做日志文件在重做日志文件中的事务处理被覆盖之前保存重做日志文件l 数据字典是由一系列对于用户而言是只读的基础表和视图组成,它保存了关于数据库本身以及其中存储的所有对象的基本信息。l 对数据字典的管理和维护由Oracle系统负责,任何数据库用户都无法对数据字典中的内容进行修改,但是用户可以查看数据字典中的内容。l 数据字典中的信息是通过表和视图的形式组织起来的,数据字典和视图都保存
21、在SYSTEM表空间中。视图好比一本关于当前Oracle数据库的参考手册,可以通过SELECT语句查询。6.数据字典l Oracle中的数据字典有静态和动态之分。 静态数据字典:在用户访问数据字典时不会发生改变,主要是由表和视图组成,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、 all_*、 dba_*。 动态数据字典:依赖数据库运行的性能的,反映数据库运行的一些内在信息 ,会不断进行更新 。 6.数据字典l 静态数据字典3类视图:user_* 该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户模式下的对象)all_*该视图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可)dba_*该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限) 6.数据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河道水面漂浮物清理环保技术应用方案
- xx市防洪排涝整治工程技术方案
- 昌宁施甸县公务员考试试题及答案
- 璧山区公务员考试试题及答案
- 宝鸡市渭滨区公务员考试试题及答案
- 安康市公务员考试面试试题及答案
- 2026年虚拟现实教育软件公司未成年人信息保护合规管理制度
- 2026年蔬菜种植公司质量与安全工作绩效考核制度
- 房建工程地上结构钢筋施工技术
- 十五五规划纲要深度解析:职业教育实训设备共享政策
- 真空干燥箱校准规范
- 也是冬天也是春天:升级彩插版
- 全面提升医疗质量等文件专题考试试题及答案
- 办公区临建迁移方案
- 厂房门窗工程施工方案
- 公务接待知识试题和参考答案
- 垃圾池施工方案
- 政府门户网站维护项目运维方案
- 设备销售人员提成方案
- 黔江武陵山机场改扩建项目飞行区场道工程施工组织设计
- (2023)中国颅脑手术后抗癫痫药物应用专家共识
评论
0/150
提交评论