Oracle体系结构4625698710

合集下载

Oracle数据库体系结构

Oracle数据库体系结构

Oracle数据库体系结构⼀、oracle数据库体系结构基本组成:Oracle server:⼀般情况下是⼀个instance和⼀个database组成⼀般:1个instance只能对应⼀个数据库。

特殊:1个数据库可以有多个instance(RAC)⼀台服务器上同时可装多套版本的数据库软件,每个数据库软件可建多个数据库,但是每个数据库只对应⼀个instance,也可以理解成每个数据库只有⼀个SID 。

利⽤DBCA建出的每个库都是相对独⽴的,在同⼀服务器上如果创建多库必须将环境变量的参数⽂件做区分,并且在对实例切换时需如下操作:connect ⽤户名/密码@实例的服务名1.1 oracle服务器和实例1.1.1实例由内存区和后台进程组成①内存区:数据库⾼速缓存、重做⽇志缓存、共享池、流池以及其它可选内存区(如Java池),这些池也称为数据库的内存结构②后台进程:包括系统监控进程(SMON)、进程监控(PMON)、数据库写进程(DBWR)、⽇志写进程(LGWR)、检验点进程(CKPT)、其它进程(SMON,如归档进程、RECO进程等)③注:要访问数据库必须先启动实例,实例启动时先分配内存区,然后再启动后台进程,后台进程执⾏库数据的输⼊、输出以及监控其它Oracle进程。

在数据库启动过程中有五个进程是必须启动的,它们是系统监控进程(SMON)、进程监控(PMON)、数据库写进程(DBWR)、⽇志写进程(LGWR)、检验点进程(CKPT),否则实例⽆法创建。

1.1.2服务器Oracle服务器由数据库实例和数据⽂件组成,也就是我们常说的数据库管理系统。

数据库服务器除了维护实例和数据库⽂件之外,还在⽤户建⽴与服务器的连接时启动服务器进程并分配PGA1.2 oracle数据库逻辑结构表空间:据库的基本逻辑结构,是⼀系列数据⽂件的集合;段:不同类型数据在数据库中占⽤的空间,有许多区组合⽽成;区:由连续的块组成,⽬的是为数据⼀次性预留⼀个较⼤的空间,oracle为存储空间进⾏分配回收都是以区为单位的;块:最⼩的存储单位,在创建数据库时指定,不能修改。

(参考资料)oracle 体系结构详解

(参考资料)oracle 体系结构详解

oracle 体系结构详解一、体系结构图oracle实例=SGA区+后台进程oracle服务器=oracle实例+oracle数据库数据库实例启动实质上即为:分配SGA区,启动后台进程Oracle 实例1、是访问Oracle 数据库的一种方式2、通常只开一个且仅开一个数据库3、由内存结构和进程结构组成,即SGA区+后台进程连接Oracle实例:包括建立用户连接和创建会话Oracle数据库是作为整体的数据集,由三类文件组成:Data files, Control files, Redo log files二、物理结构主要由三类文件组成:data files ,control files,redo-log files1.data files:数据文件,存放基本表信息(即表中数据等)、索引信息(系统内建有索引表)、回退信息(主要为数据的rollback)、临时信息(如有orderby 等操作时系统有临时信息)、系统引导信息(如数据字典等)2、control files:控制文件(二进制的)。

存放库物理结构、库名、库创建日期、序列号(存有同步信息);控制文件至少有两个一摸一样的,用做备份用参数Controlfiles=/../../文件名1,/../../文件名2;指定3、redo log files:回退日志文件,存放修改前后的信息,主要用于数据的恢复,一个数据库至少有两个redo log files文件,以便可以循环记录信息注:三类文件都有序列号,必须同步才能使用,且已Control files中的序列号为准,其他的必须与其保持一致除了上面三类文件还有:Parameter file(参数文件),Password file(口令文件),Archived log files(归档文件)等参数文件:有二进制、文本两种,用于设定参数的值。

二进制参数文件可以及时更改,即时生效;文本参数文件需重启口令文件:可用orapwd.exe 建口令文件。

Oracle体系结构简介

Oracle体系结构简介

Oracle体系结构简介一、数据库(Database)数据库是一个数据的集合,不仅是指物理上的数据,也指物理、存储及进程对象的一个组合。

Oracle是关系型数据库治理系统(RDBMS)。

二、实例(Instance)数据库实例(也称为服务器Server)就是用来访问一个数据库文件集的一个存储结构及后台进程的集合。

它使一个单独的数据库可以被多个实例访问(也就是ORACLE并行服务器-- OPS)。

实例和数据库的关系如下决定实例的组成及大小的参数存储在init.ora文件中。

三、部结构表、列、数据类型(T able、Column、Datatype)Oracle中是以表的形式存储数据的,它包含若干个列;列是表的属性的描述;列由数据类型和长度组成;Oracle中定义的数据类型主要有CHAR、VARCHAR2、NUMBER、DATE、LONG、LOB、BFILE等,具体的数据类型情况将在本栏目的相关文档中具体介绍。

约束条件(Constraint)表中以及表间可以存在一些数据上的逻辑关系、限制,也就是约束。

Oracle中的约束主要有主键(PK)、外键(FK)、检查(CHECK)、唯一性(UNIQUE)等几种;拥有约束的表中每条数据均必须符合约束条件。

抽象数据类型(Abstract Datatype)可以利用CREATE TYPE命令创建自定义的抽象数据类型。

分区(Partition)可以利用分区将大表分隔成若干个小的存储单元,逻辑上仍然是一个完整的独立单一实体,以减小访问时数据的查找量,提高访问、存储效率用户(User)用户不是一个物理结构,但是它与数据库的对象拥有非常重要的关系--用户拥有数据库对象,以及对象的使用权。

模式(Schema)用户拥有的对象集合称为模式。

索引(Index)数据库中每行记录的物理位置并不重要,Oracle为每条记录用一个ROWID来标识,ROWID记录了记录的准确位置。

索引是供用户快速查找到记录的数据库结构。

oracle 体系结构

oracle 体系结构

三、oracle 体系结构1、oracle内存由SGA+PGA所构成2、oracle数据库体系结构数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制。

oracle工作原理:1)、在数据库服务器上启动Oracle实例;2)、应用程序在客户端的用户进程中运行,启用Oracle网络服务驱动器与服务器建立连接;3)、服务器运行Oracle网络服务驱动器,建立专用的服务器进程执行用户进程;4)、客户端提交事务;5)、服务器进程获取sql语句并检查共享池中是否有相似的sql语句,如果有,服务器进程再检查用户的访问权限;否则分配新的sql共享区分析并执行sql语句;6)、服务器从实际的数据文件或SGA中取得所需数据;7)、服务器进程在SGA中更新数据,进程DBWN在特定条件下将更新过的数据块写回磁盘,进程LGWR在重做日志文件中记录事务;8)、如果事务成功,服务器进程发送消息到应用程序中。

3、oracle服务器i、oracle服务器由oracle数据库和oracle实例组成。

ii、oracle数据库是一个数据的集合,存放在数据文件里,该集合被视为一个逻辑单元。

iii、oracle实例由管理数据库的后台进程和内存结构所构成。

4、oracle实例i、Oracle实例是内存结构和后台进程的集合ii、启动Oracle实例的过程,即:分配内存、启动后台进程iii、Oracle实例的内存包括SGA和PGA;当启动实例的时候分配SGA;当服务器进程建立时分配PGA;一般情况下,SGA:PGA=8:1分配内存。

iiii、Oracle实例的后台进程包括SMON、PMON、DBWR、LGWR、ARC、CKPT等。

5、SGA(System Global Area): 系统全局区i0、数据库信息存储于SGA,由多个数据库进程共享。

i1、SGA包括:共享池、数据缓冲区、日志缓冲区、Large池、Java池、Stream池。

oracle数据库体系结构的构成

oracle数据库体系结构的构成

oracle数据库体系结构的构成Oracle数据库是一种关系型数据库管理系统,其体系结构由多个组成部分构成。

这些组成部分相互协作,以实现数据库的高效管理和数据的存储、检索和操作。

1. 实例(Instance)Oracle数据库的实例是指在计算机系统中运行的一组进程,这些进程负责管理数据库的运行和操作。

实例包括后台进程(background processes)和前台进程(foreground processes)。

后台进程负责监控数据库的状态、管理内存和磁盘空间、处理死锁等问题,而前台进程负责处理用户的请求和查询。

2. 数据库(Database)数据库是指存储数据的物理文件集合,包括数据文件(data files)、控制文件(control files)和日志文件(log files)。

数据文件存储实际的数据,控制文件记录数据库的结构信息和一些关键参数,日志文件用于记录数据库的操作日志。

数据库的设计和管理是数据库管理员(DBA)的工作。

3. 表空间(Tablespace)表空间是数据库中逻辑存储单位,用于管理和组织数据。

每个表空间包含一个或多个数据文件,表空间中的表和索引等数据库对象存储在数据文件中。

表空间可以根据需求进行创建、扩展和调整,以满足数据库的存储需求。

4. 段(Segment)段是逻辑存储单位,是表空间中的子集,用于存储数据库对象。

每个表、索引等数据库对象都分配了一个或多个段来存储数据。

段可以是数据段(data segment)、索引段(index segment)、临时段(temporary segment)等,根据其存储的数据类型和使用情况而定。

5. 区(Extent)区是段的子集,是数据的最小单位。

每个段由一个或多个区组成,每个区的大小是固定的。

当一个段需要存储更多的数据时,会动态地分配新的区来扩展段的大小。

6. 块(Block)块是存储数据的最小单位,是操作系统中文件系统的块大小。

Oracle数据库体系结构

Oracle数据库体系结构

Oracle数据库体系结构一.Oracle数据库体系结构1.实例:一组用于管理数据库文件的内存结构,实例对应着数据库;RAC/CDB CDB:CDB为数据库容器,PDB插拔数据库。

在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC),即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。

而实例与数据库不可能是一对多的关系。

当进入ORACLE 12C后,实例与数据库可以是一对多的关系。

RAC:允许多个Oracle数据库实例在多台服务器上共享同一个数据库存储空间,并通过集群来保证高可用性和容错性。

简单来说,RAC就是将多个数据库实例连接起来,形成一个“集群”。

2.ShardingSphere:中间件,不同的数据库对应不同的实例,中间有一个中间件,使用者连接中间件;数据库中间件可以简化对读写分离以及分库分表的操作,并隐藏底层实现细节,可以像操作单库单表那样操作多库多表。

常见的中间件有MyCat,Mysql-Proxy,DRDS,Atlas,Zebra二.Orcal数据库体系结构:Orcal服务器=数据库+实例1.实例是暂时的,它只不过是一组逻辑划分的内存结构和进程结构,它会随着数据的关闭而消失数据库它就是一堆物理文件(控制文件、数据文件、日志文件等等)它呢是永久存在的数据库和实例是一对一的,这种结构我们一般称为单实例体系结构;既然有一对一,那就会有一对多,在复杂的分布式结构中,一个数据库可以对多个实例,多个实例之间可以通过网络来进行数据的一个交互或着交换2.PGA:程序全局区,为单独的服务器进程存储私有数据的内存区域(SAG属于公共资源,PAG是私有的)3.SGA:系统全局区,所有用户都可以访问的共享内存区域启动Oracle数据库时,系统先在内存内规划一个固定区域,用来储存用户需要的数据,以及Oracle运行时必备的系统信息4.后台进程结构,此处只罗列必须启动的5个后台进程系统监控器SMON:负载检查数据库一致性,有必要会在数据库打开时启动数据库恢复进程监视器PMON:负责一个Orcal数据库进程失败时清理资源,会定期唤醒或者被其他主动事务主动唤醒数据库写进程DBWR:负责将更改的数据从“数据库高速缓冲区”写入“数据文件”日志写进程LGWR:负载把日志数据写到练级日志文件检查点进程SKPT:负责检查点操作,主要检查数据库状态一致性和记录系统变更时间5.三个文件1)控制文件:存储数据库结构,一个控制文件只属于一个数据库,包含数据文件日志文件信息及相关状态归档信息,2)数据文件:存储数据,xxx.dbf文件存储着系统数据,数据字典数据,索引数据及用户存储的数据3)日志文件:存储与事务有关的重做日志三.逻辑存储结构1.块是Oracle用来管理存储的最小单元,也是最小的逻辑存储结构2.区是Oracle数据库分配空间的最小单位3.段由多个区组成,这些区可以是连续的,也可以是不连续的4.表空间是Oracle数据库的最大逻辑划分区域,通常用来存放数据表、索引、回滚段等数据对象。

简述oracle体系结构

简述oracle体系结构

简述oracle体系结构
Oracle体系结构
Oracle是一种支持分布式数据库管理系统,其体系结构主要包
括E-R图,表和索引,存储过程和视图, SQL,PL/SQL程序和组件,等等。

1. E-R图
E-R图是一种关系数据库管理系统的基本模型,其中实体表示客观事物,关系表示实体之间的联系。

E-R图可以被用来描述实体和它们之间的关系,以及实体的属性和它们之间的关系。

2.表和索引
表是由一系列列组成的逻辑结构,它们包含每行和每列的数据。

索引是一种特别的表,可以被用来提高表的搜索速度和性能。

3.存储过程和视图
存储过程是一种特定类型的程序,它们可以被用来完成某些操作,比如查询和更新。

视图是一种准备好的查询,它们可以被用来返回数据库中的数据。

4.SQL,PL/SQL程序和组件
SQL(Structured Query Language)是一种用于在数据库中执行查询和更新操作的语言,是一种面向关系型数据库的核心语言。

PL/SQL是一种可以嵌入SQL语句的程序设计语言,用来定义复杂的
查询,更新和实现回调函数。

组件是一种模块化的程序,用来构建更复杂的系统。

oracle体系架构

oracle体系架构

oracle体系架构oracle体系架构1 【memory structures】内存结构Fixed SGA:⼀个内部管理区域,包含关于数据库和实例状态的⼀般信息,以及进程之间通信的信息oracle memory = SGA + PGASGA:system global area 系统全局区,共享的,所有server process和background process共享PGA:program global area 程序全局区,私有的,每⼀个server process和background process拥有⾃⼰的pga1.1 SGA 系统全局区 系统全局区(System Global Area)简称SGA,被所有server process和background process共享的内存区域,随着实例的启动⽽分配,⼀个实例只有⼀个SGA,共享给所有会话使⽤SGA6个基本组件:shared pool、database buffer cache、redo log buffer、large pool、java pool、streams pool共享池数据缓冲区⽇志缓冲区⼤池 java池流池1.1.1 shared pool共享池 共享池是对SQL、PL/SQL 程序进⾏语法分析、编译、执⾏的内存区域共享池由库缓存(library cache)、数据字典缓存(data dictionary cache)、结果缓存(result cache)等组成共享池的⼤⼩直接影响数据库的性能1.1.2 database buffer cache数据缓冲区数据缓冲区(database buffer cache)也称buffer cache功能:①缓存数据 ⽤于缓存从磁盘数据⽂件中读⼊的数据块,为所有⽤户共享 服务器进程(server process)负责将数据⽂件的数据从磁盘读⼊到数据缓冲区中,当后续的请求需要这些数据时,如果在内存中找到,则不需要再从磁盘读取②延迟写数据⽂件 对数据的修改在内存缓冲区中进⾏,减少写磁盘的次数,提⾼I/O能⼒ 数据缓冲区中被修改的数据块(脏块dirty block)由后台进程DBWR将其写⼊磁盘数据缓冲区的⼤⼩对数据库的读取速度有直接的影响1.1.3 redo log buffer⽇志缓冲区功能: 执⾏DML、DDL操作时,产⽣对数据修改的变更向量(db buffer cache 中数据块变化),⽬的是为了数据库恢复recover 服务器进程server process 将对应的变更向量(change vector,CV)记录到redo log buffer中 ⽇志条⽬(redo entries)记的不是sql本⾝,⽽是sql执⾏后对数据库中某个⽂件某个块做了什么修改(变更向量) 没commit的sql也记redo⽇志 执⾏commit命令后看到"commit complete",说明⽇⼦已经从⽇志缓冲区(redo log buffer)写⼊到联机⽇志⽂件(online redo log file),由后台进程LGWR负责写1.1.4 large pool⼤池(可选) 为了进⾏⼤的后台进程操作⽽分配的内存空间,与shared pool管理不同,主要⽤于共享服务器模式的session memory(UGA)、RMAN备份恢复以及并⾏查询等操作。

Oracle数据库的体系结构介绍

Oracle数据库的体系结构介绍

Oracle数据库的体系结构介绍Oracle数据库是目前世界领先的企业级关系数据库管理系统,其卓越的性能、可靠性以及安全性被广泛地应用于企业级应用系统中。

本文将详细介绍Oracle数据库的体系结构,帮助读者更好地了解Oracle数据库。

一、概述Oracle数据库的体系结构分为三层:物理层、逻辑层和视图层。

物理层描述了数据在物理介质上的存储方式和管理方式;逻辑层主要由Oracle数据库的核心服务组成,该层体现了Oracle数据库的最核心功能;视图层则提供给应用程序用户和管理员使用,是Oracle数据库的最外层。

二、物理层Oracle数据库的物理层包括数据文件、控制文件和重做日志文件。

其中,数据文件用于存储数据表、索引和其他对象的数据;控制文件则记录了数据库的结构信息和操作日志,是维护数据库一致性和恢复数据的关键元素;重做日志文件用于记录正在进行的操作和已经完成的操作,以便在系统崩溃或停机时进行恢复。

三、逻辑层Oracle数据库的逻辑层包括多个服务组件,如SQL解析器、优化器、缓存池、锁管理器、存储管理器等。

其中,SQL解析器用于解析SQL语句,将其转换成可执行的优化器,并进行语法和语义检查;优化器则负责分析并优化SQL执行计划,以提高查询效率;缓存池用于存储查询结果和表空间等数据对象,提高查询响应速度;锁管理器则负责管理并发访问,防止数据冲突,保证数据库的一致性和稳定性。

四、视图层Oracle数据库的视图层提供了多种视图和接口,包括SQL*Plus、SQL Developer、Toad等。

其中,SQL*Plus是Oracle自带的命令行工具,提供简单的SQL语句执行和结果输出;SQL Developer是Oracle 提供的图形化界面工具,提供更为便捷的数据库管理和开发支持;Toad则是第三方软件,提供了更为强大和灵活的数据库管理和开发支持。

五、总结Oracle数据库作为目前世界领先的企业级关系数据库管理系统,其体系结构设计合理,层次清晰,提供了完备的物理、逻辑和视图三层管理机制,为企业级应用系统提供了高效、可靠、稳定的运行环境和数据服务。

Oracle数据库体系结构(详细版)

Oracle数据库体系结构(详细版)

Oracle体系结构Oracle核心竞争力可扩充性:Oracle系统有能力承担增长的工作符合,并且相应的扩充系统资源利用情况。

可靠性:无论出现系统资源崩溃,电源断电还是系统故障的时候,我们都可以对Oracle进行配置。

以保证检索用户数据事务处理的时候,不受到影响。

可管理性:数据库管理员可以微调Oracle使用内存的方式,以及Oracle向磁盘写入数据的频率。

并且管理可以调整,数据库为连接到数据库的用户分配操作系统进程的方式。

Oracle总体结构分为三个部分第一部分:系统全局区(SGA)第二部分:程序全局区和后台进程第三部分:Oracle的文件如果从功能上划分的话:存储结构:由这些文件就构成了Oracle的物理存储结构。

内存结构:使用内存最多的是SGA,也是影响数据库系统性能最大的一个参数。

进程结构:前台进程服务进程和用户进程,是根据实际需要而运行的,并在需要结束后立刻结束。

后台进程是指Oracle数据库启动后自动启动的几个操作系统进程。

存储结构包括物理结构和逻辑结构,既独立又相互联系的。

物理结构:是和操作系统平台有关的。

逻辑结构:逻辑存储结构是和操作系统平台无关的。

_______________________________________________________________________________这个图是两种存储结构中的对应关系表空间包括系统表空间和用户表空间。

表空间也是最大的逻辑单位。

块是最小的一个逻辑单位。

逻辑结构的表空间对应着物理结构的数据文件,也就是创建表空间的时候要给它指定数据文件,但是一个表空间可以对应多个数据文件。

表空间的大小也就是他包含的数据文件大小的总和。

数据文件呢同时又对应着操作系统中的数据块,数据文件也是以数据块的形式,存在于操作系统中。

逻辑结构中的块也对应着操作系统的数据块。

——————————————————————————————————————— 物理存储结构Oracle的物理存储结构,也就是Oracle的数据库文件数据库文件又分为主要文件和其他文件主要文件:首先来看数据文件:就是物理存储Oracle数据库数据的文件有一下特点:◆每一个数据文件,只与一个数据库相关联。

Oracle数据库体系结构图

Oracle数据库体系结构图

画出Oracle的体系结构图,并解释箭头得到含义,写在纸上。

SGA 是包含实例的数据和控制信息的内存区。

SGA 包含以下数据结构:数据库缓冲区高速缓存:用于缓存从数据库中检索到的数据块,数据库缓冲区高速缓存是SGA 的一部分,用于存放从数据文件读取的数据块的副本。

并行连接到实例的所有用户共享对数据库缓冲区高速缓存的访问。

重做日志缓冲区:用来缓存用于实例恢复的重做信息,直到可以将其写入磁盘中存储的物理重做日志文件。

重做日志缓冲区是SGA 中的循环缓冲区,用于存放有关对数据库所做更改的信息。

此信息存储在重做条目中。

共享池:用于缓存可在用户间共享的各种结构,SGA 的共享池部分包含库高速缓存、数据字典高速缓存、SQL 查询结果高速缓存、PL/SQL 函数结果高速缓存、并行执行消息的缓冲区以及控制结构。

大型池:为某些大型进程(例如Oracle 备份和恢复操作)和I/O 服务器进程提供大型内存分配的可选区域。

Java 池:用于Java 虚拟机(JVM) 中特定于会话的所有Java 代码和数据流池:Oracle Streams 使用它来存储捕获和应用操作所需的信息程序全局区(PGA) 是一个内存区,其中包含每个服务器进程的数据及控制信息①系统监视进程SMON->系统全局区SGA (System Global Area)恢复实例或者释放空间;②PMON进程->系统全局区SGA监视进程,恢复强制挂掉的进程或者释放空间;③RECO进程->系统全局区SGA负责在分布式数据库环境中自动恢复那些失败的分布式事务,保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback;④其他->系统全局区SGA⑤数据库缓冲区高速缓存(db buffer cache)->数据库写进程(DBWn)用于存放从数据文件读取的数据块的副本,;缓存数据⑥数据库写进程(DBWn)->数据文件缓冲数据写到数据文件;⑦数据库写进程(DBWn)->重做日志缓冲区(log buffer)用户进程每次修改内存数据块时,都会在日志缓冲区(redo buffer)中构造一个相应的重做条目(redo entry),该重做条目描述了被修改的数据块在修改之前和修改之后的值;⑧检查点进程(CKPT) ->数据文件(datefile)CKPT快速的确定哪些脏数据块已经被写入了数据文件,而哪些还没有写入数据文件,更新数据文件中的数据库状态信息,用来保证数据库中的数据一致性;⑨.检查点进程(CKPT) ->控制文件(controlfile)CKPT找出当前检查点队列上的第一个buffer header,并将该buffer header中所记录的LRBA(这个LRBA也就是checkpoint position了)记录到控制文件中,更新控制文件中的数据库状态信息,用来保证数据库中的数据一致性;CKPT用来协调DBWn和LGWR进程的工作,并更新控制文件和数据文件,来保证数据库中数据的一致性。

oracle体系结构

oracle体系结构

oracle体系结构我觉得学习是⼀个循序渐进的过程,从⾯到点,从宏观到微观,逐步渗透,各个击破,对于,怎么样从宏观上来理解呢?先来看⼀个图,这个图取⾃于上⾯提到的教材,这个图对于从整体上理解ORACLE的组件,⾮常关键.下⾯来解释下这个图.对于⼀个系统来说,假设这个系统没有运⾏,我们所能看到的和这个数据库相关的⽆⾮就是⼏个基于操作系统的物理⽂件,这是从静态的⾓度来看,如果从动态的⾓度来看呢, 也就是说这个数据库系统运⾏起来了,能够对外提供服务了,那就意外着数据库系统启动了⾃⼰的⼀个实例,综合以上2个⾓度,oracle如何定义上述描述呢?我们来引⼊第⼀个,oracle 服务器,所谓oracle服务器是⼀个数据库管理系统,它包括⼀个oracle实例(动态)和⼀个oracle数据库(静态)。

oracle实例是⼀个运⾏的概念(如操作系统的进程),提供了⼀种访问oracle数据库的⽅式,始终打开⼀个,并且只能打开⼀个oracle数据库,oracle实例有SGA 和⼀些后台服务进程组成,在后台服务进程当中,DBWn PMON CKPT LGWR SMON是必备的后台进程,⽽ad queue,rac,shared ,ad replication则是可选的,之所以可选,要们是因为离开它oracle也能正常运⾏,要么是⼀些⾼级的功能才可以⽤得到。

oracle数据库是⼀个被统⼀处理的的数据的集合,从物理⾓度来看包括三类⽂件数据⽂件,控制⽂件,重做⽇志⽂件。

从逻辑⾓度来看,oracle数据库⾄少包含⼀个表空间,表空间⾄少包含⼀个段,段由区做成,区有块组成。

需要注意的是表空间可以包含若⼲个数据⽂件,段可以跨同⼀个表空间的多个数据⽂件,区只能在同⼀个数据⽂件内。

oracle还设计了其他的关键⽂件⽤来为整个系统服务,如配置⽂件,密码⽂件,归档⽇志⽂件,还有还有⽤户进程和服务进程,现在可以简单理解下执⾏语句就要⽤到这2个进程。

Oracle体系结构详解

Oracle体系结构详解

Oracle体系结构就是围绕这张图展开的,要想深入了解oracle,就必须把这张图搞明白。

如图:一、基本组成:Oracle server:一般情况下是一个instance和一个database组成1个instance只能对应一个数据库。

特殊:1个数据库可以有多个instance(rac)一台服务器上同时可装多套版本的数据库软件,每个数据库软件可建多个数据库,但是每个数据库只对应一个instance,也可以理解成每个数据库只有一个SID 。

利用DBCA建出的每个库都是相对独立的,在同一服务器上如果创建多库必须将环境变量的参数文件做区分,并且在对实例切换时需如下操作:connect 用户名/密码@实例的服务名Oracle Instance:是由内存(SGA)和后台进程(backupground Process)组成通过instance来访问database一个实例只能打开一个数据库Oracle database:数据文件(Data files):数据文件永远存储数据库的数据,包括数据字典、用户数据(表、索引、簇)、undo数据等重做日志(Redo log):“先记后写”重做日志用于记录数据库的变化,当进行例程恢复或介质恢复时需要使用重做日志执行DDL或DML操作时,事物变化会被写到重做日志缓冲区,而在特定的时刻LGWR会将重做日志缓冲区中的内容写入重做日志。

控制文件(Control file)控制文件用于记录和维护数据库的物理结构,并且每个Oracle数据库至少要包含一个控制文件。

归档日志(Archive log):是非活动(Inactive)重做日志的备份。

口令文件(Password file):用于验证特权用户(具有SYSDBA、SYSOPER权限的特殊数据库用户)参数文件(Parameter file):用于定义启动实例所需要的初始化参数,包括文本参数文件(pfile)和服务器参数文件(spfile)(二进制文件放入裸设备,引入spfile)User and Server process :在执行sql语句时产生的进程,每一个连接,oracle server创建一个session,产生一个server process,在client发起一个connection时就产生了一个user process。

Oracle的体系结构

Oracle的体系结构
当一个段中的所有空间被使用完后,系统将自动 为该段分配一个新的盘区。
2.逻辑存储结构
2.3段
段是由一系列盘区组成,它也不再是存储空间的 分配单位,而是一个独立的逻辑存储结构。
对于具有独立存储结构的对象,它的数据全部存 储在保存它的段中。一个段只属于一个特定的数 据库对象,每当创建一个具有独立段的数据库对 象时,Oracle将为它创建一个段。
(1). SYSTEM表空间(SYSAUX表空间加以辅 助),用于存储:
数据字典、内部系统表基表 PL/SQL程序的源代码和解析代码 数据库对象的定义
2.逻辑存储结构
2.4表空间
(2). 撤销表空间,专门用来在自动撤销 管理方式下存储撤销信息,即回退信息。
(3).临时表空间。在实例运行过程中, Oracle使用一些临时空间来保存SQL语句执 行过程中所产生的临时数据。
4.实例的内存结构
Oracle的2个主要的内存结构
系统全局区(System Global Area,SGA) 程序全局区(Program Global Area,PGA)
4.实例的内存结构
4.1系统全局区SGA
位于系统的共享内存段中,SGA区中的数据可以被所有的 服务和后台进程共享。
如果多个用户连接到同一个数据库实例,则实例的SGA区 中的数据可被多个用户共享。在数据库实例启动时,SGA 的内存被自动分配;当数据库实例关闭时,SGA被回收。
段 段
数据库的逻辑存储组成
2.逻辑存储结构
2.1数据块(Data Blocks)
数据块是Oracle用来管理存储空间的最小单元, 也是执行数据库输入输出操作时的最小单位。
SQL> select name,value from V$parameter where name='db_block_size';

Oracle的体系架构

Oracle的体系架构

Oracle的体系架构Oracle存储结构分物理存储结构和逻辑存储结构。

物理存储结构:数据文件、日志文件和控制文件逻辑存储结构:数据块-> 区-> 段-> 表空间-> 数据库1、Oracle逻辑存储结构:1)数据块(Data Blocks)2)数据区(Extent)3)段(Segment)4)表空间(TableSpace)数据块(Data Blocks)数据块是Oracle数据库逻辑存储结构中的最小单位,也是执行数据库输入输出的最小存储单位。

通常Oracle数据块是操作系统块的整数倍。

数据块的标准大小被写入到初始化参数DB_BLOCK_SIZE中,Oracle允许在同一个数据库中存在不同大小的数据块,与标准块大小不同的就是非标准块。

数据区(Extent)数据区是由一组连续的Oracle数据块所构成的Oracle存储结构,由一个或多个数据块组成。

一个或多个数据区组成一个段,当段中所有空间被使用完后,Oracle系统将自动为该段分配一个新的数据区,可见,数据区是Oracle存储分配的最小单位。

区是磁盘空间分配的最小单位。

磁盘按区划分,每次至少分配一个区。

区存储于段中,它由连续的数据块组成。

区的分配过程中,每次至分配5个区。

如果所剩的空闲空间不够5个区,就会出现错误:ORA-01653。

可以通过字典dba_tablespaces查询表空间中区的信息。

可以通过字典user_tables查询段中区的信息。

可以通过字典user_extents查询区的分配状况。

我们可以通过以下SQL语句分别查询表空间、段、区中区的分配信息一个或多个块组成区,一个或多个区组成段。

一个区只能属于一个数据文件。

SELECT t.segment_name 区名称, t.segment_type 区类型,t.tablespace_name 表空间, t.extent_id 区id, t.bytes 区大小,t.blocks 块数目FROM user_extents t;(1)区的分配当创建一个表时,oracle会给这个表的数据段分配一个初始区(initial extent),即使没有数据的插入,oracle还是会分配这个初始区。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• UNDOTBS1 重做表,
学习改变命运,知 识创造未来
Oracle体系结构4625698710
段 (Segment)
段是表空间的下一个逻辑单位,是表空间中一个 指定类型的逻辑存储结构,它由一个或多个区组 成,段将占用并增长存储空间。分类如下 :

数据(表)段 索引段 临时段 回退段
学习改变命运,知 识创造未来
客户机
用户进程 (SQL语句)
服务器进程 (PGA区)
服务器
Oracle server
学习改变命运,知 识创造未来
Oracle体系结构4625698710
处理过程可以简单的描述为: 1. 用户在其机器上运行基于Oracle的应用程序(如
:SQL*PLUS、PL/SQL Developer等),即启动用户进程 . 2. 客户机、服务器之间建立连接(Connect). 3. 服务器为用户建立会话(Session),并为该会话建立一 个PGA(Program Global Area,程序全局区)以存储与该 会话相关的信息.在同一个连接中,不同的用户有不 同的会话. 4. 启动服务进程,由该服务进程负责执行该会话的各项 任务. 5. 用户进程发送SQL语句(select、update、commit….) 6. 服务器进程解析、编译、执行SQL语句,然后将结 果写入数据库并返回结果给用户进程。 7. 用户进程接收返回的SQL执行结果。 8. 在应用程序中显示SQL执行结果.
要点注意:
§在打开和存取数据库时
都要访问该文件。
§记录控制文件名及路径
的参数为: CONTROL_FILES
Oracle体系结构4625698710
参数文件
参数文件(Parameter File)也被称为初始化 参数文件,用于存储SGA、可选的Oracle特性 和后台进程的配置参数。
当数据库启动,并在创建例程或读取控制文 件之前,会先按其中的参数进行例程的配置。
数据高速缓存 重做日志缓冲区
Java 池
大缓冲池
PMON SMON DBWR LGWR CKPT Others
SGA
后台 进程
学习改变命运,知 识创造未来
Oracle体系结构4625698710
连接到例程
建立连接和会话 : • 建立用户连接 • 建立会话
服务器进程 建立连接
用户进程
建立会话
Oracle server
物理存储结构
物理结构主要包括以下三种文件:
• 控制文件
• 数据文件
• 重做日志
控制文件 数据文件
重做日志
学习改变命运,知 识创造未来
Oracle体系结构4625698710
数据文件(Data File)
数据文件(Data File)是物理存储Oracle数据库数据的文件 。其特点如下:
每一个数据文件只与一个数据库相联系。 一个表空间可包含一个或多个数据文件。 一个数据文件只能属于一个表空间。
学习改变命运,知 识创造未来
数据库用户
Oracle体系结构4625698710
建立连接:
是一个安全审核的过程。包括:提交的网络服 务名是否正确;输入的用户名及密码是否存在且 正确,连接的数据库对象是否存在等等,对这些 一系列的过程进行审核。 通过用户进程来连接。
一旦建立了连接,Oracle服务器会给该用户调度一 个服务器进程来完成该用户的请求命令服务。
Oracle体系结构4625698710
区(extent)
区(Extent)是由物理上连续存放的块构成,区是 Oracle存储分配的最小单位,由一个或多个块 组成。
当在数据库中创建带有实际存储结构的方案对象 (如表、索引)时,Oracle将为该方案对象分配若干 个区,以便组成一个对应的段来为该方案对象提供 初始的存储空间。当段中已分配的区都写满后, Oracle就为该段分配一个新的区,以便容纳更多的数 据。
Oracle体系结构 4625698710
学习改变命运,知 识创造未来
2021年2月17日星期三
主要内容
• Oracle体系结构及其组件
例程
数据库
• 例程
内存结构
后台进程
• 数据库
✓ 物理结构
学习改变命运,知 识创造未来
✓ 逻辑结构
Oracle体系结构4625698710
Oracle服务器的工作原理
学习改变命运,知 识创造未来
Oracle体系结构4625698710
SID(系统标识符)
一台计算机上可以创建多个Oracle数据库,一个 数据库上可以有多个例程。
为了使例程间不混淆,每个例程都称为: SID(SystemIDentify)加以区分。
学习改变命运,知 识创造未来
Oracle体系结构4625698710
分配的第一个区称初始区,以后分配的区称增量 区。
学习改变命运,知 识创造未来
Oracle体系结构4625698710
数据库块(Block)
数据库块(Database Block)是数据库使用的 I/O最小单元,又称逻辑块或ORACLE块。 一个数据库块对应一个或多个物理操作系统 块,块的大小由参数DB_BLOCK_SIZE确定 。
统块。
学习改变命运,知 识创造未来
Oracle体系结构4625698710
表空间
表空间是数据库的逻辑划分的最大单元,
一个Oracle数据库至少有一个表空间,即
system表空间。
数据库
表空间 表空间 表空间
1
2
3
表空间 表空间 表空间
1
2
3
数据 数据 数据 数据 数据 文件 文件 文件 文件 文件
物理存储结构是Oracle数据库的外部存储结构 。它对应操作系统相关文件。包括控制文件、 数据文件、日志文件等操作系统文件.
学习改变命运,知 识创造未来
Oracle体系结构4625698710
Oracle 服务器
Oracle 数据库服务器:
• 主要由两部分组成:
物理数据库和数据库管理系统 。
Oracle server
• 物理数据库是保存数据的物理 存储设备。
• 数据库管理系统是用户与物理 数据库之间的一个中间是软件 层,又称例程。有一定的结构 。
• 或称数据库服务器由例程和数
据库组成 学习改变命运,知
识创造未来
Oracle体系结构4625698710
数据库服务器启动时:
• Oracle首先要在内存中获取、划分、保留各种用 途的区域,运行各种用途的后台,即:创建一个例 程(instance);
学习改变命运,知 识创造未来
Oracle体系结构4625698710
体系结构及其组件综述
用户进程
服务器进程 PGA
共享池
例程 SGA
库高速缓存
数据高速缓存 重做日志缓冲区
数据字典高速缓存
Java 池
大缓冲池
PMON SMON DBWR LGWR CKPT Others
学习改变命运,知 识创造未来
参数文件 口令文件
建立会话:
服务器进程解析用户进程提供来的SQL语句,完 成该次会话执行的各种任务。
学习改变命运,知 识创造未来
Oracle体系结构4625698710
数据库
Oracle 保存数据的容器。 分物理存储 结构及逻辑存储结构。
参数文件 口令文件
数据文件 控制文件 重做日志
归档日志
数据库
学习改变命运,知 识创造未来
进程结构:包括前台进程、后台进程。前台进程 是指服务进程和用户进程.前台进程是根据实际 需要而运行的,并在需要结束后立刻结束。后 台进程是指在Oracle数据库启动后,自动启动的几 个操作系统进程.
存储结构:分为逻辑存储结构、物理存储结构。
逻辑存储结构是描述Oracle数据库中如何组织 和管理数据。与操作系统平台无关。
学习改变命运,知 识创造未来
Oracle体系结构4625698710
控制文件
控制文件(Control File)是一个较小的二进制文件, 用于描述数据库结构。
描述信息如下:
§数据库建立的日期

§数据库名。 §数据库中所有数据
文件和日志文件的 文件名及路径。
§恢复数据库时所需
的同步信息。
学习改变命运,知 识创造未来
Oracle体系结构4625698710
Oracle数据库物理存储结构
物理存储结构是现实的数据存储单元,对应 于操作系统文件。Oracle数据库就是由驻留在服 务器的磁盘上的这些操作系统文件所组成的。 这些文件有数据文件、日志文件、控制文件。
学习改变命运,知 识创造未来
Oracle体系结构4625698710
例 程的组成
一个Oracle例程是存取和控制一个数据库的 软件机制,是接触Oracle数据库的方式,存取数 据库中数据的一种手段,或者称之Oracle数据库 管理系统。它由系统全局区(System Global Area ,简称SGA)和后台进程组成。
共享池
例程 SGA
库高速缓存 数据字典高速缓存
学习改变命运,知 识创造未来
Oracle体系结构4625698710
重做日志文件(Redo File)
重做日志文件(Redo Log File)记录所有对数据库数据的 修改,以备恢复数据时使用。 其特点如下: 每一个数据库至少包含两个日志文件组。 日志文件组以循环方式进行写操作。 每一个日志文件成员对应一个物理文件。
系统文件.
学习改变命运,知 识创造未来
Oracle体系结构4625698710
涉及三种结构: Oracle的内存结构
Oracle的进程结构
相关文档
最新文档