Oracle表空间和数据文件的管理_第1页
Oracle表空间和数据文件的管理_第2页
Oracle表空间和数据文件的管理_第3页
Oracle表空间和数据文件的管理_第4页
Oracle表空间和数据文件的管理_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、第六章表表空间和数数据文件的的管理6.1 OOraclle引入逻逻辑结构的的目的Oraclle数据库库管理系统统并没有像像不少其它它数据库管管理系统那那样直接地地操作数据据文件,而而是引入一一组逻辑结结构。如图图6-1所所示。图6-1图6-1的的虚线左边边为逻辑结结构,右边边为物理结结构。与计计算机原理理或计算机机操作系统统中所讲的的有些不同同,在Orraclee数据库中中,逻辑结结构为Orraclee引入的结结构,而物物理结构为为操作系统统所拥有的的结构。曾有不少学学生问过我我同样的一一个问题,那那就是Orraclee为什么要要引入逻辑辑结构呢?首先可能是是为了增加加Oraccle的可可移植

2、性。Oraccle公司司声称它的的Oraccle数据据库是与IIT平台无无关的,即即在某一厂厂家的某个个操作系统统上开发的的Oraccle数据据库(包括括应用程序序等)可以以几乎不加加修改地移移植到另一一厂家的另另外的操作作系统上。要做到这这一点就不不能直接操操作数据文文件,因为为数据文件件是跟操作作系统相关关的。其次可能是是为了减少少Oraccle从业业人员学习习的难度。因为有了了逻辑结构构Oraccle的从从业人员就就可以只对对逻辑结构构进行操作作,而在所所有的ITT平台上逻逻辑结构的的操作都几几乎完全相相同,至于于从逻辑结结构到物理理结构的映映射(转换换)是由OOraclle数据库库管理

3、系统统来完成的的。6.2 OOraclle数据库库中存储结结构之间的的关系其实图6-1类似于于一个Orraclee数据库的的存储结构构之间关系系的实体关系图。如果读者者学过实体体关系模模型(E-R模型)的的话,从图图6-1中中可以很容容易地得到到Oraccle数据据库中存储储结构之间间的关系。为了帮助助那些没有有学过E-R模型的的读者理解解图6-11,也是为为了帮助那那些学过但但已经忘的的差不多了了的读者恢恢复一下记记忆,在下下面对E-R模型和和图6-11给出一些些简单的解解释。在图6-11中,园角角型方框为为实体,实实线表示关关系,单线线表示一的的关系,三三条线(鹰鹰爪)表示示多的关系系。于

4、是可可以得到:每个数据库库是由一个个或多个表表空间所组组成(至少少一个)。每个表空间间基于一个个或多个操操作系统的的数据文件件(至少一一个)。每个表空间间中可以存存放有零个个或多个段段(Seggmentt)。每个段是由由一个或多多个区段(Exxtentt)所组成成。每个区段是是由一个或或多个连续续的Oraacle数数据块所组组成。每个Oraacle数数据块是由由一个或多多个连续的的操作系统统数据块所所组成。每个操作系系统数据文文件是由一一个或多个个区段(EExtennt)所组组成。每个操作系系统数据文文件是由一一个或多个个操作系统统数据块所所组成。有关段,区区段,和OOraclle数据块块等我

5、们在在接下来的的章节中要要详细地介介绍。6.3 表表空间和数数据文件之之间的关系系及表空间间的分类通过前面的的讨论可知知:Oraacle将将数据逻辑辑地存放在在表空间里里,而物理理地存放在在数据文件件里。表空空间(Taablesspacees)在任何一一个时刻只只能属于一一个数据库库,但是反反过来并不不成立,因因为一个数数据库一般般都有多个个表空间。每个表空空间都是由由一个或多多个操作系系统的数据据文件所组组成,但是是一个操作作系统的数数据文件只只能属于一一个表空间间。表空间可以以被进一步步划分成一一些更小的的逻辑存储储单位。在在一个Orraclee数据库中中,每个数数据文件(Data fil

6、es)可以而且只能属于一个表空间和一个数据库。数据文件实际上是存储模式对象数据的一个容器/仓库。在一个Orraclee数据库中中一般有两两类表空间间,他们是是系统(SYYSTEMM)表空间和和非系统(NNon-SSYSTEEM)表空空间。系统(SYYSTEMM)表空间是与数据库库一起建立立的,在系系统表空间间中存有数数据字典,在在系统表空间间中还包含含了系统还还原(回滚滚)段。虽虽然在系统统表空间中中可以存放放用户数据据,但考虑虑到Oraacle系系统的效率率和管理上上的方便,在在系统表空间间上不应该该存放任何何用户数据据。非系统(NNon-SSYSTEEM)表空空间可以由由数据库管管理员创建

7、建,在非系统表表空间中存存储一些单单独的段,这这些段可以以是用户的的数据段,索索引段,还还原段,和和临时段等等。引入非非系统表空空间可以方方便磁盘空空间的管理理,也可以以更好地控控制分配给给用户磁盘盘空间的数数量。引入入非系统表表空间还可可以将静态态数据和动动态数据有有效地分开开,也可以以按照备份份的要求将将数据分开开存放。使使用如下的的命令创建建一个非系系统表空间间:CREATTE TAABLESSPACEE表空间名名DATTAFILLE子句MINNIMUMM EXTTENT 正整数KK|MBLOOCKSIIZE正整整数KLOGGGINGG|NOLLOGGIINGDEFFAULTT 存储子子

8、句ONLLINE|OFFLLINEPERRMANEENT|TTEMPOORARYY区段管管理子句段管理理子句在这里对以以上命令中中的一些子子句和选项项给出进一一步的解释释:表空间名:所要创建建的表空间间名。DATAFFILE子子句:组成成所要创建建的表空间间的文件说说明。MINIMMUM EEXTENNT:表空间中中所使用的的每个EXXTENTT都必须是是该参数所所指定数的的整数倍。BLOCKKSIZEE:为该表空空间说明非标准准块的大小小。在使用用这一子句句之前,您您必须先设设置DB_CACHHE_SIIZE参数数和DB_nK_CCACHEE_SIZZE参数,而而且该子句句中所说明明的正整数

9、数一定与DDB_nKK_CACCHE_SSIZE参参数的设定定相对应。LOGGIING: 说明明在该表空空间中所有有数据的变变化都将写写入重做日日志文件中中,这也是是默认方式式。NOLOGGGINGG: 说明明在该表空空间中所有有数据的变变化不都写写入重做日日志文件中中,NOLLOGGIING只影影响一些DDML和DDDL命令令。DEFAUULT存储储子句:说说明所有在在该表空间间中所创建建的对象的的默认存储储参数。OFFLIINE:说说明该表空空间在创建建后立即被被置为脱机机,即不能能使用。还有一些其其它的子句句和选项我我们将在后后续的章节节中陆续地地介绍。6.4 表表空间中的的磁盘空间间管

10、理在Oraccle8.0和更早早的版本中中所有表空空间中的磁磁盘空间管管理都是由由数据字典典来管理的的。在这种种表空间的的管理方法法中所有的的空闲区由由数据字典典来统一管管理。每当当区段被分分配或收回回时,Orraclee服务器将将修改数据据字典中相相应的(系系统)表。在数据字典典(系统)管管理的表空空间中所有有的EXTTENTSS的管理都都是在数据据字典中进进行的,而而且每一个个存储在同同一个表空空间中的段段可以具有有不同的存存储子句。在这种表表空间的管管理方法中中您可以按按您的需要要修改存储储参数,所所以存储管管理比较灵灵活但系统统的效率较较低。还有有如果使用用这种表空空间的管理理方法,有

11、有时需要合合并碎片。由于Oraacle88.0对互互联网的成成功支持和和它在其它它方面的卓卓越表现使使得Oraacle的的市场占有有率急速地地增加,同同时Oraacle数数据库的规规模也开始始变的越来来越大。这这样在一个个大型和超超大型数据据库中就可可能有成百百乃至上千千个表空间间。由于每每个表空间间的管理信信息都存在在数据字典典中,也就就是存在系系统表空间间中。这样样系统表空间间就有可能能成为一个个瓶颈从而而使数据库库系统的效效率大大地地下降。正是为了克克服以上弊弊端,Orraclee公司从它它的Oraacle88i开始引引入了另一一种表空间间的管理方方法,叫做做本地管理理的表空间间。本地管

12、理的的表空间其其空闲EXTTENTSS是在表空空间中管理理的,它是是使用位图图(Bittmap)来来记录空闲闲EXTEENTS,位位图中的每每一位对应应于一块或或一组块,而而每位的值值指示空闲闲或分配。当一个EEXTENNT被分配配或释放时时,Oraacle服服务器就会会修改位图图中相应位位的值以反反映该EXXTENTT的新的状状态。位图图存放在表表空间所对对应的数据据文件的文文件头中。使用本地管管理的表空空间减少了了数据字典典表的竞争争,而且当当磁盘空间间分配或收收回时也不不会产生回回滚(还原原),它也也不需要合合并碎片。在本地管管理的表空空间中您无无法按您的的需要来随随意地修改改存储参数数

13、,所以存存储管理不不像数据字字典(系统统)管理的的表空间那那样灵活但但系统的效效率较高。因为在本地地管理的表表空间中,表表空间的管管理,如磁磁盘空间的的分配与释释放等已经经不在需要要操作数据据字典了,所所以系统表表空间的瓶瓶颈问题得得到了很好好的解决。因此Orraclee公司建议议用户创建建的表空间间应该尽可可能地使用用本地管理理的表空间间。在Orraclee9i中本本地管理的的表空间为为默认方式式,但是在在Oraccle8ii中数据字字典(系统统)管理的的表空间为为默认方式式。6.5 创创建数据字字典管理的的表空间曾有位著名名的学者在在一份非常常出名的报报纸上发表表了一篇震震撼了整个个神州大

14、地地的文章,文文章的题目目是:“中国妇女女解放运动动的先驱潘金莲”。这篇文文章一发表表就在社会会上引发了了激烈的争争论,真是是“一石击起起千层浪”。一位考考古学的博士士想利用统统计学的方方法科学地地证明潘金金莲到底是是不是中国国妇女解放放的先驱。首先他必必须将大量量的数据分分门别类地地存入数据据库中。他他找到了您您让您在OOraclle数据库库方面帮他他的忙。您决定首先先要为这个个项目创建建一个名为为jinllian(金莲)的的表空间。为了平衡衡I/O,您您决定该表表空间将基基于两个数数据文件,它它们分别是是J:DDISK22MOOONJIINLIAAN01.DBF和和J:DDISK44MOO

15、ONJIINLIAAN02.DBF,其其大小都为为50M(在在实际中可可能几百)。为了了更有效地地控制磁盘盘的存储分分配,您决决定使用数数据字典管管理的表空空间。为了了防止用户户在创建对对象时使用用的EXTTENT过过小而产生生过多的碎碎片,您决决定最小的的EXTEENT为50K(MINIIMUM EXTEENT 550K)。当需要磁磁盘空间的的自动分配配时第一次次分配为550K(INITTIAL 50K),第第二次也为为50K(NEXTT 50KK),所分分配的最大大磁盘空间间为1000个EXTTENTSS(MAXXEXTEENTS 100)。从第三次次分配开始始按如下的的公式进行行分配:N

16、NEXT * (11+PCTTINCRREASEE/1000)(n-2)。其其中n为分分配的次数数。于是你你发出了如如例6-11的SQLL语句来创创建名为jjinliian(金金莲)的表表空间。例6-1SQL CREAATE TTABLEESPACCE jiinliaan 2 DATAAFILEE J:DISSK2MMOONJINLLIAN001.DBBF SSIZE 50 MM, 3 J:DISSK4MMOONJINLLIAN002.DBBF SSIZE 50 MM 4 MINIIMUM EXTEENT 550K EEXTENNT MAANAGEEMENTT DICCTIONNARY 5 D

17、EFAAULT STORRAGE (INIITIALL 50KK NEXXT 500K MAAXEXTTENTSS 1000 PCTTINCRREASEE 0);表空间已创创建。紧接着为了了验证所创创建的表空空间是不是是数据字典典管理的,您您使用了如如例6-44的SQLL查询语句句。但为了了使该语句句的显示结结果更清晰晰,您又使使用了例66-2和例例6-3的的SQL*Pluss命令对输输出进行了了格式化。例6-2SQLSSET LLINE 120例6-3SQL COL TTABLEESPACCE_NAAME FFOR AA15例6-4SQL SELEECT ttableespacce_naam

18、e, blocck_siize, exteent_mmanaggemennt, ssegmeent_sspacee_mannagemment 2 FROMM dbaa_tabblesppacess;TABLEESPACCE_NAAME BBLOCKK_SIZZE EXXTENTT_MANN SEGGMEN- - - -SYSTEEM 40996 DIICTIOONARYY MANNUALUNDOTTBS 40996 LOOCAL MANNUALCWMLIITE 40996 LOOCAL MANNUALDRSYSS 40996 LOOCAL MANNUALEXAMPPLE 40996 LOOCA

19、L MANNUALINDX 40996 LOOCAL MANNUALTEMP 40996 LOOCAL MANNUALTOOLSS 40996 LOOCAL MANNUALUSERSS 40996 LOOCAL MANNUALJINLIIAN 40996 DIICTIOONARYY MANNUAL 已选择100行。 例6-4查查询语句的的结果表明明表空间jjinliian(金金莲)确实实是一个数数据字典管管理的表空空间,因为为exteent_mmanaggemennt列的显显示结果为为DICTTIONAARY。现现在您可以以使用如例例6-5的的SQL查查询语句来来验证其它它的磁盘存存储参数。例

20、6-5SQL seleect ttableespacce_naame, inittial_exteent, nextt_exttent, 2 mmax_eextennts, pct_incrreasee, miin_exxtlenn 3 fromm dbaa_tabblesppacess;TABLEESPACCE_NAAME IINITIIAL_EEXTENNT NEEXT_EEXTENNT MAAX_EXXTENTTS PCCT_INNCREAASE MMIN_EEXTLEEN- - - - - -SYSTEEM 122888 122888 2449 50 0UNDOTTBS 655336

21、2214744836445 655336CWMLIITE 655336 2214744836445 655336DRSYSS 655336 2214744836445 655336EXAMPPLE 655336 2214744836445 655336INDX 655336 2214744836445 655336TEMP 100485776 100485776 0 100485776TOOLSS 655336 2214744836445 655336USERSS 655336 2214744836445 655336JINLIIAN 532448 532448 1000 0 532448 已

22、选择100行。 从例6-55查询语句句的结果显显示可以清清楚地看出出:所有的的存储参数数都是按您您的要求设设置的,因因为INIITIALL_EXTTENT为为50K(53248字节),NEXT_EXTENT也为50K(53248字节),MIN_EXTENT(MINIMUM EXTENT)也同样为50K(53248字节),最后MAX_EXTENTS(MAXEXTENTS)为100。此时您还应使用如例6-6的SQL查询语句来验证一下与文件有关的信息。例6-6SQL seleect ffile_id, filee_namme, ttableespacce_naame 2 fromm dbaa_dat

23、ta_fiiles 3 ordeer byy fille_idd; FIILE_IID FIILE_NNAME TABLLESPAACE_NNAME- - - 1 D:ORAACLEORADDATAORACCLE9IISYSSTEM001.DBBF SYSTTEM 2 D:ORAACLEORADDATAORACCLE9IIUNDDOTBSS01.DDBF UNDOOTBS 3 D:ORAACLEORADDATAORACCLE9IICWMMLITEE01.DDBF CWMLLITE 4 D:ORAACLEORADDATAORACCLE9IIDRSSYS011.DBFF DRSYYS 5 D:OR

24、AACLEORADDATAORACCLE9IIEXAAMPLEE01.DDBF EXAMMPLE 6 D:ORAACLEORADDATAORACCLE9IIINDDX01.DBF INDXX 7 D:ORAACLEORADDATAORACCLE9IITOOOLS011.DBFF TOOLLS 8 D:ORAACLEORADDATAORACCLE9IIUSEERS011.DBFF USERRS 9 J:DISSK2MMOONJINLLIAN001.DBBF JINLLIAN 110 J:DISSK4MMOONJINLLIAN002.DBBF JINLLIAN 已选择100行。 从例6-66查询语

25、句句的结果显显示可以清清楚地看出出:表空间间JINLLIAN共共有两个操操作系统文文件它们分分别是J:DISSK2MMOONJINLLIAN001.DBBF和J:DDISK44MOOONJIINLIAAN02.DBF。最后您还还应该利用用操作系统统工具,如如NT资源源管理器来来验证一下下真正的物物理文件是是否真的生生成了。如如例6-77所示。例6-7从例6-77的结果显显示可以清清楚地看出出物理文件件J:DDISK22MOOONJIINLIAAN.DBBF确实已已经生成,其其大小也为为50M。您您还应该使使用相同的的方法验证证表空间JJINLIIAN的另另一个操作作系统文件件。6.6 创创建本

26、地管管理的表空空间接下来您决决定还要为为这个项目目创建一个个名为jiinliaan_inndex的的索引表空空间。该表空间只只基于一个个数据文件件,其文件件名是J:DISSK6MOOONJIINLIAAN_INNDEX.DBF,其其大小为550M(在在实际中可可能为几百百)。为为了方便磁磁盘存储的的管理,您您决定使用用本地管理理的表空间间(EXTEENT MMANAGGEMENNT LOOCAL)。根据您您的调查,您决定每个EXTENT的大小为1M(UNIFORM SIZE 1M)。于是您发出了如例6-8的DDL语句来创建名为jinlian_index的索引表空间。例6-8SQL CREAAT

27、E TTABLEESPACCE jiinliaan_inndex2 DAATAFIILE J:DDISK66MOOONjiinliaan_inndex.dbf 3 SIZEE 50 M 4 EXTEENT MMANAGGEMENNT LOOCAL 5 UNIFFORM SIZEE 1M;表空间已创创建。紧接着为了了验证所创创建的表空空间是不是是本地管理理的,您使使用了如例例6-9的的查询语句句。但为了了使该语句句的显示结结果更清晰晰,您可能能需要使用用SQL*Pluss命令对输输出进行格格式化。例6-9SQL SELEECT ttableespacce_naame, blocck_siize,

28、 exteent_mmanaggemennt, ssegmeent_sspacee_mannagemment 2 FROMM dbaa_tabblesppacess 3 WHERRE taablesspacee_namme LIIKE JIN%;TABLEESPACCE_NAAME BBLOCKK_SIZZE EXXTENTT_MANN SEGGMEN- - - -JINLIIAN 40996 DIICTIOONARYY MANNUALJINLIIAN_IINDEXX 40996 LOOCAL MANNUAL例6-9查查询语句的的结果表明明表空间JJINLIIAN_IINDEXX确实是一一个本

29、地管管理的表空空间,因为为exteent_mmanaggemennt列的显显示结果为为LOCAAL。现在在您可以使使用如例66-10查查询语句来来验证其它它的磁盘存存储参数。例6-100SQL seleect ttableespacce_naame, inittial_exteent, nextt_exttent, 2 mmax_eextennts, pct_incrreasee, miin_exxtlenn 3 fromm dbaa_tabblesppacess 4 WHERRE taablesspacee_namme LIIKE JIN%;TABLEESPACCE_NAAME IINITI

30、IAL_EEXTENNT NEEXT_EEXTENNT MAAX_EXXTENTTS PCCT_INNCREAASE MMIN_EEXTLEEN- - - - - -JINLIIAN 532448 532448 1000 0 532448JINLIIAN_IINDEXX 100485776 100485776 2214744836445 0 100485776从例6-110查询语语句的结果果显示可以以清楚地看看出:所有有的存储参参数都是按按您的要求求设置的,因因为INIITIALL_EXTTENT为为1M(10488576字字节),NNEXT_EXTEENT也为为1M(10488576字字节)

31、,MMIN_EXTEENT也同同样为1MM(10488576字字节)。此此时您还应应使用如例例6-111的查询语语句来验证证一下与文文件有关的的信息。例6-111SQL SELEECT ffile_id, filee_namme, ttableespacce_naame, autooexteensibble 2 FROMM dbaa_datta_fiiles 3 WHERRE fiile_iid 5 4 ordeer byy fille_idd; FIILE_IID FIILE_NNAME TABLLESPAACE_NNAME AUT- - - - 6 D:ORAACLEORADDATAORA

32、CCLE9IIINDDX01.DBF INDXX YES 7 D:ORAACLEORADDATAORACCLE9IITOOOLS011.DBFF TOOLLS YES 8 D:ORAACLEORADDATAORACCLE9IIUSEERS011.DBFF USERRS YES 9 J:DISSK2MMOONJINLLIAN001.DBBF JINLLIAN NO 110 J:DISSK4MMOONJINLLIAN002.DBBF JINLLIAN NO 111 J:DISSK6MMOONJINLLIAN_INDEEX.DBBF JINLLIAN_INDEEX NO 从例6-111查询语语句的结

33、果果显示可以以清楚地看看出:表空空间JINNLIANN_INDDEX只有有一个操作作系统文件件,它是JJ:DIISK6MOONNJINNLIANN_INDDEX.DDBF。最最后您还应应该利用操操作系统工工具,如NNT资源管管理器来验验证一下真真正的物理理文件是否否真的生成成了。如例例6-122所示。例6-122从例6-112的结果果显示可以以清楚地看看出:物理理文件J:DISSK6MMOONJINLLIAN_INDEEX.DBBF确实已已经生成,其其大小也为为50 MM。还原表空间间还原表空间间是Oraacle99i刚刚引引入的,它它是用来自自动地管理理还原(回回滚)数据据的。在这这一节只对

34、对还原表空空间给一个个简单的介介绍,后面面有专门的的一章来详详细地介绍绍这方面的的内容。还还原表空间间是用来存存储还原段段的,在还还原表空间间中不能包包含任何其其它的对象象。还原表表空间中的的区段(Exteents)是是由本地管管理的,而而且在创建建还原表空空间的SQQL语句中中只能使用用DATAAFILEE和EXTEENT MMANAGGEMENNT子句。接下来您想想为潘金莲莲项目的数数据单独创创建一个还还原表空间间,它的名名为jinnliann_unddo,它所所基于的操操作系统文文件名为JJ:DIISK7MOONNjinnliann_unddo.DBBF,其大大小为200M。于是是就可以

35、使使用如例66-13的的SQL语语句来创建建所需的还还原表空间间了。例6-133SQL CREAATE UUNDO TABLLESPAACE jjinliian_uundo 2 DATAAFILEE J:DISSK7MMOONjinllian_undoo.DBFF 3 SIZEE 20 M;表空间已创创建。现在您可能能想查看一一下您所创创建的还原原表空间jjinliian_uundo到到底是数据据字典管理理还是本地地管理的。可以使用用如例6-14的SSQL查询询语句来获获取相关的的信息。例6-144SQL SELEECT ttableespacce_naame, blocck_siize, e

36、xteent_mmanaggemennt, ssegmeent_sspacee_mannagemment 2 FROMM dbaa_tabblesppacess 3 WHERRE taablesspacee_namme LIIKE JIN%;TABLEESPACCE_NAAME BBLOCKK_SIZZE EXXTENTT_MANN SEGGMEN- - - -JINLIIAN 40996 DIICTIOONARYY MANNUALJINLIIAN_IINDEXX 40996 LOOCAL MANNUALJINLIIAN_UUNDO 40996 LOOCAL MANNUAL例6-144的查询结

37、结果表明:还原表空空间jinnliann_unddo是本地地管理的,因因为exttent_manaagemeent列的的显示结果果为LOCCAL。之之后您当然然也想确认认一下表空空间jinnliann_unddo到底是是不是还原原表空间。因此您可可以使用如如例6-115的SQQL查询语语句。例6-155SQL SELEECT ttableespacce_naame, stattus, conttentss 2 FROMM dbaa_tabblesppacess 3 WHERRE taablesspacee_namme LIIKE JIN%;TABLEESPACCE_NAAME SSTATUUS

38、 CONNTENTTS - - -JINLIIAN OONLINNE PERRMANEENTJINLIIAN_IINDEXX OONLINNE PERRMANEENTJINLIIAN_UUNDO OONLINNE UNDDO 例6-155的查询结结果表明:表空间jiinliaan_unndo确实实为还原表表空间,因因为conntentts列的显显示结果为为UNDOO。临时表空间间临时表空间间是作为排排序操作使使用的。当当在用户的的SQL语语句中使用用了诸如OORDERR BY,GROUUP BYY子句时OOraclle服务器器就需要对对所选取的的数据进行行排序,这这时如果排排序的数据据量很大内

39、内存的排序序区(在PPGA中)就就可能装不不下,因此此Oraccle服务务器就要把把一些中间间的排序结结果写到磁磁盘上,即即临时表空空间中。当当用户的SSQL语句句中经常有有大规模的的多重排序序而内存的的排序区不不够时,使使用临时表表空间就可可以改进数数据库的效效率。临时表空间间可以由多多个用户共共享,在其其中不能包包含任何永永久对象。临时表空空间中的排排序段是在在实例启动动后当有第第一个排序序操作时创创建的,排排序段在需需要时可以以通过分配配EXTEENTS来来扩展并一一直可以扩扩展到大于于或等于在在该实例上上所运行的的所有排序序活动的总总和。当创建临时时表空间时时,必须使使用标准数数据块。

40、另另外Oraacle还还推荐使用用本地管理理的表空间间。接下来您想想为潘金莲莲项目的数数据单独创创建一个临临时表空间间,它的名名为jinnliann_temmp,它所所基于的操操作系统文文件名为JJ:DIISK8MOOONjiinliaan_teemp.DDBF,其其大小为110M。您您在创建该该临时表空空间之前,想想看一看在在数据库中中究竟有多多少个表空空间以及它它们的状态态,于是您您首先使用用如例6-16的SSQL*PPlus格格式化命令令,之后发发出了如例例6-177的SQLL查询语句句。例6-166SQL col tabllespaace_nname for a15例6-177SQL

41、seleect ttableespacce_naame, stattus, conttentss 2 fromm dbaa_tabblesppacess;TABLEESPACCE_NAAME SSTATUUS CONNTENTTS - - -SYSTEEM OONLINNE PERRMANEENTUNDOTTBS OONLINNE UNDDO CWMLIITE OONLINNE PERRMANEENTDRSYSS OONLINNE PERRMANEENTEXAMPPLE OONLINNE PERRMANEENTINDX OONLINNE PERRMANEENTTEMP OONLINNE TEM

42、MPORAARYTOOLSS OONLINNE PERRMANEENTUSERSS OONLINNE PERRMANEENTJINLIIAN OONLINNE PERRMANEENTJINLIIAN_IINDEXX OONLINNE PERRMANEENTJINLIIAN_UUNDO OONLINNE UNDDO 已选择122行。 例6-177查询语句句的显示结结果表明:在该数据据库中只有有一个临时时表空间,该该表空间的的名为TEEMP,因因为只有该该表空间的的CONTTENTSS列的值为为TEMPPORARRY。为了得到临临时表空间间和对应的的数据文件件,您可以以使用数据据字典v$tabll

43、espaace和 v$ttempffile。于是您使使用了如例例6-199带有两个个表连接的的SQL查查询语句,但但为了使显显示的结果果更加清晰晰您首先使使用了如例例6-188的SQLL*Pluus格式化化命令例6-188SQL col filee forr a500例6-199SQL SELEECT ff.fille#, t.tss#, ff.namme FFile, e Taablesspacee 2 FROMM v$ttempffile f, vv$tabblesppace t 3 WHERRE f.ts# = t.ts#; FILEE# TS# Fille Tabllesp

44、aace - - - - 1 66 D:ORACCLEOORADAATAOORACLLE9ITEMPP01.DDBF TEMPP 例6-199查询语句句的显示结结果表明:6号(TTS#为66)表空间间TEMPP所对应的的数据文件件为D:ORACCLEOORADAATAOORACLLE9ITEMPP01.DDBF,文文件号为11(FILLE#为11)。现在在您就可以以使用如例例6-200的SQLL语句来创创建所需的的临时表空空间了。例6-200SQL CREAATE TTEMPOORARYY TABBLESPPACE jinllian_tempp 2 TEMPPFILEE J:DISSK8MMO

45、ONjinllian_tempp.dbff 3 SIZEE 10 M 4 EXTEENT MMANAGGEMENNT LOOCAL 5 UNIFFORM SIZEE 2 MM;表空间已创创建。接下来您应应该使用如如例6-221,例66-22,和和例6-223的SQQL查询语语句来验证证一下该表表空间是否否已经建立立,它是否否为临时表表空间,以以及它所对对应的数据据文件是否否也被创建建等。例6-211SQL seleect ttableespacce_naame, stattus, conttentss 2 fromm dbaa_tabblesppacess 3 wherre taablessp

46、acee_namme LIIKE JIN%;TABLEESPACCE_NAAME SSTATUUS CONNTENTTS - - -JINLIIAN OONLINNE PERRMANEENTJINLIIAN_IINDEXX OONLINNE PERRMANEENTJINLIIAN_TTEMP OONLINNE TEMMPORAARYJINLIIAN_UUNDO OONLINNE UNDDO 例6-222SQL SELEECT ff.fille#, t.tss#, ff.namme FFile, e Taablesspacee 2 FROMM v$ttempffile f, vv$t

47、abblesppace t 3 WHERRE f.ts# = t.ts#; FILEE# TS# Fille Tabllespaace - - - - 1 66 D:ORACCLEOORADAATAOORACLLE9ITEMPP01.DDBF TEMPP 2 122 J:DISKK8MOOONJJINLIIAN_TTEMP.DBF JINLLIAN_TEMPP例6-233SQL SELEECT ttableespacce_naame, blocck_siize, exteent_mmanaggemennt, 2 ssegmeent_sspacee_mannagemment, minn_extt

48、len 3 FROMM dbaa_tabblesppacess 4 WHERRE taablesspacee_namme LIIKE JIN%;TABLEESPACCE_NAAME BBLOCKK_SIZZE EXXTENTT_MANN SEGGMEN MIN_EXTLLEN- - - - -JINLIIAN 40996 DIICTIOONARYY MANNUAL 532248JINLIIAN_IINDEXX 40996 LOOCAL MANNUAL 110485576JINLIIAN_TTEMP 40996 LOOCAL MANNUAL 220971152JINLIIAN_UUNDO 409

49、96 LOOCAL MANNUAL 655536例6-211,例6-22,和和例6-223的查询询语句显示示结果表明明:您已经经成功地创创建了临时时表空间jjinliian_ttemp。最后您还还应该利用用操作系统统工具,如如NT资源源管理器来来验证一下下临时表空空间所对应应的物理文文件是否真真的生成了了。本地管理的的临时表空空间是基于于临时数据据文件(ttemp filees),这这些文件与与普通的数数据文件非非常相似,但但它们还具具有如下的的特性:临时数据文文件的状态态不能置为为只读。不能将临时时数据文件件重新命名名。临时数据文文件总是置置为NOLLOGGIING状态态。不能使用AALTE

50、RR DATTABASSE命令创创建临时数数据文件。以只读方式式运行的数数据库需要要临时数据据文件。介质恢复是是不能恢复复临时数据据文件的。另外,为了了优化某一一临时表空空间中排序序的效率,应应该将UNNIFORRM SIIZE设为为SORTT_AREEA_SIIZE(PPGA中排排序区的大大小)参数数的整数倍倍。默认临时表表空间默认临时表表空间是在在Oraccle9ii开始引入入的。如果果在创建一一个数据库库时没有设设定默认临临时表空间间,那么任任何一个用用户如果在在创建他时时没有使用用TEMPPORARRY TABLLESPAACE子句句,他就将将使用SYYSTEMM表空间作作为排序区区。

51、这将使使SYSTTEM表空空间碎片化化,从而使使数据库系系统的效率率下降。如如果在创建建一个数据据库时没有有设定默认认临时表空空间,Orraclee服务器将将把SYSSTEM表表空间是默默认临时表表空间的报报警信息写写入报警文文件。因此说明一一个数据库库范围的默默认临时表表空间可以以消除使用用系统(SSYSTEEM)表空空间对临时时数据进行行排序的现现象,从而而提高数据据库系统的的效率。默默认临时表表空间即可可以在创建建数据库时时一起创建建,也可以以在数据库库创建之后后建立。在创建数据据库的同时时创建默认认临时表空空间要使用用CREAATE DDATABBASE命命令,在数数据库创建建之后改变

52、变默认临时时表空间要要使用ALLTER DATAABASEE命令。在数数据库创建建期间建立立默认临时时表空间的的方法在以以后的章节节中介绍。首先可以利利用数据字字典DATTABASSE_PRROPERRTIESS使用如例例6-277的查询语语句来得到到当前的默默认临时表表空间。为为了使显示示清晰,您您应该首先先使用如例例6-244,例6-25,和和例6-226的SQQL*Pllus格式式化命令。例6-244SQL COL PPROPEERTY_NAMEE FORR A255例6-255SQL COL PPROPEERTY_VALUUE FOOR A116例6-266SQL COL DDESCR

53、RIPTIION FFOR AA38例6-277SQL SELEECT * 2 FROMM DATTABASSE_PRROPERRTIESS WHERRE PRROPERRTY_NNAME LIKEE DEEFAULLT%;PROPEERTY_NAMEE PROOPERTTY_VAALUE DEESCRIIPTIOON- - -DEFAUULT_TTEMP_TABLLESPAACE TEMMP Naame oof deefaullt teemporrary tabllespaace 例6-277的查询语语句显示结结果表明:表空间TTEMP为为当前的默默认临时表表空间。随着潘金金莲项目的的不断进

54、展展,有关该该项目的数数据处理也也变得越来来越频繁,为为了提高该该项目的数数据处理的的速度,您您决定将jjinliian_ttemp临临时表空间间设为默认认临时表空空间。于是是您发出了了如例6-28命令令。例6-288SQL ALTEER DAATABAASE 2 DEFAAULT TEMPPORARRY TAABLESSPACEE jinnliann_temmp;数据库已更更改。接下来您可可以使用如如例6-229的SQQL查询语语句来验证证现在的默默认临时表表空间是否否为jinliian_ttemp。例6-299SQL SELEECT * 2 FROMM DATTABASSE_PRROPER

55、RTIESS 3 WHERRE PRROPERRTY_NNAME LIKEE DEEFAULLT%;PROPEERTY_NAMEE PROOPERTTY_VAALUE DEESCRIIPTIOON- - -DEFAUULT_TTEMP_TABLLESPAACE JINNLIANN_TEMMP Naame oof deefaullt teemporrary tabllespaace 当不再处理理金莲项目目数据时,请请别忘了将将默认临时时表空间再再改回为TTEMP表表空间。此此时您应该该使用如例例6-300的命令。例6-300SQL ALTEER DAATABAASE 2 DEFAAULT TEM

56、PPORARRY TAABLESSPACEE temmp;数据库已更更改。最后您还是是应该使用用如例6-31的SSQL查询询语句来验验证一下现现在的默认认临时表空空间是否为为tempp。例6-311SQL SELEECT * 2 FROMM DATTABASSE_PRROPERRTIESS 3 WHERRE PRROPERRTY_NNAME LIKEE DEEFAULLT%;PROPEERTY_NAMEE PROOPERTTY_VAALUE DEESCRIIPTIOON- - -DEFAUULT_TTEMP_TABLLESPAACE TEMMP Naame oof deefaullt teem

57、porrary tabllespaace 在结束这一一节之前,最最后介绍一一下在默认认临时表空空间上的一一些限制。首先默认认临时表空空间不能被被删除,除除非有一个个新的可以以使用的默默认临时表表空间。也也就是必须须先使用AALTERR DATTABASSE将一新新的临时表表空间设置置为默认临临时表空间间,之后才才能删除旧旧的(默认认)临时表表空间。使使用旧的(默默认)临时时表空间的的用户被自自动地赋予予新的默认认临时表空空间。因为默认临临时表空间间必须是临临时(TEEMPORRARY)表空间或或者是系统统(SYSSTEM)表表空间,所所以不能将将默认临时时表空间改改为一个永永久表空间间。也不能

58、能将默认临临时表空间间设置为脱脱机。(在在接下来的的几节中我我们将介绍绍这些操作作。)设置表空间间为脱机 一个表空间间的正常状状态是联机机(Onlline)状状态,此时时数据库用用户可以访访问该表空空间中的数数据。然而而,有时数数据库管理理员需要将将某一表空空间设置为为脱机状态态,以进行行数据库的的维护。其其维护工作作包括:在数据库处处在打开状状态下移动动数据文件件在数据库处处在打开状状态下恢复复一个表空空间或一个个数据文件件执行对表空空间的脱机机备份(虽虽然对表空空间可以进进行联机备备份)使数据库的的一部分不不可以被访访问,而其其它的部分分可以被正正常地访问问当一个表空空间被设置置为脱机状状

59、态时,该该表空间上上的数据是是不可以访访问。如果果用户试图图访问该表表空间上的的数据就会会收到出错错信息。当一个表空空间被设置置为脱机状状态时或重重新被设置置为联机状状态时,OOraclle会把这这一事件记记录在数据据字典和控控制文件中中,也会记记录在报警警文件中。如果当数数据库被关关闭时,某某一表空间间为脱机状状态,那么么当数据库库被加载(MMOUNTT)和重新新打开时该该表空间仍仍保持为脱脱机状态。并不是所有有的表空间间都可以被被设置为脱脱机状态,以以下的表空空间不能被被设置为脱脱机状态:系统(SYYSTEMM)表空间间上面有活动动的还原/回滚段的的表空间默认临时表表空间假设JINNLIA

60、NN数据表空空间出了些些问题,需需要对它进进行维护。于是要将将它的状态态设为脱机机。但为了了慎重起见见您先使用用了如例66-32和和例6-334的SQQL查询语语句以获取取该表空间间和它对应应的数据文文件现在的的状态。例6-322SQL seleect ttableespacce_naame, stattus, conttentss 2 fromm dbaa_tabblesppacess 3 wherre taablesspacee_namme LIIKE JIN%;TABLEESPACCE_NAAME SSTATUUS CONNTENTTS - - -JINLIIAN OONLINNE PE

温馨提示

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

评论

0/150

提交评论