oracle数据库组成
1. Oracle数据库体系架构概要
Oracle数据库系统是一个复杂的软件系统。所谓Oracle的体系架构,是指Oracle数据库管理系统的的组成部分和这些组成部分之间的相互关系,包括内存结构、后台进程、物理与逻辑结构等。
下图为Oracle数据库体系总体图:
Oracle数据库的体系很复杂,复杂的原因在于它最大限度的节约内存,从上图可以看出,它在整体上分实例和数据库文件两部分。
一、实例(Instance):指数据库服务器的内存及相关处理程序,它掘皮亮是Oracle的心脏。与Oracle性能关系最大的是SGA(System Global Area,即系统全局区活共享内存区),SGA包含三个部分:
1、数据缓冲区,可避免重复读取常用的数据;
2、日志缓冲区,提升了数据增删改的速度握衡,减少磁盘的读写而加快速度;
3、共享池,使相同的SQL语句不再编译,提升了SQL的执行速度。
二、数据库文件,由操作系统内的各种文件组组成。
1、Oracle数据库逻辑结构:
1)。表空间,数据库的基本逻辑结构,是一系列数据文件的集合;
2)。段,不同类型数据在数据库中占用的空间,有许多区组合而成;
3)。区,目的是为数据一次性预留一个较大的空间;
4)。块,最小的存储单位,在创建数据库时指定。
2、Oracle数据库物理结构:
1)。数据文件(Data File),存储数据的文件;
2)。重做日志文件(Redo Log File),负责记录数据库内任何数据的处理情况,可用于数据的恢复;
3)。控制文件(Control File),控制判宽和记录数据库的实体结构;
4)。初始化参数文件(Initialization Parameter File),配置内存空间的依据;
5)。口令文件(Password File),认证用户启动和关闭Oracle例程的权限。
2. Oracle数据库是什么
ORACLE是一种适用于大型、中型和微型计算机的关系数据库管理系统,它使用SQL(Structured guery language)作为它的数据库语言。
SQL主要包括数据定义、数据操纵(包括查询)和数据控制等三方面功能。SQL是一种非过程化程度很高的语言,用户只需说明"干什么"而无需具体说明"怎么干"语言简洁、使用方便功能强大,集联机交互与嵌入于一体,能适应广泛的使用环境。ORACLE数据库由三种类型的文件组成:数据库文件、日志文件和控制文件。
数据字典是由ORACLE自动建立并更新的一组表,这些表中记录用户的姓名、描述表和视图以及有关用户权限等的信息。数据字典是只读的,只允许查询。也就是说数据字典是一种数据库资源,每个用户都可以访问数据字典,DBA可通过数据字典来监视ORACLERDBMS的使用,并帮助用户完成其应用。ORACLE RDBMS本身也要利用数据库字典来管理和控制整个数据库。
提起数据库,第一个想到的公司,一般都会是Oracle。该公司成立于1977年,最初是一家专门开发数据库的公司。
Oracle在数据库领域一直处于领先地位。1984年,首先将关系数据库转到了桌面计算机上。然后,Oracle的下一个版本,版本5,率先推出了分布式数据库、客户/服务器结构等崭新的概念。Oracle的版本6首创行锁定模式以及对称多处理计算机的支持……最新的Oracle8主要增加了对象技术,成为关系-对象数据库系统。目前,ORACLE产品覆盖了大、中、小型机等几十种机型,Oracle数据库成为世界上使用最广泛的关系数据系统之一。
3. Oracle数据库的一些基本常识
Oracle数据库的一些基本常识
一、Oracle所包含的组件:
在Oracle,数据库是指整个 Oracle RDBMS 环境,它包括以下组件:
1.Oracle 数据库进程和缓冲(实例)。
2.SYSTEM 表空间包含一个集中系统类目,它可以由一个或多个数据文件构成。
3.其它由数据库管理员 (DBA)(可选)定义的表空间,每个都由一个或多个数据文件构成。
4.两个以上的联机恢复日志。
5.归档恢复日志(可选)。
6.其它文件(控制文件、Init.ora、Config.ora 等)。
每个 Oracle 数据库都在一个中央系统类目和数据字典上运行,它位于SYSTEM 表空间。
二、关于“日志”
Oracle数据库使用几种结构来保护数据:数据库后备、日志、回滚段和控制文件。下面我们将大体上了解一下作为主要结构之一的“日志”:
每一个Oracle数据库实例都提供日志,记录数据库中所作的全部修改。每一个运行的Oracle数据库实例相应地有一个在线日志,它与Oracle后台进程LGWR一起工作,立即记录该实例所作的全部修改。归档(离线)日志是可选择的,一个Oracle数据库实例一旦在线日志填满后,可形成在锋颂毁线日志归档文件。归档的在线日志文件被唯一标识并合并成归档日志。
关于在线日志:一个Oracle数据库的每一实例有一个相关联的在线日志。一个在线日志由多个在线日志文件组成。在线日志樱毁文件(online redo log file)填入日志项(redo entry),日志项记录的数据用于重构对数据库所作的全部修改。
关于归档日志:Oracle要将填满的在线日志文件组归档时,则要建立归档日志(archived redo log)。其对数据库备份和恢复有下列用处:
1数据库后备以及在线和归档日志文件,在操作系统和磁盘故障中可保证全部提交的事物可被恢复。
2在数据库打开和正常系统使用下,如果归档日志是永久保存,在线后备可以进行和使用。
数据库可运行在两种不同方式下:NOARCHIVELOG方式或ARCHIVELOG 方式。数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档。如果数据库在ARCHIVELOG方式下运行,可实施在线日志的归档。
三、物理和逻辑存储结构:
Oracle RDBMS是由表空间组成的,而表空间又是由数银备据文件组成的。表空间数据文件被格式化为内部的块单位。块的大小,是由DBA在Oracle第一次创建的时候设置的,可以在512到8192个字节的范围内变动。当一个对象在Oracle表空间中创建的时候,用户用叫做长度的单位(初始长度((initial extent)、下一个长度(next extent)、最小长度(min extents)、以及最大长度(max extents))来标明该对象的空间大小。一个Oracle长度的大小可以变化,但是要包含一个由至少五个连续的块构成的链。
4.Oracle与Microsoft SQL Server比较下的联网协议:
4. Oracle数据库服务器的两个主要组成部分是什么
两个主要的组成部分是:数据库和实段凳乱例 Oracle数据库用于存储和检索信息,是数据的集握档合。包括逻辑结构和粗戚物理结构。
5. Oracle数据库的物理结构和逻辑结构分别是怎么样的
1.Oracle数据库的物理结构Oracle物理结构包含了数据文件、重做日志文件、控制文件、参数文件、密码文件、归档日志文件、备份文件、告警日志文件、跟踪文件等等;其中数据文件、控制文件、重做日志文件和参数文件是必须的,其他文件可选。
2.Oracle数据库的逻辑结构
Oracle数据库的逻辑结构是一种层次结构,主要由表空间、段、区和数据块等概念组成。逻辑结构是面向用户的,用户使用Oracle开发应用程序使
用的就是逻辑结构。数据库存储层次结构及其构成关系,结构对象也从数据块到表空间形成了不同层次的粒度关系。
6. oracle数据库组成部分
ORACLE由两部分:实例和数据库x0dx0a实例由以下组成: SGA,Shared pool,Database buffer cache,Redo log buffer cache.x0dx0a数据库由物理文件组成,其中必须有的文件是:数据文件,控制文件,重做日志x0dx0a另外还有:参数文件,口令文件,归档日志文件(这三个不是必须的)x0dx0aORACLE SERVER 由两个部分组成,x0dx0a1.INSTANCE:又由内存结构和后台进程组成x0dx0a2.DATABASE:又由数据文件,日志文件和控制文件组成<这三个文件是必需的>.x0dx0aCONTROL FILE是用来连接实例和DATABASE的x0dx0aSQL>SHUTDOWN IMMEDIATEx0dx0aSQL>STARTUP NOMOUNTx0dx0aSQL>ALTER DATABASE MOUNTx0dx0a以上三个过程就是通过CONTROL FILE来连接实例和数据蚂游昌库.x0dx0aSQL>ALTER DATABASE OPENx0dx0a在OPEN的过程对DATABASE的数据文件和重做日志文件进行一次性的验证,验证它们的状态.x0dx0aORACLE INSTANCE:存取数据库的一个手段x0dx0a 一个DATABASE与INSTANCE之间是1:N的关系,一个INSTANCE只能操作一个DATABASE,由内存结构(共享池,x0dx0a BUFFER CACHE,REDO LOG BUFFER CACHE)及相应的进程结构组成(PMON<程序监控进程>,SMON<系统监控进x0dx0a程>,CKPT<检查点进程>)x0dx0aSQL>SHOW SGA ---显示DATABASE内存结构信息x0dx0aSQL>SET WRAP OFFx0dx0aSQL>SET LINESIZE 200x0dx0a以上这两个是设置行宽x0dx0aSQL>SELECT * FROM V$BGPROCESS;x0dx0a将看到在这磨运个系统中所有可能使用到的进程,其中PADDR并不每个进程都分配到有效的地址,即并不是每个进程都是必须的.x0dx0aSQL>SELECT * FROM V$BGPROCESS WHERE PADDR<>\༼\'x0dx0a将显示所有必需的进程.x0dx0aESTABLISHING A CONNECTION AND CREATING A SESSIONx0dx0a连接到ORACLE实例包括建立一个用户连接及创建会话.x0dx0ax0dx0aORACLE MEMORY STRUCTURE (内存结构)x0dx0a由两部分组成:x0dx0a 1.SGAx0dx0a SGA是动态的,其最大值由SGA_MAX_SIZE指定,SGA的内存由SGA COMPONENTS来动态调整.x0dx0a 2.PGA 是不共享的,即其包含的信息是不一样的,有两个可享的内存可以由SGA配置x0dx0a <1> LARGE POOLx0dx0a <2> JAVA POOLx0dx0aSQL>SHOW PARAMETER SHAREDx0dx0aSQL>SHOW PARAMETER DB_CACHEx0dx0aSQL>SHOW PARAMETER LOGx0dx0a以上三个命令是用于查看相关内存信息x0dx0aSQL>ALTER SYSTEM SET DB_CACHE_SIZE=20M;x0dx0a所有内存大小总和不能大于SGA_MAX_SIZE的值,当提示信息出现?号或乱码时,是由于系统的语言问题.x0dx0a可以通过ALTER SESSION SET NLS_LANGUAGE=\'AMERICAN\'或ALTER SESSION SET NLS_LANGUAGE=\"SIMPLEx0dx0a[Page]x0dx0aCHINESE\"x0dx0aSHARED POOL (共享池)x0dx0a含:<1>LIBRARY CACHE 库缓存x0dx0a <2>DATA DICTIONARY CACHE 数据字典缓存,有的地方又称行CACHE,由SHARED_POOL_SIZE指定大小闷扒.x0dx0aSQL>ALTER SYSTEM SET SHARED_POOL_SIZE=64M;x0dx0aLIBRARY CACHE 主要为提高代码的共享,存储的是最近使用的SQL和PL/SQL代码.x0dx0a<1>.用最近最少使用(LRU)算法x0dx0a<2>.包括两个结构 1:共享SQL代码 2:共享PL/SQL代码x0dx0a<3>.不可直接定义,而由SHARED POOL SIZE决定.x0dx0aDATA DICTONARY CACHE.x0dx0a执行此命令的过程是:首先确认是否存在AUTHORS,,然后确认字段存不存在,再检查语法,最后验证权限,而x0dx0a这些信息就属于DATA DICTIONARY CACHE的内容.其包含的信息有:DATABASE FILES,表,索引,字段,用户,x0dx0a权限和其他数据库对象.
7. oracle 数据库 是什么结构
Oracle数据库的体系结构包括四个方面:数据库的物理结构、逻辑结构、内存结构及进程。
1. 物理结构
物理数据库结构是由构成数据库肢掘的操作系统文件所决定,Oracle数据库文件包括:
数据文件(Data File)
数据文件用来存储数据库中的全部数据,例如数据库表中的数据和索引数据.通常以为*.dbf格式,例如:userCIMS.dbf 。
日志文件(Redo Log File)
日志文件用于记录数据库所做的全部变更(如增加、删除、修改)、以便在系统发生故障时,用它对数据库进行恢复。名字通常为Log*.dbf格式,如:Log1CIMS.dbf,Log2CIMS.dbf 。
控制文件(Control File)
每个Oracle数据库都有相应的控制文件,它们是较小的二进制文件,用于记录数据库的物理结构,如:数据库名、数据库的数据文件和日志文件的名字和位置等信息。用于打开、存取数据库。名字通常为Ctrl*ctl 格式,如Ctrl1CIMS.ctl。
配置文件
配置文件记录Oracle数据库运行时的一些重要参数,如:数据块的大小,内存结构的配置等。名字通常为init*.ora 格式,如:initCIMS.ora 。
2 逻辑结构
Oracle数据库的逻辑结构描述了数据库从逻辑上如何来存储数据库中的数据。逻辑结构包括表空间、段、区、数据块和模式对象。数据库的逻辑结构将支配一个数据库如何使用系统的物理空间.模式对象及其之间的联系则描述了关系数据库之间的设计.
一个数据库从逻辑上说是由一个或多个表空间所组成,表空间是数据库中物理编组的数据仓库,每一个表空间是由段(segment)组成,一个段是由一组区(extent)所组成,一个区是由一组连续的数据库块(database block)组成,而一个历颤核数据库块对应硬盘上的一个或多个物理块。一个表空间存放一个或多个数据库的物理文件(即数据文件).一个数据库中的数据被逻辑地存储在表空间上。
表空间(tablespace)
Oracle数据库被划分为一个或多个称为表空间的逻辑结构,它包括两类表空间,System表空间和非System表空间,其中,System表空间是安装数据库时自动建立的,它包含数据库的全部数据字典,存储过程、包、函数和触洞兆发器的定义以及系统回滚段。除此之外,还能包含用户数据。。
一个表空间包含许多段,每个段有一些可以不连续的区组成,每个区由一组连续的数据块组成,数据块是数据库进行操作的最小单位。
每个表空间对应一个或多个数据文件,每个数据文件只能属于一个表空间。
数据库块(database block)
数据库块也称逻辑块或ORACLE块,它对应磁盘上一个或多个物理块,它的大小由初始化参数db-block-size(在文件init.ora中)决定,典型的大小是2k。Pckfree 和pctused 两个参数用来优化数据块空间的使用。
区(extent)
区是由一组连续的数据块所组成的数据库存储空间分配的逻辑单位。
段(segment)
段是一个或多个不连续的区的集合,它包括一个表空间内特定逻辑结构的所有数据,段不能跨表空间存放。Oracle数据库包括数据段、索引段、临时段、回滚段等。
模式对象(schema object)
Oracle数据库的模式对象包括表、视图、序列、同意词、索引、触发器、存储.过程等,关于它们将重点在后面章节介绍。
3.Oracle Server系统进程与内存结构
当在计算机服务器上启动Oracle数据库后,称服务器上启动了一个Oracle实例(Instance)。ORACLE 实例(Instance)是存取和控制数据库的软件机制,它包含系统全局区(SGA)和ORACLE进程两部分。SGA是系统为实例分配的一组共享内存缓冲区,用于存放数据库实例和控制信息,以实现对数据库中数据的治理和操作。
进程是操作系统中一个极为重要的概念。一个进程执行一组操作,完成一个特定的任务.对ORACLE数据库治理系统来说,进程由用户进程、服务器进程和后台进程所组成。
当用户运行一个应用程序时,系统就为它建立一个用户进程。服务器进程处理与之相连的用户进程的请求,它与用户进程相通讯,为相连的用户进程的ORACLE请求服务。
为了提高系统性能,更好地实现多用户功能,ORACLE还在系统后台启动一些后台进程,用于数据库数据操作。
系统进程的后台进程主要包括:
SMON 系统监控进程:(system monitor)负责完成自动实例恢复和回收分类(sort)表空间。
PMON 进程监控进程:(PRocess monitor)实现用户进程故障恢复、清理内存区和释放该进程所需资源等。
DBWR 数据库写进程:数据库缓冲区的治理进程。
在它的治理下,数据库缓冲区中总保持有一定数量的自由缓冲块,以确保用户进程总能找到供其使用的自由缓冲块。
LGWR 日志文件写进程:是日志缓冲区的治理进程,负责把日志缓冲区中的日志项写入磁盘中的日志文件上。每个实例只有一个LGWR进程。
ARCH 归档进程:(archiver process)把已经填满的在线日志文件拷贝到一个指定的存储设备上。仅当日志文件组开关(switch)出现时,才进行ARCH操作。ARCH不是必须的,而只有当自动归档可使用或者当手工归档请求时才发出。
RECO 恢复进程:是在具有分布式选项时使用的一个进程,主要用于解决引用分布式事务时所出现的故障。它只能在答应分布式事务的系统中出现。
LCKn 封锁进程:用于并行服务器系统,主要完成实例之间的封锁。
内存结构(SGA)
SGA是Oracle为一个实例分配的一组共享内存缓冲区,它包含该实例的数据和控制信息。SGA在实例启动时被自动分配,当实例关闭时被收回。数据库的所有数据操作都要通过SGA来进行。
SGA中内存根据存放信息的不同,可以分为如下几个区域:Buffer Cache:存放数据库中数据库块的拷贝。它是由一组缓冲块所组成,这些缓冲块为所有与该实例相链接的用户进程所共享。缓冲块的数目由初始化参数DB_BLOCK_BUFFERS确定,缓冲块的大小由初始化参数DB_BLOCK_SIZE确定。大的数据块可提高查询速度。它由DBWR操作。
b. 日志缓冲区Redo Log Buffer:存放数据操作的更改信息。它们以日志项(redo entry)的形式存放在日志缓冲区中。当需要进行数据库恢复时,日志项用于重构或回滚对数据库所做的变更。日志缓冲区的大小由初始化参数LOG_BUFFER确定。大的日志缓冲区可减少日志文件I/O的次数。后台进程LGWR将日志缓冲区中的信息写入磁盘的日志文件中,可启动ARCH后台进程进行日志信息归档。
c. 共享池Shared Pool:包含用来处理的SQL语句信息。它包含共享SQL区和数据字典存储区。共享SQL区包含执行特定的SQL语句所用的信息。数据字典区用于存放数据字典,它为所有用户进程所共享。
Cursors:一些内存指针,执行待处理的SQL语句
其他信息区:除了上述几个信息区外,还包括一些进程之间的通讯信息(如封锁信息);在多线索服务器配置下,还有一些程序全局区的信息,请求队列和响应队列等。 本文来自: http://hi..com/ipbun/blog/item/3f75d7230a7f5ee698250a7c.html
8. ORACLE数据库结构的简介
关于ORACLE数据库结构的简介
ORACLE的数据库结构大家都了解吗?如果不了解,下面我为大家整理了关于ORACLE数据库结构简介的文章,希望能为你提供帮助:
一、物理结构:
1、数据文件:ORACLE数据库包含若干数据文件,数据文件存储数据库数据,包括表、索引等等。数据文件的几个特点:
1)一个数据文件只允许分配给一个数据库
2)数据文件可设置为自动扩展
3)一个或多个数据文件构成表空间
在进行数据库操作的时候,数据库先从内存寻找要操作的数据,如果没有找到的话,再从数据文件取出数据放在内存中,然后才对内存中的数据进行相关的操作。操作完的数据并没有立即写到数据文件中(这样减少了磁盘的IO),而是放在内存中,然后由DBWn进程决定何时批量写入数据文件。
2、控制文件:每一个数据库都有一个或多个控制文件,控制文件包含了数据库的物理结构,包括:
1)数据库名
2)数据文件名及位置
3)重做日志文件名及位置
4)数据库的建立时间等等
一般一个数据库都有若干个控制文件镜像。数据库在打开的时候(ALTER
DATABASE OPEN),会读取控制文件中的信息来打开数据库。当数据库的物理结构发生变化的时候,比如增加一个数据文件、一组重做日志等等,控制文件都会自动地做相应的修改。在数据库物理结构发生变化后,最好重新备份一下控制文件,用于数据库恢复。
3、重做日志文件:重做日志中记录了数据的变化。一般一个数据库都会有两到三组重做日志文件。同一日志组的镜像最好分布于不同的磁盘上。
4、归档日志:当数据库启动归档的时候,重做日志会被自动归档到指定的位置。
5、初始化参数文件:包含了数据库启动时的配置信息
6、警告和跟踪日志文件
1)跟踪文件:每一个后台进程都有一个单独的'跟踪文件,比如当系统发现某一个进程有问题的时候,相关的信息就会写到相应的跟踪文件中。可以从数据库的跟踪文件来发现和调试数据库的错误。
2)警告文件,也叫警告日志。是一个特别的跟踪文件,它记录着数据库启动、运行中的相关信息,它是按时间顺序进行记录的。
7、备份文件
二、逻辑结构
1、表空间:相关逻辑对象的集合。在oracle10g中,在创建数据库的时候就自动创建了SYSTEM和SYSAUX表空间。
2、数据块:数据存储在数据块中,一个数据块的大小(DB_BLOCK_SIZE)由操作系统块来决定。可以指定5种,分别为2K、4K、8K、16K、32K。
3、区:一系列连续的数据块组成区,区存储特定类型的数据,比如索引,表等等。
4、段:由一系列区组成段。
1)数据段:对于每一个非聚集表有一数据段,表的所有数据存放在该段。每一聚集有一个数据段,聚集中每一个表的数据存储在该段中。分区表中的每一个分区有一个数据段,分区中的数据存储在该段中。
2)索引段:每一个索引有一索引段,存储索引数据。分区索引中的每一分区有一个索引段。
3)回滚段:用于临时存储要撤消的信息,这些信息用于生成读一致性数据库信息,在数据库恢复时使用,回滚未提交的事务。系统回滚段用于处理系统事务,不建议用户使用系统回滚段来做其它操作。
4)临时段:当一个SQL语句需要临时工作区时,由ORACLE建立临时段。当语句执行完毕,临时段的区退回给系统。
;9. Oracle数据库由哪几种文件组成
核心猜斗文件:数据文件,控制文件,日志文件,参数文件
非核心文脊启件:密码文件,告警日志穗野磨文件,各种跟踪文件
10. 简述Oracle数据仓库的体系结构
Oracle数据仓库的体系结构可以分成三个层次:
数据获取层:Oracle Database Enterprise ETL Option + Oracle Database Data Quality Option 在Oracle Database 10g 同一个软件中实现了从数据模型设计,数据质量管理,ETL 流程设计和元数据管理的全部功能。所有的 ETL 过程可以通过Oracle数据仓库中提供的工具: Oracle Warehouse Builder 生成的ETL 脚本存储在Oracle 10g 数据库中执行,按照数据仓库系统的要求,定时地完成数据的抽取并加载到数据仓库系统中。由于ETL 的执行是在Oracle 10g 数据库中,可以充分利用Oracle 10g 数据库提供的强大并行处理能力,保证数据获取的高效、可靠执行。
数据存储层:Oracle 10g数据库实现对数据仓库系统各种类型数据的集中存储和管理,包括各种结构化数据 和非结构化数据。Oracle 10g数据库内置OLAP和数据挖掘功能,不需要进行复杂的数据迁移,就可以直接 在关系数据库中完成复杂的统计分析功能。Oracle 10g数据库通过使用分区技术可以支持海量数据的存储,一个数据库最大数据量为8,000 PB(1PB=1024TB)。Oracle 10g提供强大的并行处理能力,满足数据仓库系统 对于性能和扩展性方面的要求。而且系统通过网格控制台(Grid Control)进行数据仓库统一管理。
数据展现层:Oracle提供全新的商务智能解决方案Oracle BI EE、OLAP分析开发工具(JDeveloper+BI Beans)和 数据挖掘工具(Oracle Data Miner),将统计分析的结果通过各种方式展现。Oracle的数据展现方案使尺缺用Java 和 HTML两种方式实现,基于标准的J2EE平台。由于使用统一的元数据库,不需要进行元数据的交换,能够 最大限度地减少系统的维护工作。同时,Oracle的数据展现方案提供具有强大分析功能和非常易岁高用的分析 仪乎困尺表板, 并支持通过门户(Portal)技术进行集成,为不同类型的用户提供一致的访问界面。
相关阅读
数据仓库是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,它用于支持企业或组织的决策分析处理。
数据仓库,英文名称为Data Warehouse,可简写为DW。
数据仓库之父Bill Inmon在1991年出版的“Building the Data Warehouse”一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。