Oracle数据库的逻辑结构与物理结构_第1页
Oracle数据库的逻辑结构与物理结构_第2页
Oracle数据库的逻辑结构与物理结构_第3页
Oracle数据库的逻辑结构与物理结构_第4页
Oracle数据库的逻辑结构与物理结构_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 讲 义Oracle数据库2009.3李明俊第四章Oracle数据库体体系结构构本章内容容4.1Oracle 数据据库的逻逻辑结构构4.2Oracle 数据据库的物物理结构构4.3数数据字字典4.4Oracle的的内存结结构 4.1Oracle 数据据库的逻逻辑结构构从逻辑上上看,Oracle数数据库可可以划分分为表空空间、段段、区和和块,以以有效管管理、存存储、检检索数据据。Oracle数数据库结结构数据库表空间用户表空空间索引表空空间临时表空空间回退表空空间 段数据段索引段临时段回退段 区空闲区使用区数据文件件用户文件件索引文件件临时文件件回退文件件数据块4.1.1表表空间(TABLESP

2、ACE)1表空空间及其其作用逻辑上来来说,Oracle数数据库划划分为表表空间,一个表表空间通通常将相相关的逻逻辑结构构组织在在一起。一个数据据库通常常由一个个或多个个表空间间组成,表空间间可分为为系统(SYSTEM)表空空间和非非系统表表空间。数据库的的数据逻逻辑上存存储在表表空间上上,实际际上存储储在表空空间所对对应的物物理数据据文件上上。2表空空间类型型数据字典典管理表表空间Oracle8以下下版本采采用。本地化管管理表空空间Oracle8i以上上版本采采用。Oracle8i-Oracle9iRelease 1两两种方法法都可采采用。Oracle9iRelease2完完全采用用本地化化管

3、理表表空间。两种管理理方法的的区别:-数据据字典管管理表空空间当空空间需要要扩充时时必须通通过查询数据据字典来来查找空空闲块,对磁盘盘碎片不不能自动动合并。-本地地化管理理表空间间使用位位图的方方法查找找空闲空空间,产产生的磁磁盘碎片片可以自自动合并并。目前安装装的数据据库是Oracle9iRelease2版,可通过过查询DBA_TABLESPACES了了解表空空间的状状态。表空间用户表空空间系统表空空间数据库磁盘驱动器1磁盘驱动器2数据文件件1数据文件件2数据文件件3一个表空空间中的的数据文文件的个个数与操操作系统统有关,一般来来说是1022个;一一个数据据库中的的数据文文件的最最大个数数是

4、65533。使用CREATEDATABASE或CREATECONTROLFILE语语句中的的MAXDATAFILES参数会会限制每每一个数数据库的的数据文文件个数数。数据库的的表空间间个数没没有限制制,但数数据库只只允许65533个数数据文件件,一个个表空间间至少有有一个数数据文件件,因此此数据库库的表空空间数不不能超过过65533个个。数据库管管理员(DBA)可利利用表空空间完成成下列工工作:控制数据据库数据据的磁盘盘分配。将确定的的空间份份额分配配给数据据库用户户。通过使单单个表空空间联机机或脱机机,控制制数据的的可用性性。执行部分分数据库库后备或或恢复操操作。为提高性性能,跨跨越设备备分

5、配数数据存储储。3建立立表空间间下列命令令建立一一个表空空间的格格式:CREATETABLESPACEtablespaceDATAFILEdatafileSIZE nnnM【autoxtend on nextnnnMmaxsize nnnnM |unlimited】EXTENTMANAGEMENTLOCALUNIFORM SIZEnnnM| AUTOALLOCATE;tablespace表空空间datafile-数据据文件autoxtendonnext文文件空间间自动增增加EXTENTMANAGEMENTLOCAL代代表本地地化表空空间UNIFORM 区区大小小相同AUTOALLOCATE区大

6、大小系统统动态自自动分配配下列命令令建立一一个USER_DATA本地地化管理理表空间间,尺寸寸为100M。CREATETABLESPACEUSER_DATADATAFILEf:oracleoradatatestuserl_data.dbf SIZE100mautoxtendonnext100m maxsize1000mEXTENTMANAGEMENTLOCALUNIFORM size500k; 其中:f:oracleoradatatestuserl_data.dbf SIZE100mautoxtendonnext100m maxsize1000m是对数据据文件的的描述,而下面面的子句句是对表表

7、空间的的描述。EXTENTMANAGEMENTLOCALUNIFORM size500k;下列命令令建立一一个USER_DATA本地地化管理理表空间间,尺寸寸为300M, DATAFILE从句指指定多个个数据文文件,并并用逗号号隔开,以建立立大容量量的数据据文件。CREATETABLESPACEUSER_DATADATAFILEf:oracleoradatatestuserl_data.dbfSIZE 100mautoxtendonnext100m maxsize1000m,f:oracleoradatatestuser2_data.dbfSIZE 100mautoxtendonnext100

8、m maxsizeunlimited,f:oracleoradatatestuser3_data.dbfSIZE 100mEXTENTMANAGEMENTLOCALUNIFORM size500k;下列命令令建立一一个临时时表空间间,使用用临时表表空间可可以使得得排序操操作更加加有效,以改进进性能。临时表表空间内内不能驻驻留永久久数据。只能为为临时段段指定临临时表空空间。Createtemporary TablespaceTEMP2TempfileD:oracleoradatatestTemp01.dbfSize 500MEXTENTMANAGERMENTLOCALUniformSize 5M

9、;4修改改表空间间1.修改改表空间间的数据据文件,给表空空间增加加数据文文件ALTERTABLESPACE USER_DATAADDDATAFILEf:oracleoradatauser01.dbfSIZE30M;2.修改改表空间间的可用用性,将将表空间间联机ALTERTABLESPACE USER_DATAONLINE;3.修改改表空间间的非可可用性,将表空空间脱机机ALTERTABLESPACE APPL_DATAOFFLINE;4.修改改表空间间管理只只读模式式ALTERTABLESPACE USER_DATAREAD ONLY;5.修改改表空间间管理只只读写模模式ALTERTABLES

10、PACE USER_DATAREAD WRITE;5查询询表空间间信息有关表空空间的信信息,可可以查询询DBA_TABLESPACES、DBA_DATA_FILES、DBA_FREE_SPACE、V$TABLESPACE、 V$SORT_USAGE、V$DATAFILE等数据据字典和和视图。DBA_TABLESPACES包包含了数数据库中中所有表表空间的的信息(表空间间名字、默认的的存储参参数、类类型、状状态、是是否永久久/临时时等),而USER_TABLESPACES包包含了用用户拥有有的表空空间的信信息。查询DBA_DATA_FILES返回表表空间数数据文件件信息(表空间间名、表表空间的的

11、 数据据文件、数据文文件尺寸寸),是是否自动动扩展设设置信息息。SELECTFILE_NAME,TABLESPACE_NAME,BYTES,AUTOEXTENTSIBLE,MAXBYTESFROMDBA_DATA_FILES;查询DBA_FREE_SPACE返回所所有表空空间中可可用的自自由区,查询一一个表空空间总的的自由空空间;USER_FREE_SPACE显显示当前前用户拥拥有的表表空间中中的自由由区。SELECTTABLESPACE_NAME,SUM(BYTES) FREE_SPACEFROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;查询该视视图从

12、控控制文件件获得表表空间名名。SELECT*FROM V$TABLESPACE;V$DATAFILE ,这这是动态态性能视视图,包包含数据据文件名名字、尺尺寸、数数据文件件所在的的表空间间名、数数据文件件的状态态(OFFLINE、 ONLINE、READWRITE、READONLY)。其他视图图DBA_SEGMENTS、ALL_SEGMENTS、USER_SEGMENTS:包含段段的类型型、段的的尺寸、表空间间相关的的存储参参数。DBA_EXTENTS、ALL_EXTENTS、USER_EXTENTS:包含含区的尺尺寸、与与区相关关的段和和表空间间信息。DBA_TEMP_FILES:包包含本地

13、地化管理理的临时时表空间间的临时时文件。DBA_USERS:包含为为用户指指定的默默认表空空间和临临时表空空间。V$TEMP_EXTENT_MAP:包包含一个个本地化化管理的的临时表表空间的的所有区区的信息息6.UNDO表表空间UNDO表空间间Oracle9i中中引入的的全新的的概念,它自动动对回退段进行行管理,当一个个回退段段不足时时,一个个事务可可以使用用多个回退段,Oracle会自动动使用其其他回退退段,不不终止事事务的运运行。4.1.2段段(SEGMENT)段是表空空间中指指定类型型的逻辑辑存储结结构,是是为表、索引等等逻辑结结构分配配的区(extent)的集集合。Oracle的的段主

14、要要有5种种类型。数据段:用于存存储表、分区的的数据。每建立立一张表表,就分分配一个个段。索引段:存储索索引数据据。每建建立一个个索引,就分配配一个索索引段。临时段:数据库库执行排排序或子子查询时时需要临临时工作作区,系系统自动动建立临临时段,操作执执行结束束自动释释放临时时段。回退段:当用户户对数据据库执行行修改操操作时,系统将将修改前前的数据据存入回回退段,在执行行回退命命令rollback时,回回退段中中的数据据用于撤撤消所作作的修改改。4.1.3区区(EXTENT)区是分配配空间的的最小单单位。一一个区由由一组连连续的逻逻辑块组组成。一个段至至少包含含一个区区。当一一段中所所有空间间已

15、使用用完,Oracle为为该段分分配一个个新的区区。区的的分配和和回收是是系统自自动完成成的。4.1.4块块(BLOCK)块是Oracle内最最小的逻逻辑单元元,是I/O的的最小单单位。一个数据据块对应应一个或或多个操操作系统统物理块块。块的大小小是在数数据库建建立时,使用参参数DB_BLOCK_SIZE决决定(系系统缺省省值为8K)。该参数数在数据据库建立立后不能能更改,除非重重建数据据库。4.2Oracle 数据据库的物物理结构构数据库的的物理结结构是数数据库中中操作系系统文件件的集合合。Oracle数据库文件数据库数据文件控制文件重做日志重做日志参数文件口令文件归档的日志文件4.2.1数

16、数据文件件数据文件件有如下下特点:每个数据据库至少少有一个个数据文文件。每个数据据文件只只与一个个表空间间、一个个数据库库相关。在数据库库中建立立的表、索引等等对象只只能存储储在一个个表空间间中。但但这些对对象的物物理存储储可以在在该表空空间的不不同数据据文件上上。一般般的做法法是将表表数据与与索引数数据存放放在不同同的数据据文件上上,将回回退信息息与临时时数据存存放在不不同的数数据文件件上。对象1对象2对象3表空间1表空间2数据文件件1数据文件件2数据文件件3对象4对象5 创建数据据文件,当建立立一个表表空间时时,会建建立相应应的数据据文件。如建立立一300M的的数据文文件。CREATETA

17、BLESPACEAPPL_DATADATAFILEf:oracleoradatatestappl_data.dbfSIZE 300M;也可以给给已经存存在的表表空间增增加数据据文件。ALTERTABLESPACE USERS ADDDATAFILEf:oracleoradatatestappl_data.dbfSIZE 25M;查询数据据文件通过V$DATAFILE,V$TEMPFILE,DBA_DATA_FILES,DAB_EXTENTS等等数据字字典和视视图可以以查询数数据文件件的相应应信息。例如查查询数据据文件中中的状态态,名字字。其中中system01.dbf文件的的状态为为syste

18、m,表明明该文件件是系统统表空间间的一部部分。调整数据据文件的的尺寸建立文件件时设置置AUTOEXTEND,使使得数据据文件尺尺寸自动动扩展,或使用用ALTERDATABASE设设置自动动扩展;CREATETABLESPACEAPPL_DATADATAFILEf:oracleoradatatestappl_data.dbfSIZE 500MAUTOEXTENDONNEXT 100MMAXSIZE2000M;ALTERDATABASEDATAFILEf:oracleoradatatestappl_data.dbfAUTOEXTEND ON NEXT100MMAXSIZE 2000M;另一方法法是

19、手工工操作,执行命命令ALTER DATABASE DATAFILE的RESIZE从句句来调整整数据文文件尺寸寸。ALTERDATABASEDATAFILEf:oracleoradatatestappl_data.dbfRESIZE1500M;4.2.2重重做日志志Oracle数数据库的的重做日日志(redo log),也称为为事务日日志(transactionlog),是数数据库的的重要组组成部分分,用于于保护所所有已提提交事务务的工作作。日志文件件分为联联机重做做日志文文件和归归档日志志文件。日志文文件的工工作模式式分为归归档模式式(Archivelog)和非归归档模式式(NoArchiv

20、elog)两两种。数据库的的重做日日志是存存储在硬硬盘上的的一组系系统数据据文件。 日志文件组日志文件组归档的事务日志日志切换日志切换归档日志志模式(Archivelog)当联机重重做日志志文件写写满一个个后开始始写另一一个联机机重做日日志文件件之前,把要开开始写的的日志转转存到归归档日志志文件中中,然后后再写该该日志,这种方方式为归归档模式式。非归档日日志模式式(NoArchivelog)当联机重重做日志志文件写写满一个个后直接接覆盖写写另一个个联机重重做日志志文件,进行循循环覆盖盖写联机机重做日日值,会会丢失最最早的日日志,这这种方式式为非归归档模式式。查看联机机重做日日志文件件信息在V$

21、Logfile、V$Log、V$Log_History等等数据字字典中,可以查查看日志志文件的的组、状状态、名名称等信信息。4.2.3控控制文件件控制文件件用于记记录和维维护数据据库的全全局物理理结构,是成功功启动和和操作数数据库必必须的二二进制文文件,以以“.CTL”为文件件后缀。一个数据据库至少少需要一一个控制制文件,每个控控制文件件只与一一个数据据库相关关联。控制文件件包含如如下信息息:数据库名名数据库建建立时间间数据库中中所有数数据文件件和日志志文件的的文件名名和路径径表空间名名称当前重做做日志文文件序号号检查点信信息备份信息息日志历史史记录记录控制制文件名名和路径径的参数数在init

22、.ora的control_files中中。control_files=(F:oracleoradatatestCONTROL01.CTL,F:oracleoradatatestCONTROL02.CTL,F:oracleoradatatestCONTROL03.CTL)查看V$CONTROLFILE,得到控控制文件件的名称称和状态态。查看V$PARAMETER,得到到所有初初始化参参数文件件中的所所有值、状态等等信息。查看V$CONTROLFILE_RECORD_SECTION,获得控控制文件件的记录录段的信信息。通过OEM导航航树来查查看。3控制制文件的的信息查查看4.2.4参参数文件件参数

23、文件件确定存存储结构构的大小小,设置置数据库库的默认认值,设设置数据据库的各各种物理理属性,优化数数据库性性能。参数文件件定义了了Oracle实例(Instance)的特性性,在建建立数据据库或启启动实例例时必须须访问参参数文件件。参数文件件是一文文本文件件,可直直接使用用任何文文本编辑辑器进行行编辑。在修改改该文件件前必须须关闭数数据库。修改的的参数在在重启数数据库时时才生效效。参数文件件包含有有实例配配置参数数,这些些参数置置成特殊殊值,用用于初始始Oracle实例的的许多内内存和进进程设置置,该参参数文件件包含:一组实例例参数的的值;一个实例例所启动动的数据据库名字字;在SGA中存储储结

24、构使使用多少少内存;如何处理理联机日日志文件件;数据库控控制文件件的名称称和位置置;回退段的的信息。4.2.5其其他Oracle文件件其他Oracle文件件主要有有:口令文件件,用于于存放用用户口令令的加密密文件归档文件件,包含含恢复所所需的库库结构和和数据文文件的副副本警告文件件,存放放Oracle数据库库运行当当中出现现的各种种消息、警告和和错误信信息。跟踪文件件,用于于存储后后台进程程和服务务器进程程的跟踪踪信息,包括后后台进程程的警告告和错误误信息,每个后后台进程程都有相相应的跟跟踪文件件,以“.TRC”为为文件后后缀服务器进进程跟踪踪文件,主要跟跟踪SQL语句句,通过过它了解解SQL

25、语句的的性能,并进行行相应的的调整。4.3数数据字字典数据字典典是由一一组拥有有数据库库元数据据的表和和视图组组成,用用于存储储Oracle数据库库的结构构信息。数据字典典一般在在创建数数据库时时建立,没有数数据字典典,PL/SQL就没没法执行行。数据字典典分为静静态字典典和动态态字典。4.3.1静态数据据字典静态数据据字典主主要是表表和视图图。一般般来说,数据字字典中的的表是不不能被访访问的。可以访访问的是是数据字字典中的的视图。静态数数据字典典中的视视图分为为3类,分别别有3个前缀构构成。user_*、all_*、dba_*4.3.2动动态数据据字典动态视图图提供有有关内存存和磁盘盘的运行

26、行情况,用户只只能读动动态视图图,不能能写。动动态视图图以V$为前缀,例如V$logfile、V$session、V$active_instances、V$context等。4.4Oracle的的内存结结构4.4.1系系统全局局区:SystemGlobal AreaSGA数据块缓缓冲区与数数据文件件进行数数据交换换重做日志志缓冲区区与日日志文件件进行数数据交换换SQL共共享池处理SQL语语句的内内存空间间,由库库缓冲、数据字典典缓冲以以及用户户全局区区;4.4.2程程序全局局区:Program GlobalAreaPGA是非共享享区,存存储用户户SQL语句中中的变量量、数组组等;4.4.3排排

27、序区:存放用户户排序数数据,当当数据量量超出排排序区大大小时,将占用磁盘临临时段。内存结构构图在下下页。Oracle内内存结构构用户进程程程序区PGAProgramGlobalArea排序区共享区SQL数数据缓缓存区日日志缓缓存过程.包库缓冲字典缓冲用户全局区全局区( SystemGlobalAreaSGA)LGWRARCHDBWR服务器进进程数据文件件日志文件件归档日志志文件4.4.4后后台进程程后台进程程用于处处理并行行用户请请求所需需的通用用功能,它们不不会损害害系统的的完整性性和性能能。它们们把为每每个用户户运行的的多个Oracle程程序所处处理的功功能统一一起来。后台进程程执行I/O

28、并并监控其其他Oracle进程程以增加加并行性性,从而而使性能能和可靠靠性更加加优越。每个例程程至少包包括5个基本的的后台进进程:DBWRDatabase Writer数数据写入入进程;LGWRLOG Writer日日志写入入进程;SMONSystem Monitor系系统监监控进程程PMONProcessMonitor 进程程监控进进程;CKPTCheckPoint检检查点点进程。数据库写写进程(DBWR)负责将更更新的数数据从数数据库缓缓冲区高高速缓存存写入数数据文件件。日志写进进程(LGWR)将重做日日志缓冲冲区中注注册的更更改写入入重做日日志文件件。系统监控控进程(SMON)系统监控控

29、程序在在数据库库启动时时,负责责检查数数据库的的一致性性,对数数据库进进行恢复复操作过程监视视进程(PMON)是一个被被定时唤唤醒的后后台进程程,负责责在一个个Oracle进程失败败时清理理资源检查点进进程(CKPT)-当日志志文件切切换时产产生,检检查内存存数据是是否完整整写入当当前文件件。归档进程程(ARCH)-在归档档模式下下,把重重做日志志文件写写入归档档日志文文件。4.5小小结Oracle数数据库的的体系结结构包括括物理结结构、逻逻辑结构构和例程程。逻辑辑结构代代表Oracle数据据库中表表、索引引等可见见部分;物理结结构代表表Oracle内部使使用的存存储方式式,如数数据文件件、控制制文件。从逻辑上上看,Oracle数数据库可可以划分分为表空空间、段段、区和和块,以以有效管管理、存存储、检检索数据据。一个数据据库由若若干个表表空间组组成。一一个表空空间由若若干个相相同或不不同类型型的段组组成。在在建立一一个段时时,至少少包含一一个区,区由连连续的数数据块组组成。随随着段的的增长,区的个个数会增增加。数数据块是是Ora

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论