Oracle数据库的体系结构之内存结构
- 格式:ppt
- 大小:2.49 MB
- 文档页数:23
Oracle数据库Oracle数据库是管理数据的一种软件系统,它可以帮助用户快速地存储、管理和检索大量的数据。
Oracle数据库由Oracle公司开发,它是世界上最强大、最可靠的数据库之一,被广泛用于企业级应用程序和数据库管理系统。
一、Oracle数据库的基础知识1. 数据库结构Oracle数据库由一个或者多个表空间组成,每个表空间包含一组数据文件。
一个表空间可以包含多个数据文件,但一个数据文件只能属于一个表空间。
2. 数据库对象Oracle数据库中的每个数据对象都具有一个唯一的名称,例如表(table)、视图(view)、序列(sequence)、索引(index)和存储过程(procedure)等。
它们都被保存在表空间中的数据文件中。
3. SQL语言Oracle数据库主要使用SQL语言来处理数据,包括数据增删改查等常用操作。
二、Oracle数据库的特点1. 效率高Oracle数据库采用高效的管理和存储技术,可以快速访问和操作大量数据。
它具有高速的缓存机制,可以快速地执行查询和更新操作。
2. 可靠性强Oracle数据库拥有高度稳定的系统架构和自动维护机制,可以保证数据的安全性和可靠性。
它可以实现多重备份,在数据发生意外错误时可以快速恢复。
3. Heterogeneous ConnectOracle数据库可以通过网络协议和连接程序实现异构连接,支持其它数据库软件,如MS SQL Server、IBM DB2等。
4. 扩展性强Oracle数据库可扩展性强,可以设计和构建分布式系统,支持跨平台分布式数据库。
5. 多功能性Oracle数据库提供多种功能,包括多种语言的支持,丰富的安全控制和数据库监视等。
6. 可伸缩性Oracle数据库可以支持大量的并发用户,可以处理多种不同的应用程序。
三、Oracle数据库的应用领域Oracle数据库被广泛应用于企业级应用程序和数据库管理系统,主要应用于以下几个领域:1. 金融领域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和PGA组成;进程结构由用户进程和Oracle进程组成。
关键词:ORACLE体系结构;存储结构;内存结构;进程结构1 Oracle的存储结构Oracle的存储结构分为物理存储结构和逻辑存储结构。
1.1 物理存储结构主要由数据文件、控制文件、联机日志文件及数据库实例构成。
Oracle数据库中有许多初始化参数,这些参数用于对整个数据库进行设置或调整,如设置数据库名、数据库块大小、控制文件的名称和位置、数据库实例数等信息。
Oracle 把这些参数存放在一个文件中,这个文件就叫初始化参数文件。
启动数据库时,Oracle会读取参数文件中的值,并根据这些值对数据库实例(instance)进行设置。
具体说是Oracle先从初始化参数文件中获得控制文件的名称及位置,打开控制文件,然后再从控制文件中读取数据文件和联机日志文件的名称和位置,打开它们,因为表、索引等对象的数据就存放在数据文件中,从而就打开了数据库。
1.1.1 控制文件Oracle启动数据库时会访问控制文件,控制文件是在创建数据库的时候创建的,它是一个很小的二进制文件,记录了数据库的名称、创建数据库的时间、数据文件的名称和位置、联机日志文件的名称和位置及表空间等信息。
所以说一个数据库的控制文件是相当重要的,一旦被损坏,数据库将不能正常启动和运行。
所以DBA应该镜像控制文件,把每个镜像的控制文件分布到不同的物理磁盘上,发生灾难时既使其中一个控制文件被损坏,也不会使整个数据库限于瘫痪。
1.1.2 数据文件当用户在Oracle中创建数据库的时候,就创建了一个或多个数据文件,表和索引等对象的数据就物理地存放在数据文件中。
一个表的数据可能会存储在多个数据文件中,但一个数据文件只能属于一个数据库。
Oracle 体系结构概述完整的Oracle 数据库系统通常由两个部分组成:实例(INSTANCE )和数据库(DATABASE )。
数据库是由一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);实例则是由一组Oracle 后台进程/线程以及在服务器分配的共享内存区。
实例和数据库有时可以互换使用,不过二者的概念完全不同。
实例和数据库之间的关系是:数据库可以由多个实例装载和打开,而实例可以在任何时间点装载和打开一个数据库。
准确地讲,一个实例在其生存期中最多只能装载和打开一个数据库。
如果要想再打开其他数据库,必须先丢弃这个实例,并创建一个新的实例。
数据库的主要功能是保存数据,实际上可以将数据库看作是存储数据的容器。
数据库的存储结构也就是数据库存储数据的方式,Oracle 数据库的存储结构分为逻辑存储结构和物理存储结构,这两部分是相互独立但又密切相关的。
逻辑存储结构主要用于描述在Oracle 内部的组织和管理数据的方式,而物理存储结构则用于描述在Oracle 外部,即操作系统中组织和管理数据的方式。
Oracle 对逻辑存储结构和物理存储结构的管理是分别进行的,两者之间不直接影响。
因此Oracle 的逻辑存储结构能够适用于不同的操作系统平台和硬件平台,而不需要考虑物理实现方式。
在启动Oracle 数据库服务器时,实际上是在服务器的内存中创建一个Oracle 实例(即在服务器内存中分配共享内存并创建相关的后台进程),然后由这个实例来访问和控制磁盘中的数据文件。
图2-1以最简单的形式展示了Oracle 实例和数据库。
Oracle 有一个很大的内存块,称为系统全局区(SGA )。
文件文件文件文件文件数据库SGA后台进程后台进程后台进程后台进程后台进程后台进程后台进程实例图2-1 Oracle 实例和数据库当用户连接数据库时,实际上是连接到实例中,由实例负责与数据库通信息,然后再将处理结构返回给用户。
oracle第⼀篇:oracle12c体系结构1、oracle12c的体系结构:内存(逻辑)结构:SGA可以分为数据缓冲区、⽇志缓冲区、共享池、⼤型池、JAVA池、流池。
数据缓冲区(data buffer cache):oracle读取数据的缓存区,执⾏数据的临时存储空间以及修改未提交时,未写⼊磁盘的脏数据。
主要作⽤是提⾼数据的查询速度和减少磁盘的I/O操作;⽇志缓冲区(redo log buffer cache):在执⾏sql语句之前,需要计算出sql执⾏语句的改变向量,并将该向量以⽇志的形式临时存储在该内存区域,然后再去数据缓冲区进⾏数据的更改。
共享池(share pool):共享池分为库缓存、数据字典缓存、sql查询和pl/sql函数结果查询缓存;共享池的⼤⼩9i版本之后就可以直接调整⼤⼩。
库缓存:⽤于临时存储近期已经分过的代码,再次使⽤时就不需要对该代码进⾏分析,直接调⽤。
提⾼语法的执⾏效率。
数据字典缓存:⽤于对近期调⽤的数据字典进⾏缓存,并且数据字典缓存的分配是在库缓存之后的,所以只要库缓存没问题,数据字典缓存也就没问题。
sql查询和pl/sql函数结果查询缓存:当同⼀会话或者多个不同的会话执⾏多次,就会将该查询的结果存储在内存中,当下⼀次查询时直接去调⽤该查询的结果。
在运⽤该执⾏结果之前缓存机制会⾃动的检查查询中的表等对象是否发⽣了变化。
如果变化就会重新查询,使⽤重新查询得到的结果。
⼤型池(large pool):可选择型的内存区域,主要⽤于共享服务器进程的使⽤。
如果未分配再⽤⼑该内存时会在共享池中进⾏分配。
JAVA池(java pool):在运⾏java过程时才使⽤到java池,它作⽤于java对象所需要的堆空间。
但是实际java的实际运⾏还是在数据缓存区。
流池(stream pool):⽤于在redo log中获取⽇志向量,并重新构造执⾏语句,在远程数据库执⾏。
⽽在redo log中提取更改的进程以及应⽤更改的进程将⽤到内存,该内存即是流池。
oracle数据库体系架构详解在学习oracle中,体系结构是重中之重,一开始从宏观上掌握它的物理组成、文件组成和各种文件组成。
掌握的越深入越好。
在实际工作遇到疑难问题,其实都可以归结到体系结构中来解释。
体系结构是对一个系统的框架描述。
是设计一个系统的宏观工作。
这好比建一栋大楼。
你首先应该以图纸的方式把整个大楼的体系架构描述出来。
然后一点点的往里面填充东西。
下面我们先以一个图解的方式对oracle体系结构有一个基本了解根据示图,便于我们记忆,示图分三部分组成,左侧User Process、Server Process、PGA可以看做成Clinet端,上面的实例(Instance)和下面的数据库(Database)及参数文件(parameter file)、密码文件(password file)和归档日志文件(archived logfiles)组成Oracle Server,所以整个示图可以理解成一个C/S架构。
Oracle Server由两个实体组成:实例(instance)与数据库(database)。
这两个实体是独立的,不过连接在一起。
在数据库创建过程中,实例首先被创建,然后才创建数据库。
在典型的单实例环境中,实例与数据库的关系是一对一的,一个实例连接一个数据库,实例与数据库也可以是多对一的关系,即不同计算机上的多个实例打开共享磁盘系统上的一个公用数据库。
这种多对一关系被称为实际应用群集(Real Application Clusters,RAC)RAC极大提高了数据库的性能、容错与可伸缩性(可能耗费更多的存储空间)并且是oracle网格(grid)概念的必备部分。
下面我们来详细看一下oracle数据库的体系架构Oracle体系架构主要有两大部分组成:数据库实例(Instance)和数据库文件(database)数据库实例指数据库服务器的内存及相关处理程序,它是Oracle的心脏。
与Oracle 性能关系最大的是SGA(System Global Area,即系统全局区活共享内存区),SGA包含三个部分:1、数据缓冲区,可避免重复读取常用的数据;2、日志缓冲区,提升了数据增删改的速度,减少磁盘的读写而加快速度;3、共享池,使相同的SQL语句不再编译,提升了SQL的执行速度。
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。
1.简单描述Oracle数据库体系结构的组成及其关系?答:Oracle数据库体系结构由物理存储结构、逻辑存储结构和实例组成。
其中物理存储结构描述了操作系统层次数据的存储与管理,包括数据文件、日志文件、重做日志文件等组成.逻辑结构描述了数据库内部数据的组织与管理,由表空间、段、区、块组成.实例是数据库运行的软件结构,由内存结构和后台进程组成。
数据库运行过程中,用户的操作在内存区中进行,最终通过后台进行转化为对数据库的操作。
2、说明Oracle数据库物理存储结构的组成?Oracle数据库物理结构包括数据文件、控制文件、重做日志文件、初始化参数文件、归档文件、口令文件等。
在控制文件中记录了当前数据库所有的数据文件的名称与位置、重做日志文件的名称与位置,以及数据文件、重做日志文件的状态等。
3、说明Oracle数据库数据文件的作用?数据文件中保存了数据库中的所有数据,包括数据字典以及用户数据。
4、说明Oracle数据库控制文件的作用?控制文件保存数据库的物理结构信息,包括数据库名称、数据文件的名称与状态、重做日志文件的名称与状态等。
在数据库启动时,数据库实例依赖初始化参数定位控制文件,然后根据控制文件的信息加载数据文件和重做日志文件,最后打开数据文件和重做日志文件.5、说明Oracle数据库重做日志文件的作用?重做日志文件是以重做记录的形式记录、保存用户对数据库所进行的修改操作,包括用户执行DDL、DML语句的操作。
如果用户只对数据库进行查询操作,那么查询信息是不会记录到重做日志文件中的。
6、说明数据库逻辑存储结构的组成和相互关系.Oracle9i数据库的逻辑存储结构分为数据块、区、段和表空间四种。
其中,数据块是数据库中的最小I/O单元,由若干个连续的数据块组成的区是数据库中最小的存储分配单元,由若干个区形成的段是相同类型数据的存储分配区域,由若干个段形成的表空间是最大的逻辑存储单元,所有的表空间构成一个数据库.7、说明数据库表空间的种类,以及不同类型表空间的作用.数据库表空间分为系统表空间和非系统表空间两类,其中非系统表空间包括撤销表空间、临时表空间和用户表空间等。