Oracle数据库体系结构(2)数据库实例
Oracle实例的概念:
实例(Instance):就是数据库管理系统,处于用户与物理数据库之间的一个中间层软件,由一系列内存结构和后台进程组成。
用户操作数据库的过程实质上与数据库实例建立连接,然后通过实例操作数据库的过程。
内存结构是oracle数据库体系结构的重要组成部分,是oracle数据库重要的信息缓存和共享区域。它的大小、速度直接影响数据库的运行效率。oracle数据库内存管理就是根据数据库运行状态的改变而不断优化内存结构大小的过程。
内存区域信心使用范围的不同,分为系统全局去(SGA)和程序全局区(PGA).oracle支持对着两个的完全自动管理。
后台进程是实例被创建时创建的一些具有特定功能的小程序,在数据库实力启动时被启动,用于监视各个服务器的进程状态,协调各个服务器进程的任务。
数据库与实例的关系
通常数据库和实例是一一对应的,即一个数据库对应一个实例。
在同一台计算机上可以创建多个oracle数据库,当要同时使用这些数据库是,,就要创建多个实例。
SGA
SGA是由oracle分配的共享内存结构,包含一个数据库实例的数据和控制信息。SGA数据供所有的服务器进程和后台进程共享所以称为共享全局区。用户对数据库的各种操作主要在SGA中进行。该内存区随数据库实例的创建而创建,终止而释放。
数据高速缓冲区:是存储的是最近从数据文件中检索出来的数据,供所有用户共享。当用户要操作数据库中的数据时,先由服务器进程将数据从磁盘的数据文件中读取到数据高速缓冲区中,然后在缓冲区中进行处理。用户处理后的结果被存储在
数据高速缓冲区中,最后由数据库写入进程DBWR写到磁盘的数据文件中永久保存。
缓存快的类型:
1.脏缓存块:存储的是已经被修改过的数据。
2.空闲缓存块:它不包含任何数据,它们等待后台进程或服务器进程向其中写入数据。
3.命中缓存块:指那些正在被使用的数据块,同时还有很多回话等待修改或访问的数据块。
4.干净缓存块:指那些当前没有被使用,即将被换出内存的缓存块。
缓存块的管理:在oracle中。采用脏缓存块列表和LRU列表来管理数据高速缓冲区中的缓存块。
LRU列表能保证最频繁使用的数据块始终保存在内存中。
当用户进程需要访问某些数据时,Oracle首先在数据高速缓冲区中寻找,若存在,则直接从数据高速缓冲区中读取并返回给用户,这种情况称为“缓存命中”否则,就要从数据文件中读取到高速缓冲区中,然后再从数据高速缓冲区中读取并返回给用户。
这种情况“缓存失败”
当“缓存失败”的情况,oracle的工作原理是,从LRU列表的尾部开始搜索所需要的空闲缓存。在搜索过程中如果搜索到了一个脏缓存块,则移入脏缓存块列表,然后继续搜索;如果搜索到合适的空闲缓存块,则将数据写入,并把该缓存块移动到LRU列表的头部;
如果搜索了一个数量的缓存块后任然没有找到所需空间缓存块,将停止对LRU列表搜索,然后激活DBWR,将脏缓存块列表中的脏缓存块写入数据文件,同时脏缓存块将恢复为空闲缓存块,并移动到LRU列表中。
数据高速缓冲区的大小不能太大也尽量大。
重做日志缓冲区:用于缓存用户对数据库进行修改操作时生成的重做记录。例如,当用户执行insert ,update等对表进行修改,或者执行create alter等语句创建、修改数据库对象时,oracle都会自动为这些操作生成重做记录,并写入重做日志文件。
而为了提高效率,日志和数据修改一样,不是直接写到日志文件中,而是首先被服务器进程写入重做日志缓冲区中,在一定条件下,再由日志写入进程LGWR把重做日志缓冲区内容写入到日志文件中做永久性保存。
在归档模式下,当重做日志切换时,由归档进程ARCH将重做日志文件的内容写入归档文件中。
重做日志缓冲区的大小对数据性能有较大的影响。由参数LOG_BUFFER参数指定,可以在数据运行期间进行调整。例如
alter system set LOG_BUFFER=30M;
共享池
是用与缓存最近执行过的SQL语句、PL/SQL程序和数据字典,是对SQL语句等进行语法分析、编译、执行的区域。由库缓存和数据字典缓存组成。
库缓存简单的将就是将编译执行过的SQL语句、pl/sql程序缓存在里面,当执行这些时。oracle首先在共享池的库缓存中搜索,这样不用对新的语句进行解析,从而大大提高了系统的执行速度。
数据字段缓存区中保存最常使用的数据字典信息。
共享池的大小由初始化参数文件中的SHARED_POOL_SIZE参数指定。
合适的笑答,可使编译过的程序代码常驻内存,大大降低了重复还行相同SQL语句。
java池是一个可选的内存配置项。提供对java程序设计的支持,用于存储java代码,java语句的语法分析表。由参数java_pool_size控制。
PGA
PGA是一个私有的内存区,不能共享,每个服务器进程只能访问自己的PGA。
PGA由四部分组成
排序区:存放排序操作所产生的临时数据
游标去:存放执行游标操作锁产生额数据
会话去:保存用户会话锁具有的权限、角色、性能统计信息
堆栈区:用于保存会话过程中的绑定变量、会话变量等信息
Oracle数据库体系结构(2)数据库实例的更多相关文章
- Oracle数据库体系结构、启动过程、关闭过程
一.Oracle数据库体系结构体系结构由下面组件组成:1.Oracle服务器(Server):由数据库实例和数据库文件组成,另外在用户建立与服务器的连接时启动服务器进程并分配PGA(程序全局区) (1 ...
- Oracle数据库------体系结构
ORACLE体系结构包括:实例(Instance),数据库文件,用户进程(User process),服务器进程以及其他文件. 1.ORACLE实例(instance) 1).要访问数据库必须 ...
- Oracle学习笔记--第2章 oracle 数据库体系结构
第2章 oracle 数据库体系结构 目录: ————————————— 2.1物理存储结构 2.1.1数据文件 2.2.2控制文件 2.1.3重做日志文件 2.1.4其他文件 2.2逻辑存储结构 2 ...
- Oracle数据库基本操作(一) —— Oracle数据库体系结构介绍、DDL、DCL、DML
一.Oracle数据库介绍 1.基本介绍 Oracle数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/ ...
- oracle数据库体系结构
一.oracle数据库体系结构 基本组成: Oracle server:一般情况下是一个instance和一个database组成 一般:1个instance只能对应一个数据库. 特殊:1个数据库可以 ...
- Oracle数据库体系结构-Shared Pool
Oracle数据库简单介绍 对象关系型数据库 重点:一致性+性能 一致性优于性能 处理模型:C/S模型 Client:用户和用户进程 Server:服务器进程,实例,数据库本身 ...
- 创建多个Oracle数据库及相应的实例
转 http://blog.csdn.net/luiseradl/article/details/6972217 对于使用过SQL Server数据库的用户可以会对Oracle中的数据库的实例的概念理 ...
- 关于ORACLE数据库名以及数据实例名等几个重要概念
在Oracle中有关数据库和数据库实例的几个重要概念,有时候如果理解不是很深或者对其疏忽.混淆了,还真容易搞错或弄不清其概念,下面就数据库实例名.数据库名.数据库域名.数据库服务名.全局数据库名几个概 ...
- Oracle体系结构之数据库启动的不同状态
数据库启动的不同状态: nomount状态:spfile和plile mount状态:control file open状态:data file和redo file 启动数据库的过程:nomount状 ...
随机推荐
- maven生成jar包
改了部分cas源码,想重新生成jar包,只好试着脱离eclipse,学了一下maven打jar包的命令,记录如下: 1.首先下载maven (请注意自己的jdk版本,如果使用maven2建议使用jdk ...
- Redis与Reactor模式
Redis与Reactor模式 Jan 9, 2016 近期看了Redis的设计与实现,这本书写的还不错,看完后对Redis的理解有非常大的帮助. 另外,作者整理了一份Redis源代码凝视,大家能够c ...
- ylb:使用sql语句实现添加、删除约束
ylbtech-SQL Server:SQL Server-使用sql语句实现添加.删除约束 --主键约束(Primary Key constraint):要求主键列的数据唯一,并且不允许为空. -- ...
- amchart 图表设置
官网:https://www.amcharts.com/demos/ 属性介绍:https://docs.amcharts.com/3/javascriptcharts/AmLegend 安装 bow ...
- Selection Problem (选择问题)
在一个由n个元素组成的集合中,第i个“顺序统计量(order statistic)”是该集合中第i小的元素.例如,在一个由n个元素组成的集合中,最小值是第1个顺序统计量,最大值是第n个顺序统计量.而“ ...
- jeesite中activiti中的流程表梳理
最近在利用jeesite开发一个小系统,趁着这个机会整理了activiti中的相关表,跟踪流程,然后查看这几个表中数据的变化,可以更好地理解流程的开发.现在整理出来,希望可以帮助更多的人! 表结构 一 ...
- MySQL_使用时遇到的问题汇总
一.data too long for column 'name' at row 1 1.现象:把数据库的字符集编码设置为utf-8,通过DOS界面向表的某一列插入汉字时会遇到类似 data too ...
- Android Studio 使用笔记:文件查询方法总结
搜索单词 Windows: Ctrl + F Mac : Cmd + F 会在当前激活的文件上查询输入的关键字,以高亮显示 跳转行 Windows: Ctrl + L Mac : Cmd + ...
- 用PreferenceActivity做一个标准的设置界面
最后接触到一个任务,做一个工厂设置,在我看来工厂设置不需要多美观,但是一定要方便修改,添加功能,再就是使用方便,我就想到了用PreferenceActivity,android系统的settings就 ...
- Ubuntu下VirtualBox虚拟机与主机机互相ping通的简单配置心得
virtualbox 是个非常优秀的软件,通常与主机之间有3种方式,Bridged方式,NAT方式,host-only方式,安装的默认方式是NAT,可是这样的方式在virtualbox虚拟机下有个缺点 ...