Oracle体系结构介绍.ppt

上传人:b****1 文档编号:1400922 上传时间:2022-10-22 格式:PPT 页数:47 大小:981.50KB
下载 相关 举报
Oracle体系结构介绍.ppt_第1页
第1页 / 共47页
Oracle体系结构介绍.ppt_第2页
第2页 / 共47页
Oracle体系结构介绍.ppt_第3页
第3页 / 共47页
Oracle体系结构介绍.ppt_第4页
第4页 / 共47页
Oracle体系结构介绍.ppt_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

Oracle体系结构介绍.ppt

《Oracle体系结构介绍.ppt》由会员分享,可在线阅读,更多相关《Oracle体系结构介绍.ppt(47页珍藏版)》请在冰豆网上搜索。

Oracle体系结构介绍.ppt

Oracle体系结构介绍,Oracle服务器:

包括Oracle数据库和Oracle实例.Oracle数据库:

数据库由物理文件组成.是一些文件的集合.文件有:

数据文件,控制文件,重做日志文件,初始化参数文件,口令文件,归档日志文件.Oracle实例:

后台进程和内存结构(SGA).,数据文件:

用来存储数据的。

例如:

表,索引等等。

从数据文件中读取出来的数据会首先存放在内存中的SGA,作为缓冲数据。

应用对数据的修改也是先保持在SGA中。

由DBWR在某一时刻将其写入到数据文件中。

查看数据库中的数据文件:

SQLselect*fromdba_data_files;SQLselect*fromv$datafile;第一个SQL语句查询到的是文件的静态信息,第二个SQL语句查询到的动态信息重做日志文件重做日志文件记录了对数据库的所有修改的信息查看日志文件的具体信息,可以通过以下的SQL语句来查看:

SQLselect*fromv$log这个动态视图的查询结果中包含了几个比较重要的信息,例如:

GROUP#:

日志文件组号SEQUENCE#:

日志序列号STATUS:

该组状态(CURRENT表示当前正在使用的,NACTIVE表示非活动组,ACTIVE表示归档未完成)FIRST_CHANGE#:

系统改变号SCN(也称为检查点号),控制文件:

控制文件是一个二进制文件,用来描述数据库的物理结构,一个数据库只需要一个控制文件,控制文件的内容包括:

数据库名及数据库惟一标识数据文件及日志文件的标识系统恢复的必要信息,即SCN我们可以在Oracle的init.ora文件中看到这样一个参数:

controller_files=(file1,file2.filen),这说明数据库有多个控制文件,这些控制文件彼此之间都是镜像的关系。

只要其中一个文件是完好的数据库就可以启动。

通过如下的SQL语句来查看控制文件的信息:

SQLselect*fromv$controller_file初始化参数文件:

数据库实例启动时使用.数据控制文件的位置,数据库名称,归档日志文件,其他内存和函数的参数设置。

Oracle的后台进程比较重要的包括以下几个:

SMONPMONDBWRLGWRARCHCKPT,SMON(SystemMonitor)系统监控进程,在实例启动时执行实例恢复,并负责清理不再使用的临时段。

SMON进程要完成所有“系统级”任务。

PMON感兴趣的是单个的进程,而SMON与之不同,它以系统级为出发点,这是一种数据库“垃圾收集器”。

SMON所做的工作包括:

清理临时空间合并空闲空间针对原来不可用的文件恢复活动的事务执行RAC中失败节点的实例恢复清理OBJ$收缩回滚段“离线”回滚段,PMON(进程监控程序)后台进程清除失败用户的进程,释放用户当时正在使用的资源。

PMON负责释放锁并使其可以被其他用户使用。

同SMON一样,PMON周期性地唤醒检测它是否需要被使用。

PMON负责在出现异常中止的连接之后完成清理释放资源,回滚未提交的事务工作PMON还负责监视其他的Oracle后台进程,并在必要时重启这些后台进程。

PMON还会为实例做另外一件事,这就是向OracleTNS监听器注册这个实例。

DBWR(数据库写入程序)后台进程负责管理数据块缓存区及字典缓存区的内容。

它以批方式把修改块从SGA写到数据文件中.块写入器进程会把块写出到所有磁盘,即分散到各个磁盘上;也就是说,DBWR会做大量的分散写。

执行一个更新时,你会修改多处存储的索引块,还可能修改随机地分布到磁盘上的数据块.,LGWR(日志写入程序)后台进程负责把联机重做日志缓冲区的内容写入联机重做日志文件LGWR是数据库正常操作时唯一向联机重做日志文件写入内容并从重做日志缓冲区直接读取内容的进程。

与DBWR对数据文件执行的完全随机访问相反,联机重做日志文件以序列形式写入.LGWR则是向重做日志完成大量的顺序写.,LGWR后台进程以循环方式向联机重做日志文件写入;当填满第一个日志文件后,就开始向第二个日志文件写入;第二个日志文件填满后,再向第三个日志文件写入。

一旦最后一个重做日志文件填满,LGWR就开始重写第一个重做日志文件的内容.当Oracle以ARCHIVELOG(归档日志)模式运行时,数据库在开始重写重做日志文件之前先对其进行备份。

在线重做日志(LGWR)用于在出现电源故障(实例中止)时“修正”数据文件,而归档重做日志则不同,它是在出现硬盘故障时用于“修正”数据文件,CKPT(检查点进程)用来减少执行实例恢复所需的时间。

检查点使DBWR把上一个检查点以后的全部已修改数据块写入数据文件,并更新数据文件头部和控制文件以记录该检查点。

当一个联机重做日志文件被填满时,检查点进程会自动出现。

可以用数据库实例的init.ora文件中的LOG_CHECKPOINT_INTERVAL参数来设置一个频繁出现的检查点。

注意:

检查点进程并不像它的名字所暗示的那样,真的建立检查点建立检查点是主要是DBWR的任务。

CKPT只是更新数据文件的文件首部,以辅助真正建立检查点的进程(DBWR)。

一.SGA(SystemGlobalArea):

系统全局区.系统全局区的数据被多个用户共享。

当数据库实例启动时,系统全局区内存被自动分配。

SGA按作用的不同,可分为:

数据缓冲区、日志缓冲区、共享池。

数据缓冲区用于存储从磁盘数据文件中读入的数据,供所有用户共享。

修改、插入的数据存储在数据缓冲区中,修改完成或DBWR进程执行时,数据被写入数据文件。

对于缓冲区中已经被修改但尚未写入文件的数据,我们称之为“脏数据”。

Oracle采用LRU(最近最少用)算法来管理数据缓冲区中的数据.在9i之前,数据缓冲区的大小是由DB_BLOCK_BUFFER确定,之后的版本中,是由参数DB_CACHE_SIZE及DB_nK_CACHE_SIZE确定。

日志缓冲区用于缓冲事务日志,在适当的时候再由LGWR进程写入日志文件。

日志缓冲区的大小由参数LOG_BUGGER设定.共享池是对sql,pl/sql程序进行语法分析,编译,执行的内存区域。

包括:

库缓冲区(librarycache),数据字典缓冲区(datadictinarycache),用户全局区(userglobalarea)三个部分。

共享池的大小由参数shared_pool_size设定。

二.程序全局区程序全局区(PGA)是包含单个用户或服务器数据的控制信息的内存区域。

是在用户进程连接到oracle数据库并创建一个会话时,由oracle自动分配的。

PGA是非共享区,主要用于在编程时存储变量与数组。

会话结束时,PGA释放。

三.排序区排序区用于sql的orderby。

oracle优先使用排序区进行排序,如果内存不够,oracle自动使用临时表空间进行排序。

数据库逻辑结构,数据库逻辑结构:

表空间(tablespace):

system.,temp,users,表空间是Oracle数据库最大的逻辑结构,一个Oracle数据库在逻辑上由多个表空间组成,Oracle中有一个称为SYSTEM的表空间,这个表空间是在创建或安装数据库时自动创建的。

主要用于存储系统的数据字典,过程,函数,触发器等;查询表空间:

SQLselect*fromdba_data_files;要查询表空间的空闲信息可以通过SQLselect*fromdba_free_space;表空间的状态:

在线(online)和离线(offline)一旦将表空间设置成离线的状态,则所有对该表空间内对象的修改将无法同步到数据文件中.,设置表空间为离线:

SQLaltertablespacetbs_1offline;(其中tb_1是自己创建的表空间的名称)限制某个用户能够使用的表空间的大小,则可以通过命令:

SQLalterusermaoquota1montbs_1;表空间可以分为:

system,temp,users,temp临时表空间用于为用户排序的ORDERBY语句使用,创建表空间:

CREATETABLESPACESAMPLELOGGINGDATAFILED:

ORACLEORADATAORA92LUNTAN.dbfSIZE5MEXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;ORACLE可以创建的表空间有三种类型:

(1)用户表空间:

最重要,也是用于存放用户数据表空间可以直接写成:

CREATETABLESPACESAMPLETEMPORARY和UNDO表空间是ORACLE管理的特殊的表空间.只用于存放系统相关数据.

(2)TEMPORARY:

临时表空间,用于临时数据的存放;创建临时表空间的语法如下:

CREATETEMPORARYTABLESPACESAMPLE.(3)UNDO:

还原表空间.用于存入重做日志文件.创建还原表空间的语法如下:

CREATEUNDOTABLESPACESAMPLE.,SEGMENTSPACEMANAGEMENT磁盘扩展管理方法:

SEGMENTSPACEMANAGEMENT:

使用该选项时区大小由系统自动确定。

由于Oracle可确定各区的最佳大小,所以区大小是可变的。

UNIFORMSEGMENTSPACEMANAGEMENT:

指定区大小,也可使用默认值(1MB)。

段空间的管理方式:

AUTO:

只能使用在本地管理的表空间中.使用LOCAL管理表空间时,数据块中的空闲空间增加或减少后,其新状态都会在位图中反映出来。

位图使Oracle管理空闲空间的行为更加自动化,并为管理空闲空间提供了更好的性,但对含有LOB字段的表不能自动管理.MANUAL:

目前已不用,主要是为向后兼容.,LOGGING有NOLOGGING和LOGGING两个选项,NOLOGGING:

创建表空间时,不创建重做日志.LOGGING和NOLOGGING正好相反,就是在创建表空间时生成重做日志.DATAFILE用于指定数据文件的具体位置和大小.如:

DATAFILED:

ORACLEORADATAORA92LUNTAN.dbfSIZE5M说明文件的存放位置是D:

ORACLEORADATAORA92LUNTAN.dbf,文件的大小为5M.如果有多个文件,可以用逗号隔开:

DATAFILED:

ORACLEORADATAORA92LUNTAN.dbfSIZE5M,D:

ORACLEORADATAORA92dd.dbfSIZE5M,EXTENTMANAGEMENTLOCAL存储区管理方法在Oracle8i以前,可以有两种选择,一种是在字典中管理(DICTIONARY),另一种是本地管理(LOCAL),从9I开始,只能是本地管理方式.因为LOCAL管理方式有很多优点.在字典中管理(DICTIONARY):

将数据文件中的每一个存储单元做为一条记录,所以在做DM操作时,就会产生大量的对这个管理表的Delete和Update操作.做大量数据管理时,将会产生很多的DM操作,严得的影响性能,同时,长时间对表数据的操作,会产生很多的磁盘碎片,这就是为什么要做磁盘整理的原因.本地管理(LOCAL):

用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁盘.同时能够自动跟踪记录临近空闲空间的情况,避免进行空闲区的合并操作。

删除表空间:

SQLDROPTABLESPACESAMPLE;,段(segment):

Oracle中的段可以分成4种类型:

数据段、索引段、回滚段、临时段。

数据段用来存储用户的数据,每个表都有一个对应的回滚段.索引段用来存储系统、用户的索引信息.回滚段用来存储用户数据修改前的值,回退段与事务是一对多的关系,一个事务只能使用一个回退段,而一个回退段可存放一个或多个事务的回退数据。

临时段用于orderby语句的排序以及一些汇总。

查询用户的数据段信息:

SQLselect*fromuser_extents;查询索引段信息

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1