第三章 ORACLE数据库结构1009
- 格式:ppt
- 大小:585.50 KB
- 文档页数:74
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 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)User and Server process :在执行sql语句时产生的进程,每一个连接,oracle server创建一个session,产生一个server process,在client发起一个connection时就产生了一个user process。
Oracle数据库系统结构Oracle数据库系统结构有数据库结构和物理存储结构组成。
数据库:实例●SGA数据高速缓冲区、日志缓冲区、共享池、大型池、Java池、流池、其它●后台进程SMON、PMON、DBWR、CKPT、LGWR、ARCH、其它数据文件、控制文件、重做日志文件、归档文件Oracle数据库的存储结构包括物理存储结构和逻辑存储结构物理存储结构主要描述Oracle数据库外部的存储,即在操作系统中如何组织和管理数据,与具体的操作系统有关。
逻辑存储结构主要描述Oracle数据库内部数据的组织和管理,与操作系统没有关系。
物理存储结构是逻辑存储结构在物理上的、可见的、可操作的、具体的体现形式。
Oracle数据库物理存储结构数据库包括:数据文件、控制文件、重做日志文件、归档文件、初始化参数文件、跟踪文件、口令文件、警告文件、备份文件、其他文件数据文件:用于存储数据库中的所有数据控制文件:用于记录和存储数据库的物理存储结构信息重做日志文件:用于记录外部程序多数据库的改变操作归档文件:用于保存已经写满的重做日志文件初始化参数文件:用于设置数据库启时的参数初始值跟踪文件:用于记录用户进程、数据库后台进程等的运行情况口令文件:用于保存具有SYSDBA、SYSOPER权限的用户名和SYS用户口令警告文件:用于记录数据库的重要活动以及发生的错误备份文件:用于存放数据库备份所产生的文件数据文件及管理数据文件的内容用于保存数据库中所有数据的文件临时数据文件是一种特殊的数据文件,起存储内容是临时性的,在一定条件下自动释放 Oracle数据库中的每个数据文件都具有两个文件号,称为绝对文件号和相对文件号,用于唯一的确定一个数据文件,其中绝对文件号用于在数据库范围内唯一标志一个数据文件;相对文件号用于在表空间范围内唯一标识一个数据文件数据文件与表空间的关系一个表空间可以包含几个数据文件一个数据文件只能从属于一个表空间数据文件的管理策略由于对数据库的操作最终转换为对数据文件的操作,因此在数据库运行过程中对数据文件频繁的读写操作,为了提高I/O效率,应该合理的分配数据文件的存贮位置把不同存储内容的数据文件放在不同的磁盘上,可以并行访问数据,提高系统读写的效率初始化参数文件,控制文件,重做日志文件做好不要与数据文件存放在同一个磁盘上,以免数据库发生介质故障是,无法恢复数据库数据文件的管理创建数据文件修改数据文件的大小改变数据文件的可用性改变数据文件的名称和位置删除数据文件查询数据文件的信息利用OEM管理数据文件创建数据文件数据文件依存于表空间而存在,创建数据文件就是像表空间添加数据文件在创建数据文件时应该根据数据文件的大小确定文件的大小以及文件的增长方式语法:●ALTER TABLESPACE …… ADD DATAFILE●ALTER TABLESPACE …… ADD TEMPFILE向ORCL数据库的USERS表空间里添加一个大小为10MB的数据文件ALTER TABLESPACE USERS ADD DATAFILE ‘…./USER02.DBF’ SIZE 10MB;想ORCL数据库的TEMP表空间中添加一个大小为5MB的临时数据文件ALTER TABLESPACE TEMP ADD ‘……/TEMP01.DBF’ SIZE 5MB;修改数据文件大小修改数据文件大小●设置数据文件为自动增长方式●手工改变数据文件大小设置数据文件为自动增长方式●创建时设置数据文件为自动增长●创建后修改数据文件为自动增长方式AUTO EXTEND ON NEXT *** MAXSIZE|UNLIMITED手工改变数据文件大小ALTER DATABASE DATAFILE ‘******’ RESIZE ;为ORCL数据库的USERS表空间添加一个自动增长的数据文件ALTER TABLESPACE USERS ADD DATAFILE ‘********/***.DBF’ SIZE 10MB AUTOEXTEND ON NEXT 512 K MAXSIZE 50MB;修改ORCL数据库USERS表空间的数据文件ALTER DATABASE DATAFILE ‘******.DBF’ AUTOEXTEND ON NEXT 512K MAXSIZE UNLIMITED; 取消ORCL数据库USERS表空间数据文件的自动增长方式ALTER DATABASE DATAFILE ‘******.DBF’ AUTOEXTEND OFF;将ORCL数据库USERS表空的数据文件大小设置8MBALTER DATABASE DATAFILE ‘******.DBF’ RESIZE 8MB;改变数据文件的可用性可以通过将数据文件联机或者脱机来改变数据文件的可用性在下面几种情况下需要改变数据文件的可用性●要进行数据文件的脱机备份时,需要先将数据文件脱机●需要重命名数据文件或者该百年数据文件的位置时,需要先将数据文件脱机●如果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数据库由两个实体组成(1)实例(2)数据库实例实例由存储结构和进程组成,短暂存在于RAM和CPU;因此实例的生存时间其在内存的时间,我们可以启动和停止实例。
一个Oracle实例由一块被称为系统全局区SGA的共享内存以及若干进程组成。
系统全局区(SGA):在实例启动时分配,是Oracle实例的基本组件SGA也称作共享全局区,用于存储数据库进程共享的数据库信息。
它包含有关Oracle服务器的数据和控制信息,在Oracle服务器所在计算机的虚拟内存中分配。
程序全局区(PGA):在服务器进程启动时分配,并在终止进程时回收它包含有关单个服务器进程或单个后台进程的数据和控制信息内存结构(其SGA中三个必备元素):共享池(shared pool):用于存储①最近执行的SQL语句②最近使用的数据定义数据库高速缓冲(Data buffer cache):存储已从数据文件中检索到的数据块的副本重做日志缓冲区(Redo buffer cache):记录对数据库数据块所做的全部更改,主要用于恢复还有可选的是:流池(Streams pool):用于缓存流进程在数据库间移动/复制数据时使用的队列消息大池(Large pool):用于①共享服务器的会话内存②I/O服务器进程③备份和恢复操作或RMAN④并行执行消息缓冲区Java池(Java pool):存储Java命令的服务分析要求后台进程数据写进程(DBWn):负责将更改的数据从数据库缓冲区高速缓存写入数据文件日志写进程(LGWR):将重做日志文件缓冲区的更改写入在线重做日志文件系统监控进程(SMON):检查数据库的一致性,如有必要还会在数据库打开启动时数据库的恢复进程监控进程(PMON):负责在一个oracle进程失败时清理资源检查点进程(CKPT):负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库信息归档进程:在每次日志切换时把已满的日志组进行备份和归档服务进程:用户进程服务用户进程(不属于后台进程):在客户端,负责将用户的SQL语句传递给服务进程组成,并从服务器端拿回查询数据用户连接到Oracle实例包括:(1)建立用户连接(2)创建会话连接是用户进程和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总体结构分为三个部分第一部分:系统全局区(SGA)第二部分:程序全局区和后台进程第三部分:Oracle的文件如果从功能上划分的话:存储结构:由这些文件就构成了Oracle的物理存储结构。
内存结构:使用内存最多的是SGA,也是影响数据库系统性能最大的一个参数。
进程结构:前台进程服务进程和用户进程,是根据实际需要而运行的,并在需要结束后立刻结束。
后台进程是指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数据库由实例和数据库组成。
二、数据库存储结构:2.1数据库存储结构Oracle数据库有物理结构和逻辑结构。
数据库的物理结构是数据库中的操作系统文件的集合。
数据库的物理结构由数据文件、控制文件和重做日志文件组成。
数据文件:数据文件是数据的存储仓库。
联机重做日志文件:联机重做日志文件包含对数据库所做的更改记录,在发生故障时能够恢复数据。
重做日志按时间顺序存储应用于数据库的一连串的变更向量。
其中仅包含重建(重做)所有已完成工作的最少限度信息。
如果数据文件受损,则可以将这些变更向量应用于数据文件备份来重做工作,将它恢复到发生故障的那一刻前的状态。
重做日志文件包含联机重做日志文件(对于连续的数据库操作时必须的)和归档日志文件(对于数据库操作是可选的,但对于时间点恢复是必须的)。
查看系统的redo log的信息SQL> select group#,sequence#,bytes,members,status from v$log;GROUP# SEQUENCE# BYTES MEMBERS STATUS---------- ---------- ---------- ---------- ----------------1 22 52428800 1 INACTIVE2 23 52428800 1 CURRENT3 21 52428800 1 INACTIVESQL> select member from v$logfile;MEMBER/u01/app/oracle/oradata/hnzk/redo03.log/u01/app/oracle/oradata/hnzk/redo02.log/u01/app/oracle/oradata/hnzk/redo01.log控制文件:控制文件包含维护和验证数据库完整性的必要的信息。