Oracle表空間與數(shù)據(jù)文件的管理_第1頁
Oracle表空間與數(shù)據(jù)文件的管理_第2頁
Oracle表空間與數(shù)據(jù)文件的管理_第3頁
Oracle表空間與數(shù)據(jù)文件的管理_第4頁
Oracle表空間與數(shù)據(jù)文件的管理_第5頁
已閱讀5頁,還剩99頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第六章表空間和數(shù)據(jù)文件的管理6.1 Oracle引入邏輯結構的目的Oracle數(shù)據(jù)庫管理系統(tǒng)并沒有像不少其它數(shù)據(jù)庫管理系統(tǒng)那樣直接地操作數(shù)據(jù)文件,而是引入一組邏輯結構。如圖6-1所示。圖6-1圖6-1的虛線線左邊為邏輯輯結構,右邊邊為物理結構構。與計算機機原理或計算算機操作系統(tǒng)統(tǒng)中所講的有有些不同,在在Oraclle數(shù)據(jù)庫中中,邏輯結構構為Oraccle引入的的結構,而物物理結構為操操作系統(tǒng)所擁擁有的結構。曾有不少學生問問過我同樣的的一個問題,那那就是Oraacle為什什么要引入邏邏輯結構呢?首先可能是為了了增加Oraacle的可可移植性。OOraclee公司聲稱它它的Oraccle數(shù)據(jù)庫庫是

2、與IT平平臺無關的,即即在某一廠家家的某個操作作系統(tǒng)上開發(fā)發(fā)的Oraccle數(shù)據(jù)庫庫(包括應用用程序等)可可以幾乎不加加修改地移植植到另一廠家家的另外的操操作系統(tǒng)上。要要做到這一點點就不能直接接操作數(shù)據(jù)文文件,因為數(shù)數(shù)據(jù)文件是跟跟操作系統(tǒng)相相關的。其次可能是為了了減少Oraacle從業(yè)業(yè)人員學習的的難度。因為為有了邏輯結結構Oraccle的從業(yè)業(yè)人員就可以以只對邏輯結結構進行操作作,而在所有有的IT平臺臺上邏輯結構構的操作都幾幾乎完全相同同,至于從邏邏輯結構到物物理結構的映映射(轉換)是是由Oraccle數(shù)據(jù)庫庫管理系統(tǒng)來來完成的。6.2 Oraacle數(shù)據(jù)據(jù)庫中存儲結結構之間的關關系其實圖6

3、-1類類似于一個OOraclee數(shù)據(jù)庫的存存儲結構之間間關系的實體體關系圖。如如果讀者學過過實體關系系模型(E-R模型)的的話,從圖66-1中可以以很容易地得得到Oraccle數(shù)據(jù)庫庫中存儲結構構之間的關系系。為了幫助助那些沒有學學過E-R模模型的讀者理理解圖6-11,也是為了了幫助那些學學過但已經(jīng)忘忘的差不多了了的讀者恢復復一下記憶,在在下面對E-R模型和圖圖6-1給出出一些簡單的的解釋。在圖6-1中,園園角型方框為為實體,實線線表示關系,單單線表示一的的關系,三條條線(鷹爪)表表示多的關系系。于是可以以得到:每個數(shù)據(jù)庫是由由一個或多個個表空間所組組成(至少一一個)。每個表空間基于于一個或多

4、個個操作系統(tǒng)的的數(shù)據(jù)文件(至至少一個)。每個表空間中可可以存放有零零個或多個段段(Segmment)。每個段是由一個個或多個區(qū)段段(Exteent)所組組成。每個區(qū)段是由一一個或多個連連續(xù)的Oraacle數(shù)據(jù)據(jù)塊所組成。每個Oraclle數(shù)據(jù)塊是是由一個或多多個連續(xù)的操操作系統(tǒng)數(shù)據(jù)據(jù)塊所組成。每個操作系統(tǒng)數(shù)數(shù)據(jù)文件是由由一個或多個個區(qū)段(Exxtent)所所組成。每個操作系統(tǒng)數(shù)數(shù)據(jù)文件是由由一個或多個個操作系統(tǒng)數(shù)數(shù)據(jù)塊所組成成。有關段,區(qū)段,和和Oraclle數(shù)據(jù)塊等等我們在接下下來的章節(jié)中中要詳細地介介紹。6.3 表空間間和數(shù)據(jù)文件件之間的關系系及表空間的的分類通過前面的討論論可知:Orra

5、cle將將數(shù)據(jù)邏輯地地存放在表空空間里,而物物理地存放在在數(shù)據(jù)文件里里。表空間(Tablespaces)在任何一個時刻只能屬于一個數(shù)據(jù)庫,但是反過來并不成立,因為一個數(shù)據(jù)庫一般都有多個表空間。每個表空間都是由一個或多個操作系統(tǒng)的數(shù)據(jù)文件所組成,但是一個操作系統(tǒng)的數(shù)據(jù)文件只能屬于一個表空間。表空間可以被進進一步劃分成成一些更小的的邏輯存儲單單位。在一個個Oraclle數(shù)據(jù)庫中中,每個數(shù)據(jù)據(jù)文件(Daata fiiles)可以而且只只能屬于一個個表空間和一一個數(shù)據(jù)庫。數(shù)據(jù)文件實際上是存儲模式對象數(shù)據(jù)的一個容器/倉庫。在一個Oraccle數(shù)據(jù)庫庫中一般有兩兩類表空間,他他們是系統(tǒng)(SYSSTEM)表

6、空間和非系系統(tǒng)(Nonn-SYSTTEM)表空空間。系統(tǒng)(SYSTTEM)表空間是與數(shù)據(jù)庫一一起建立的,在在系統(tǒng)表空間中中存有數(shù)據(jù)字字典,在系統(tǒng)統(tǒng)表空間中還還包含了系統(tǒng)統(tǒng)還原(回滾滾)段。雖然然在系統(tǒng)表空間中中可以存放用用戶數(shù)據(jù),但但考慮到Orracle系系統(tǒng)的效率和和管理上的方方便,在系統(tǒng)統(tǒng)表空間上不不應該存放任任何用戶數(shù)據(jù)據(jù)。非系統(tǒng)(Nonn-SYSTTEM)表空空間可以由數(shù)數(shù)據(jù)庫管理員員創(chuàng)建,在非系統(tǒng)表空間間中存儲一些些單獨的段,這這些段可以是是用戶的數(shù)據(jù)據(jù)段,索引段段,還原段,和和臨時段等。引引入非系統(tǒng)表表空間可以方方便磁盤空間間的管理,也也可以更好地地控制分配給給用戶磁盤空空間的數(shù)量

7、。引引入非系統(tǒng)表表空間還可以以將靜態(tài)數(shù)據(jù)據(jù)和動態(tài)數(shù)據(jù)據(jù)有效地分開開,也可以按按照備份的要要求將數(shù)據(jù)分分開存放。使使用如下的命命令創(chuàng)建一個個非系統(tǒng)表空空間:CREATE TABLEESPACEE表空間名DATAFFILE子句句MINIMMUM EXXTENT 正整數(shù)K|MBLOCKKSIZE正正整數(shù)KLOGGIING|NOOLOGGIINGDEFAUULT 存儲儲子句ONLINNE|OFFFLINEPERMAANENT|TEMPOORARY區(qū)段管理子子句段管理子句句在這里對以上命命令中的一些些子句和選項項給出進一步步的解釋:表空間名:所要要創(chuàng)建的表空空間名。DATAFILLE子句:組組成所要創(chuàng)建

8、建的表空間的的文件說明。MINIMUMM EXTEENT:表空間中所所使用的每個個EXTENNT都必須是是該參數(shù)所指指定數(shù)的整數(shù)數(shù)倍。BLOCKSIIZE:為該該表空間說明非標準塊塊的大小。在在使用這一子子句之前,您您必須先設置置DB_CAACHE_SSIZE參數(shù)數(shù)和DB_nnK_CACCHE_SIIZE參數(shù),而而且該子句中中所說明的正正整數(shù)一定與與DB_nKK_CACHHE_SIZZE參數(shù)的設設定相對應。LOGGINGG: 說說明在該表空空間中所有數(shù)數(shù)據(jù)的變化都都將寫入重做做日志文件中中,這也是默默認方式。NOLOGGIING: 說說明在該表空空間中所有數(shù)數(shù)據(jù)的變化不不都寫入重做做日志文件中

9、中,NOLOOGGINGG只影響一些些DML和DDDL命令。DEFAULTT存儲子句:說明所有在在該表空間中中所創(chuàng)建的對對象的默認存存儲參數(shù)。OFFLINEE:說明該表空空間在創(chuàng)建后后立即被置為為脫機,即不不能使用。還有一些其它的的子句和選項項我們將在后后續(xù)的章節(jié)中中陸續(xù)地介紹紹。6.4 表空間間中的磁盤空空間管理在Oraclee8.0和更更早的版本中中所有表空間間中的磁盤空空間管理都是是由數(shù)據(jù)字典典來管理的。在在這種表空間間的管理方法法中所有的空空閑區(qū)由數(shù)據(jù)據(jù)字典來統(tǒng)一一管理。每當當區(qū)段被分配配或收回時,OOraclee服務器將修修改數(shù)據(jù)字典典中相應的(系系統(tǒng))表。在數(shù)據(jù)字典(系系統(tǒng))管理的

10、的表空間中所所有的EXTTENTS的的管理都是在在數(shù)據(jù)字典中中進行的,而而且每一個存存儲在同一個個表空間中的的段可以具有有不同的存儲儲子句。在這這種表空間的的管理方法中中您可以按您您的需要修改改存儲參數(shù),所所以存儲管理理比較靈活但但系統(tǒng)的效率率較低。還有有如果使用這這種表空間的的管理方法,有有時需要合并并碎片。由于Oraclle8.0對對互聯(lián)網(wǎng)的成成功支持和它它在其它方面面的卓越表現(xiàn)現(xiàn)使得Oraacle的市市場占有率急急速地增加,同同時Oraccle數(shù)據(jù)庫庫的規(guī)模也開開始變的越來來越大。這樣樣在一個大型型和超大型數(shù)數(shù)據(jù)庫中就可可能有成百乃乃至上千個表表空間。由于于每個表空間間的管理信息息都存在

11、數(shù)據(jù)據(jù)字典中,也也就是存在系系統(tǒng)表空間中中。這樣系統(tǒng)統(tǒng)表空間就有有可能成為一一個瓶頸從而而使數(shù)據(jù)庫系系統(tǒng)的效率大大大地下降。正是為了克服以以上弊端,OOraclee公司從它的的Oraclle8i開始始引入了另一一種表空間的的管理方法,叫叫做本地管理理的表空間。本地管理的表空空間其空閑EXTEENTS是在在表空間中管管理的,它是是使用位圖(Bitmap)來記錄空閑EXTENTS,位圖中的每一位對應于一塊或一組塊,而每位的值指示空閑或分配。當一個EXTENT被分配或釋放時,Oracle服務器就會修改位圖中相應位的值以反映該EXTENT的新的狀態(tài)。位圖存放在表空間所對應的數(shù)據(jù)文件的文件頭中。使用本地

12、管理的的表空間減少少了數(shù)據(jù)字典典表的競爭,而而且當磁盤空空間分配或收收回時也不會會產(chǎn)生回滾(還還原),它也也不需要合并并碎片。在本本地管理的表表空間中您無無法按您的需需要來隨意地地修改存儲參參數(shù),所以存存儲管理不像像數(shù)據(jù)字典(系系統(tǒng))管理的的表空間那樣樣靈活但系統(tǒng)統(tǒng)的效率較高高。因為在本地管理理的表空間中中,表空間的的管理,如磁磁盤空間的分分配與釋放等等已經(jīng)不在需需要操作數(shù)據(jù)據(jù)字典了,所所以系統(tǒng)表空空間的瓶頸問問題得到了很很好的解決。因此Oracle公司建議用戶創(chuàng)建的表空間應該盡可能地使用本地管理的表空間。在Oracle9i中本地管理的表空間為默認方式,但是在Oracle8i中數(shù)據(jù)字典(系統(tǒng))

13、管理的表空間為默認方式。6.5 創(chuàng)建數(shù)數(shù)據(jù)字典管理理的表空間曾有位著名的學學者在一份非非常出名的報報紙上發(fā)表了了一篇震撼了了整個神州大大地的文章,文文章的題目是是:“中國婦女解解放運動的先先驅潘金蓮蓮”。這篇文章章一發(fā)表就在在社會上引發(fā)發(fā)了激烈的爭爭論,真是“一石擊起千千層浪”。一位考古學學的博士想利利用統(tǒng)計學的的方法科學地地證明潘金蓮蓮到底是不是是中國婦女解解放的先驅。首首先他必須將將大量的數(shù)據(jù)據(jù)分門別類地地存入數(shù)據(jù)庫庫中。他找到到了您讓您在在Oraclle數(shù)據(jù)庫方方面幫他的忙忙。您決定首先要為為這個項目創(chuàng)創(chuàng)建一個名為為jinliian(金蓮蓮)的表空間間。為了平衡衡I/O,您您決定該表空空

14、間將基于兩兩個數(shù)據(jù)文件件,它們分別別是J:DDISK2MOONJINLIIAN01.DBF和J:DIISK4MMOONJJINLIAAN02.DDBF,其大大小都為500M(在實際際中可能幾百百)。為了了更有效地控控制磁盤的存存儲分配,您您決定使用數(shù)數(shù)據(jù)字典管理理的表空間。為為了防止用戶戶在創(chuàng)建對象象時使用的EEXTENTT過小而產(chǎn)生生過多的碎片片,您決定最最小的EXTTENT為50K(MINIMMUM EXXTENT 50K)。當當需要磁盤空空間的自動分分配時第一次次分配為500K(INITIIAL 500K),第二二次也為500K(NEXT 50K),所所分配的最大大磁盤空間為為100個E

15、EXTENTTS(MAXEEXTENTTS 1000)。從第三三次分配開始始按如下的公公式進行分配配:NEXTT * (11+PCTIINCREAASE/1000)(n-2)。其中中n為分配的的次數(shù)。于是是你發(fā)出了如如例6-1的的SQL語句句來創(chuàng)建名為為jinliian(金蓮蓮)的表空間間。例6-1SQL CRREATE TABLEESPACEE jinllian 2 DAATAFILLE J:DISKK2MOOONJINNLIAN001.DBFF SIZZE 50 M, 3 J:DISKK4MOOONJINNLIAN002.DBFF SIZZE 50 M 4 MIINIMUMM EXTEEN

16、T 500K EXTTENT MMANAGEEMENT DICTIIONARYY 5 DEEFAULTT STORRAGE (INITIIAL 500K NEXXT 50KK MAXEEXTENTTS 1000 PCTIINCREAASE 0);表空間已創(chuàng)建。緊接著為了驗證證所創(chuàng)建的表表空間是不是是數(shù)據(jù)字典管管理的,您使使用了如例66-4的SQQL查詢語句句。但為了使使該語句的顯顯示結果更清清晰,您又使使用了例6-2和例6-3的SQLL*Pluss命令對輸出出進行了格式式化。例6-2SQLSETT LINEE 120例6-3SQL COOL TABBLESPAACE_NAAME FOOR A1

17、55例6-4SQL SEELECT tableespacee_namee, bloock_siize, eextentt_manaagemennt, seegmentt_spacce_mannagemeent 2 FRROM dbba_tabblespaaces;TABLESPPACE_NNAME BBLOCK_SIZE EXTENNT_MANN SEGMMEN- - - -SYSTEM 4096 DICTIIONARYY MANUUALUNDOTBSS 4096 LOCALL MANUUALCWMLITEE 4096 LOCALL MANUUALDRSYS 4096 LOCALL MANUU

18、ALEXAMPLEE 4096 LOCALL MANUUALINDX 4096 LOCALL MANUUALTEMP 4096 LOCALL MANUUALTOOLS 4096 LOCALL MANUUALUSERS 4096 LOCALL MANUUALJINLIANN 4096 DICTIIONARYY MANUUAL 已選擇10行。 例6-4查詢語語句的結果表表明表空間jjinliaan(金蓮)確實是一個個數(shù)據(jù)字典管管理的表空間間,因為exxtent_managgementt列的顯示結結果為DICCTIONAARY。現(xiàn)在在您可以使用用如例6-55的SQL查查詢語句來驗驗證其它的磁磁盤存儲

19、參數(shù)數(shù)。例6-5SQL seelect tableespacee_namee, iniitial_extennt, neext_exxtent, 2 max_eextentts, pcct_inccreasee, minn_extllen 3 frrom dbba_tabblespaaces;TABLESPPACE_NNAME IINITIAAL_EXTTENT NNEXT_EEXTENTT MAX_EXTENNTS PCCT_INCCREASEE MIN_EXTLEEN- - - - - -SYSTEM 122288 122888 2249 500 0UNDOTBSS 655536 2144

20、74836645 655336CWMLITEE 655536 214474836645 655336DRSYS 655536 214474836645 655336EXAMPLEE 655536 214474836645 655336INDX 655536 214474836645 655336TEMP 10488576 100485766 00 110485776TOOLS 655536 214474836645 655336USERS 655536 214474836645 655336JINLIANN 533248 532488 1100 00 532448 已選擇10行。 從例6-5查

21、詢詢語句的結果果顯示可以清清楚地看出:所有的存儲儲參數(shù)都是按按您的要求設設置的,因為為INITIIAL_EXXTENT為為50K(553248字字節(jié)),NEEXT_EXXTENT也也為50K(53248字節(jié)),MIN_EXTENT(MINIMUM EXTENT)也同樣為50K(53248字節(jié)),最后MAX_EXTENTS(MAXEXTENTS)為100。此時您還應使用如例6-6的SQL查詢語句來驗證一下與文件有關的信息。例6-6SQL seelect file_id, ffile_nname, tableespacee_namee 2 frrom dbba_datta_filles 3 orr

22、der bby fille_id; FILEE_ID FFILE_NNAME TABLEESPACEE_NAMEE- - - 1 DD:ORAACLEOORADATTAORAACLE9IISYSTTEM01.DBF SYSTEEM 2 DD:ORAACLEOORADATTAORAACLE9IIUNDOOTBS011.DBF UNDOTTBS 3 DD:ORAACLEOORADATTAORAACLE9IICWMLLITE011.DBF CWMLIITE 4 DD:ORAACLEOORADATTAORAACLE9IIDRSYYS01.DDBF DRSYSS 5 DD:ORAACLEOORADATT

23、AORAACLE9IIEXAMMPLE011.DBF EXAMPPLE 6 DD:ORAACLEOORADATTAORAACLE9IIINDXX01.DBBF INDX 7 DD:ORAACLEOORADATTAORAACLE9IITOOLLS01.DDBF TOOLSS 8 DD:ORAACLEOORADATTAORAACLE9IIUSERRS01.DDBF USERSS 9 JJ:DISSK2MOOONJIINLIANN01.DBBF JINLIIAN 10 JJ:DISSK4MOOONJIINLIANN02.DBBF JINLIIAN 已選擇10行。 從例6-6查詢詢語句的結果果顯示可以

24、清清楚地看出:表空間JIINLIANN共有兩個操操作系統(tǒng)文件件它們分別是是J:DIISK2MMOONJJINLIAAN01.DDBF和J:DIISK4MMOONJJINLIAAN02.DDBF。最后后您還應該利利用操作系統(tǒng)統(tǒng)工具,如NNT資源管理理器來驗證一一下真正的物物理文件是否否真的生成了了。如例6-7所示。例6-7從例6-7的結結果顯示可以以清楚地看出出物理文件JJ:DISSK2MOOONJIINLIANN.DBF確確實已經(jīng)生成成,其大小也也為50M。您還還應該使用相相同的方法驗驗證表空間JJINLIAAN的另一個個操作系統(tǒng)文文件。6.6 創(chuàng)建本本地管理的表表空間接下來您決定還還要為這個

25、項項目創(chuàng)建一個個名為jinnlian_indexx的索引表空空間。該表空間只基基于一個數(shù)據(jù)據(jù)文件,其文文件名是J:DISKK6MOONNJINLLIAN_IINDEX.DBF,其其大小為500M(在實際際中可能為幾幾百)。為為了方便磁盤盤存儲的管理理,您決定使使用本地管理理的表空間(EXTENNT MANNAGEMEENT LOOCAL)。根據(jù)您的的調查,您決決定每個EXXTENT的的大小為1MM(UNIFOORM SIIZE 1M)。于是您發(fā)發(fā)出了如例66-8的DDDL語句來創(chuàng)創(chuàng)建名為jiinliann_indeex的索引表表空間。例6-8SQL CRREATE TABLEESPACEE j

26、inllian_iindex2 DATAAFILE J:DDISK6MOONjinliian_inndex.ddbf 3 SIIZE 500 M 4 EXXTENT MANAGGEMENTT LOCAAL 5 UNNIFORMM SIZEE 1M;表空間已創(chuàng)建。緊接著為了驗證證所創(chuàng)建的表表空間是不是是本地管理的的,您使用了了如例6-99的查詢語句句。但為了使使該語句的顯顯示結果更清清晰,您可能能需要使用SSQL*Pllus命令對對輸出進行格格式化。例6-9SQL SEELECT tableespacee_namee, bloock_siize, eextentt_manaagemennt, s

27、eegmentt_spacce_mannagemeent 2 FRROM dbba_tabblespaaces 3 WHHERE ttablesspace_name LIKE JIN%;TABLESPPACE_NNAME BBLOCK_SIZE EXTENNT_MANN SEGMMEN- - - -JINLIANN 4096 DICTIIONARYY MANUUALJINLIANN_INDEEX 4096 LOCALL MANUUAL例6-9查詢語語句的結果表表明表空間JJINLIAAN_INDDEX確實是是一個本地管管理的表空間間,因為exxtent_managgementt列的顯示結結果為

28、LOCCAL?,F(xiàn)在在您可以使用用如例6-110查詢語句句來驗證其它它的磁盤存儲儲參數(shù)。例6-10SQL seelect tableespacee_namee, iniitial_extennt, neext_exxtent, 2 max_eextentts, pcct_inccreasee, minn_extllen 3 frrom dbba_tabblespaaces 4 WHHERE ttablesspace_name LIKE JIN%;TABLESPPACE_NNAME IINITIAAL_EXTTENT NNEXT_EEXTENTT MAX_EXTENNTS PCCT_INCCREA

29、SEE MIN_EXTLEEN- - - - - -JINLIANN 533248 532488 1100 00 532448JINLIANN_INDEEX 10488576 100485766 214474836645 00 110485776從例6-10查查詢語句的結結果顯示可以以清楚地看出出:所有的存存儲參數(shù)都是是按您的要求求設置的,因因為INITTIAL_EEXTENTT為1M(10485576字節(jié)),NNEXT_EEXTENTT也為1M(10485576字節(jié)),MMIN_EEXTENTT也同樣為1MM(10485576字節(jié))。此此時您還應使使用如例6-11的查詢詢語句來驗證證一下與文

30、件件有關的信息息。例6-11SQL SEELECT file_id, ffile_nname, tableespacee_namee, auttoexteensiblle 2 FRROM dbba_datta_filles 3 WHHERE ffile_iid 55 4 orrder bby fille_id; FILEE_ID FFILE_NNAME TABLEESPACEE_NAMEE AUT- - - - 6 DD:ORAACLEOORADATTAORAACLE9IIINDXX01.DBBF INDX YES 7 DD:ORAACLEOORADATTAORAACLE9IITOOLLS01

31、.DDBF TOOLSS YES 8 DD:ORAACLEOORADATTAORAACLE9IIUSERRS01.DDBF USERSS YES 9 JJ:DISSK2MOOONJIINLIANN01.DBBF JINLIIAN NO 10 JJ:DISSK4MOOONJIINLIANN02.DBBF JINLIIAN NO 11 JJ:DISSK6MOOONJIINLIANN_INDEEX.DBFF JINLIIAN_INNDEX NO 從例6-11查查詢語句的結結果顯示可以以清楚地看出出:表空間JJINLIAAN_INDDEX只有一一個操作系統(tǒng)統(tǒng)文件,它是是J:DIISK6MMOONJJI

32、NLIAAN_INDDEX.DBBF。最后您您還應該利用用操作系統(tǒng)工工具,如NTT資源管理器器來驗證一下下真正的物理理文件是否真真的生成了。如如例6-122所示。例6-12從例6-12的的結果顯示可可以清楚地看看出:物理文文件J:DDISK6MOONJINLIIAN_INNDEX.DDBF確實已已經(jīng)生成,其其大小也為550 M。還原表空間還原表空間是OOraclee9i剛剛引引入的,它是是用來自動地地管理還原(回回滾)數(shù)據(jù)的的。在這一節(jié)節(jié)只對還原表表空間給一個個簡單的介紹紹,后面有專專門的一章來來詳細地介紹紹這方面的內內容。還原表表空間是用來來存儲還原段段的,在還原原表空間中不不能包含任何何其

33、它的對象象。還原表空空間中的區(qū)段段(Extennts)是由由本地管理的的,而且在創(chuàng)創(chuàng)建還原表空空間的SQLL語句中只能能使用DATTAFILEE和EXTENNT MANNAGEMEENT子句。接下來您想為潘潘金蓮項目的的數(shù)據(jù)單獨創(chuàng)創(chuàng)建一個還原原表空間,它它的名為jiinliann_undoo,它所基于于的操作系統(tǒng)統(tǒng)文件名為JJ:DISSK7MOOONjiinliann_undoo.DBF,其其大小為200M。于是就就可以使用如如例6-133的SQL語語句來創(chuàng)建所所需的還原表表空間了。例6-13SQL CRREATE UNDO TABLEESPACEE jinllian_uundo 2 DAAT

34、AFILLE J:DISKK7MOOONjinnlian_undo.DBF 3 SIIZE 200 M;表空間已創(chuàng)建?,F(xiàn)在您可能想查查看一下您所所創(chuàng)建的還原原表空間jiinliann_undoo到底是數(shù)據(jù)據(jù)字典管理還還是本地管理理的??梢允故褂萌缋?-14的SQQL查詢語句句來獲取相關關的信息。例6-14SQL SEELECT tableespacee_namee, bloock_siize, eextentt_manaagemennt, seegmentt_spacce_mannagemeent 2 FRROM dbba_tabblespaaces 3 WHHERE ttablesspace

35、_name LIKE JIN%;TABLESPPACE_NNAME BBLOCK_SIZE EXTENNT_MANN SEGMMEN- - - -JINLIANN 4096 DICTIIONARYY MANUUALJINLIANN_INDEEX 4096 LOCALL MANUUALJINLIANN_UNDOO 4096 LOCALL MANUUAL例6-14的查查詢結果表明明:還原表空空間jinllian_uundo是本本地管理的,因因為exteent_maanagemment列的的顯示結果為為LOCALL。之后您當當然也想確認認一下表空間間jinliian_unndo到底是是不是還原表表空

36、間。因此此您可以使用用如例6-115的SQLL查詢語句。例6-15SQL SEELECT tableespacee_namee, staatus, conteents 2 FRROM dbba_tabblespaaces 3 WHHERE ttablesspace_name LIKE JIN%;TABLESPPACE_NNAME SSTATUSS CCONTENNTS - - -JINLIANN OONLINEE PPERMANNENTJINLIANN_INDEEX OONLINEE PPERMANNENTJINLIANN_UNDOO OONLINEE UUNDO 例6-15的查查詢結果表明明

37、:表空間jinnlian_undo確確實為還原表表空間,因為為conteents列的的顯示結果為為UNDO。臨時表空間臨時表空間是作作為排序操作作使用的。當當在用戶的SSQL語句中中使用了諸如如ORDERR BY,GGROUP BY子句時時Oraclle服務器就就需要對所選選取的數(shù)據(jù)進進行排序,這這時如果排序序的數(shù)據(jù)量很很大內存的排排序區(qū)(在PPGA中)就就可能裝不下下,因此Orracle服服務器就要把把一些中間的的排序結果寫寫到磁盤上,即即臨時表空間間中。當用戶戶的SQL語語句中經(jīng)常有有大規(guī)模的多多重排序而內內存的排序區(qū)區(qū)不夠時,使使用臨時表空空間就可以改改進數(shù)據(jù)庫的的效率。臨時表空間可以以

38、由多個用戶戶共享,在其其中不能包含含任何永久對對象。臨時表表空間中的排排序段是在實實例啟動后當當有第一個排排序操作時創(chuàng)創(chuàng)建的,排序序段在需要時時可以通過分分配EXTEENTS來擴擴展并一直可可以擴展到大大于或等于在在該實例上所所運行的所有有排序活動的的總和。當創(chuàng)建臨時表空空間時,必須須使用標準數(shù)數(shù)據(jù)塊。另外外Oraclle還推薦使用本本地管理的表表空間。接下來您想為潘潘金蓮項目的的數(shù)據(jù)單獨創(chuàng)創(chuàng)建一個臨時時表空間,它它的名為jiinliann_tempp,它所基于于的操作系統(tǒng)統(tǒng)文件名為JJ:DISSK8MOONNjinllian_ttemp.DDBF,其大大小為10MM。您在創(chuàng)建建該臨時表空空間

39、之前,想想看一看在數(shù)數(shù)據(jù)庫中究竟竟有多少個表表空間以及它它們的狀態(tài),于于是您首先使使用如例6-16的SQQL*Pluus格式化命命令,之后發(fā)發(fā)出了如例66-17的SSQL查詢語語句。例6-16SQL cool tabblespaace_naame foor a155例6-17SQL seelect tableespacee_namee, staatus, conteents 2 frrom dbba_tabblespaaces;TABLESPPACE_NNAME SSTATUSS CCONTENNTS - - -SYSTEM OONLINEE PPERMANNENTUNDOTBSS OONLI

40、NEE UUNDO CWMLITEE OONLINEE PPERMANNENTDRSYS OONLINEE PPERMANNENTEXAMPLEE OONLINEE PPERMANNENTINDX OONLINEE PPERMANNENTTEMP OONLINEE TTEMPORRARYTOOLS OONLINEE PPERMANNENTUSERS OONLINEE PPERMANNENTJINLIANN OONLINEE PPERMANNENTJINLIANN_INDEEX OONLINEE PPERMANNENTJINLIANN_UNDOO OONLINEE UUNDO 已選擇12行。 例

41、6-17查詢詢語句的顯示示結果表明:在該數(shù)據(jù)庫庫中只有一個個臨時表空間間,該表空間間的名為TEEMP,因為為只有該表空空間的CONNTENTSS列的值為TEEMPORAARY。為了得到臨時表表空間和對應應的數(shù)據(jù)文件件,您可以使使用數(shù)據(jù)字典典v$tabblespaace和 v$teempfille。于是您您使用了如例例6-19帶帶有兩個表連連接的SQLL查詢語句,但但為了使顯示示的結果更加加清晰您首先先使用了如例例6-18的的SQL*PPlus格式式化命令例6-18SQL cool fille forr a50例6-19SQL SEELECT f.fille#, tt.ts#, f.naame

42、FFile, t.naame TTablesspace 2 FRROM v$tempffile ff, v$ttablesspace t 3 WHHERE ff.ts# = t.tts#; FIILE# TS# File Tabllespacce - - - - 1 6 D:ORRACLEORADAATAORRACLE99ITEMMP01.DDBF TEMPP 例6-19查詢詢語句的顯示示結果表明:6號(TSS#為6)表表空間TEMMP所對應的的數(shù)據(jù)文件為為D:ORRACLEORADAATAORRACLE99ITEMMP01.DDBF,文件件號為1(FFILE#為為1)。現(xiàn)在在您就可以使使用如

43、例6-20的SQQL語句來創(chuàng)創(chuàng)建所需的臨臨時表空間了了。例6-20SQL CRREATE TEMPOORARY TABLEESPACEE jinllian_ttemp 2 TEEMPFILLE J:DISKK8MOOONjinnlian_temp.dbf 3 SIIZE 100 M 4 EXXTENT MANAGGEMENTT LOCAAL 5 UNNIFORMM SIZEE 2 M;表空間已創(chuàng)建。接下來您應該使使用如例6-21,例66-22,和和例6-233的SQL查查詢語句來驗驗證一下該表表空間是否已已經(jīng)建立,它它是否為臨時時表空間,以以及它所對應應的數(shù)據(jù)文件件是否也被創(chuàng)創(chuàng)建等。例6-21

44、SQL seelect tableespacee_namee, staatus, conteents 2 frrom dbba_tabblespaaces 3 whhere ttablesspace_name LIKE JIN%;TABLESPPACE_NNAME SSTATUSS CCONTENNTS - - -JINLIANN OONLINEE PPERMANNENTJINLIANN_INDEEX OONLINEE PPERMANNENTJINLIANN_TEMPP OONLINEE TTEMPORRARYJINLIANN_UNDOO OONLINEE UUNDO 例6-22SQL SEE

45、LECT f.fille#, tt.ts#, f.naame FFile, t.naame TTablesspace 2 FRROM v$tempffile ff, v$ttablesspace t 3 WHHERE ff.ts# = t.tts#; FIILE# TS# File Tabllespacce - - - - 1 6 D:ORRACLEORADAATAORRACLE99ITEMMP01.DDBF TEMPP 2 12 J:DIISK8MMOONJJINLIAAN_TEMMP.DBFF JINLLIAN_TTEMP例6-23SQL SEELECT tableespacee_name

46、e, bloock_siize, eextentt_manaagemennt, 2 segmeent_sppace_mmanageement, min_extleen 3 FRROM dbba_tabblespaaces 4 WHHERE ttablesspace_name LIKE JIN%;TABLESPPACE_NNAME BBLOCK_SIZE EXTENNT_MANN SEGMMEN MIIN_EXTTLEN- - - - -JINLIANN 4096 DICTIIONARYY MANUUAL 533248JINLIANN_INDEEX 4096 LOCALL MANUUAL 104

47、88576JINLIANN_TEMPP 4096 LOCALL MANUUAL 20977152JINLIANN_UNDOO 4096 LOCALL MANUUAL 655536例6-21,例例6-22,和和例6-233的查詢語句句顯示結果表表明:您已經(jīng)經(jīng)成功地創(chuàng)建建了臨時表空空間jinllian_ttemp。最最后您還應該該利用操作系系統(tǒng)工具,如如NT資源管管理器來驗證證一下臨時表表空間所對應應的物理文件件是否真的生生成了。本地管理的臨時時表空間是基基于臨時數(shù)據(jù)據(jù)文件(teemp fiiles),這些文件與與普通的數(shù)據(jù)據(jù)文件非常相相似,但它們們還具有如下下的特性:臨時數(shù)據(jù)文件的的狀態(tài)不能置置

48、為只讀。不能將臨時數(shù)據(jù)據(jù)文件重新命命名。臨時數(shù)據(jù)文件總總是置為NOOLOGGIING狀態(tài)。不能使用ALTTER DAATABASSE命令創(chuàng)建建臨時數(shù)據(jù)文文件。以只讀方式運行行的數(shù)據(jù)庫需需要臨時數(shù)據(jù)據(jù)文件。介質恢復是不能能恢復臨時數(shù)數(shù)據(jù)文件的。另外,為了優(yōu)化化某一臨時表表空間中排序序的效率,應應該將UNIIFORM SIZE設設為SORTT_AREAA_SIZEE(PGA中中排序區(qū)的大大?。﹨?shù)的的整數(shù)倍。默認臨時表空間間默認臨時表空間間是在Oraacle9ii開始引入的的。如果在創(chuàng)創(chuàng)建一個數(shù)據(jù)據(jù)庫時沒有設設定默認臨時時表空間,那那么任何一個個用戶如果在在創(chuàng)建他時沒沒有使用TEEMPORAARY

49、 TABLEESPACEE子句,他就就將使用SYYSTEM表表空間作為排排序區(qū)。這將將使SYSTTEM表空間間碎片化,從從而使數(shù)據(jù)庫庫系統(tǒng)的效率率下降。如果果在創(chuàng)建一個個數(shù)據(jù)庫時沒沒有設定默認認臨時表空間間,Oraccle服務器器將把SYSSTEM表空空間是默認臨臨時表空間的的報警信息寫寫入報警文件件。因此說明一個數(shù)數(shù)據(jù)庫范圍的的默認臨時表表空間可以消消除使用系統(tǒng)統(tǒng)(SYSTTEM)表空空間對臨時數(shù)數(shù)據(jù)進行排序序的現(xiàn)象,從從而提高數(shù)據(jù)據(jù)庫系統(tǒng)的效效率。默認臨臨時表空間即即可以在創(chuàng)建建數(shù)據(jù)庫時一一起創(chuàng)建,也也可以在數(shù)據(jù)據(jù)庫創(chuàng)建之后后建立。在創(chuàng)建數(shù)據(jù)庫的的同時創(chuàng)建默默認臨時表空空間要使用CCREA

50、TEE DATAABASE命命令,在數(shù)據(jù)據(jù)庫創(chuàng)建之后后改變默認臨臨時表空間要要使用ALTTER DAATABASSE命令。在數(shù)據(jù)據(jù)庫創(chuàng)建期間間建立默認臨臨時表空間的的方法在以后后的章節(jié)中介介紹。首先可以利用數(shù)數(shù)據(jù)字典DAATABASSE_PROOPERTIIES使用如如例6-277的查詢語句句來得到當前前的默認臨時時表空間。為為了使顯示清清晰,您應該該首先使用如如例6-244,例6-225,和例66-26的SSQL*Pllus格式化化命令。例6-24SQL COOL PROOPERTYY_NAMEE FOR A25例6-25SQL COOL PROOPERTYY_VALUUE FORR A16

51、例6-26SQL COOL DESSCRIPTTION FFOR A338例6-27SQL SEELECT * 2 FRROM DAATABASSE_PROOPERTIIES WHERE PROPEERTY_NNAME LLIKE DEFAUULT%;PROPERTTY_NAMME PPROPERRTY_VAALUE DESCCRIPTIION- - -DEFAULTT_TEMPP_TABLLESPACCE TTEMP Namee of ddefaullt temmporarry tabblespaace 例6-27的查查詢語句顯示示結果表明:表空間TEEMP為當前前的默認臨時時表空間。隨著潘

52、金蓮蓮項目的不斷斷進展,有關關該項目的數(shù)數(shù)據(jù)處理也變變得越來越頻頻繁,為了提提高該項目的的數(shù)據(jù)處理的的速度,您決決定將jinliaan_temmp臨時表空空間設為默認認臨時表空間間。于是您發(fā)發(fā)出了如例66-28命令令。例6-28SQL ALLTER DDATABAASE 2 DEEFAULTT TEMPPORARYY TABLLESPACCE jinnlian_temp;數(shù)據(jù)庫已更改。接下來您可以使使用如例6-29的SQQL查詢語句句來驗證現(xiàn)在在的默認臨時時表空間是否否為jinliaan_temmp。例6-29SQL SEELECT * 2 FRROM DAATABASSE_PROOPERTI

53、IES 3 WHHERE PPROPERRTY_NAAME LIIKE DDEFAULLT%;PROPERTTY_NAMME PPROPERRTY_VAALUE DESCCRIPTIION- - -DEFAULTT_TEMPP_TABLLESPACCE JJINLIAAN_TEMMP Namee of ddefaullt temmporarry tabblespaace 當不再處理金蓮蓮項目數(shù)據(jù)時時,請別忘了了將默認臨時時表空間再改改回為TEMMP表空間。此此時您應該使使用如例6-30的命令令。例6-30SQL ALLTER DDATABAASE 2 DEEFAULTT TEMPPORARYY

54、 TABLLESPACCE temmp;數(shù)據(jù)庫已更改。最后您還是應該該使用如例66-31的SSQL查詢語語句來驗證一一下現(xiàn)在的默默認臨時表空空間是否為ttemp。例6-31SQL SEELECT * 2 FRROM DAATABASSE_PROOPERTIIES 3 WHHERE PPROPERRTY_NAAME LIIKE DDEFAULLT%;PROPERTTY_NAMME PPROPERRTY_VAALUE DESCCRIPTIION- - -DEFAULTT_TEMPP_TABLLESPACCE TTEMP Namee of ddefaullt temmporarry tabblesp

55、aace 在結束這一節(jié)之之前,最后介介紹一下在默默認臨時表空空間上的一些些限制。首先先默認臨時表表空間不能被被刪除,除非非有一個新的的可以使用的的默認臨時表表空間。也就就是必須先使使用ALTEER DATTABASEE將一新的臨臨時表空間設設置為默認臨臨時表空間,之之后才能刪除除舊的(默認認)臨時表空空間。使用舊舊的(默認)臨臨時表空間的的用戶被自動動地賦予新的的默認臨時表表空間。因為默認臨時表表空間必須是是臨時(TEEMPORAARY)表空空間或者是系系統(tǒng)(SYSSTEM)表表空間,所以以不能將默認認臨時表空間間改為一個永永久表空間。也也不能將默認認臨時表空間間設置為脫機機。(在接下下來的幾

56、節(jié)中中我們將介紹紹這些操作。)設置表空間為脫脫機 一個表空間的正正常狀態(tài)是聯(lián)聯(lián)機(Onlline)狀狀態(tài),此時數(shù)數(shù)據(jù)庫用戶可可以訪問該表表空間中的數(shù)數(shù)據(jù)。然而,有時數(shù)據(jù)庫管理員需要將某一表空間設置為脫機狀態(tài),以進行數(shù)據(jù)庫的維護。其維護工作包括:在數(shù)據(jù)庫處在打打開狀態(tài)下移移動數(shù)據(jù)文件件在數(shù)據(jù)庫處在打打開狀態(tài)下恢恢復一個表空空間或一個數(shù)數(shù)據(jù)文件執(zhí)行對表空間的的脫機備份(雖雖然對表空間間可以進行聯(lián)聯(lián)機備份)使數(shù)據(jù)庫的一部部分不可以被被訪問,而其其它的部分可可以被正常地地訪問當一個表空間被被設置為脫機機狀態(tài)時,該該表空間上的的數(shù)據(jù)是不可可以訪問。如如果用戶試圖圖訪問該表空空間上的數(shù)據(jù)據(jù)就會收到出出錯信

57、息。當一個表空間被被設置為脫機機狀態(tài)時或重重新被設置為為聯(lián)機狀態(tài)時時,Oraccle會把這這一事件記錄錄在數(shù)據(jù)字典典和控制文件件中,也會記記錄在報警文文件中。如果果當數(shù)據(jù)庫被被關閉時,某某一表空間為為脫機狀態(tài),那那么當數(shù)據(jù)庫庫被加載(MMOUNT)和和重新打開時時該表空間仍仍保持為脫機機狀態(tài)。并不是所有的表表空間都可以以被設置為脫脫機狀態(tài),以以下的表空間間不能被設置置為脫機狀態(tài)態(tài):系統(tǒng)(SYSTTEM)表空空間上面有活動的還還原/回滾段的表表空間默認臨時表空間間假設JINLIIAN數(shù)據(jù)表表空間出了些些問題,需要要對它進行維維護。于是要要將它的狀態(tài)態(tài)設為脫機。但但為了慎重起起見您先使用用了如例6

58、-32和例66-34的SSQL查詢語語句以獲取該該表空間和它它對應的數(shù)據(jù)據(jù)文件現(xiàn)在的的狀態(tài)。例6-32SQL seelect tableespacee_namee, staatus, conteents 2 frrom dbba_tabblespaaces 3 whhere ttablesspace_name LIKE JIN%;TABLESPPACE_NNAME SSTATUSS CCONTENNTS - - -JINLIANN OONLINEE PPERMANNENTJINLIANN_INDEEX OONLINEE PPERMANNENTJINLIANN_TEMPP OONLINEE TT

59、EMPORRARYJINLIANN_UNDOO OONLINEE UUNDO 例6-33SQL cool namme forr a55例6-34SQL SEELECT file#, namme, sttatus 2 FRROM v$dataffile 3 WHHERE ffile# = 8; FIILE# NNAME STATUUS - - - 8 DD:ORAACLEOORADATTAORAACLE9IIUSERRS01.DDBF ONLINNE 9 JJ:DISSK2MOOONJIINLIANN01.DBBF ONLINNE 10 JJ:DISSK4MOOONJIINLIANN02.DBB

60、F ONLINNE 11 JJ:DISSK6MOOONJIINLIANN_INDEEX.DBFF ONLINNE 12 JJ:DISSK7MOOONJIINLIANN_UNDOO.DBF ONLINNE 從例6-32和和例6-344的查詢結果果顯示可以看看出:表空間間JINLIIAN以及與與它相對應的的兩個數(shù)據(jù)文文件J:DDISK2MOONJINLIIAN01.DBF和J:DIISK4MMOONJJINLIAAN02.DDBF都處在在聯(lián)機狀態(tài)。此此時您就可以以使用如例66-25的命命令將表空間間JINLIIAN置為脫脫機狀態(tài)。例6-25SQL ALLTER TTABLESSPACE jinli

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論