Oracle-10g數(shù)據(jù)庫基礎(chǔ)教程之邏輯存儲結(jié)構(gòu)課件_第1頁
Oracle-10g數(shù)據(jù)庫基礎(chǔ)教程之邏輯存儲結(jié)構(gòu)課件_第2頁
Oracle-10g數(shù)據(jù)庫基礎(chǔ)教程之邏輯存儲結(jié)構(gòu)課件_第3頁
Oracle-10g數(shù)據(jù)庫基礎(chǔ)教程之邏輯存儲結(jié)構(gòu)課件_第4頁
Oracle-10g數(shù)據(jù)庫基礎(chǔ)教程之邏輯存儲結(jié)構(gòu)課件_第5頁
已閱讀5頁,還剩151頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第7章邏輯存儲結(jié)構(gòu)第7章邏輯存儲結(jié)構(gòu)1本章內(nèi)容Oracle邏輯存儲結(jié)構(gòu)概述表空間數(shù)據(jù)塊區(qū)段本章內(nèi)容Oracle邏輯存儲結(jié)構(gòu)概述2本章要求掌握Oracle數(shù)據(jù)庫邏輯結(jié)構(gòu)組成掌握表空間的作用及其管理掌握擴(kuò)展區(qū)的結(jié)構(gòu),了解擴(kuò)展區(qū)的管理掌握段的作用,了解段的管理本章要求掌握Oracle數(shù)據(jù)庫邏輯結(jié)構(gòu)組成37.1邏輯存儲結(jié)構(gòu)概述概念邏輯存儲結(jié)構(gòu)是從邏輯的角度來分析數(shù)據(jù)庫的構(gòu)成的,是數(shù)據(jù)庫創(chuàng)建后利用邏輯概念來描述Oracle數(shù)據(jù)庫內(nèi)部數(shù)據(jù)的組織和管理形式。在操作系統(tǒng)中,沒有數(shù)據(jù)庫邏輯存儲結(jié)構(gòu)信息,而只有物理存儲結(jié)構(gòu)信息。數(shù)據(jù)庫的邏輯存儲結(jié)構(gòu)概念存儲在數(shù)據(jù)庫的數(shù)據(jù)字典中,可以通過數(shù)據(jù)字典查詢邏輯存儲結(jié)構(gòu)信息。

邏輯結(jié)構(gòu)單元類型數(shù)據(jù)塊:BLOCK區(qū):EXTENT段:SEGMENT表空間:TABLESPACE7.1邏輯存儲結(jié)構(gòu)概述概念4數(shù)據(jù)庫的存儲層次關(guān)系DatabaseLogicalPhysicalTablespaceDatafileOSblockOracle

blockSegmentExtent數(shù)據(jù)庫的存儲層次關(guān)系DatabaseLogicalPhysi5數(shù)據(jù)庫邏輯存儲結(jié)構(gòu)之間的關(guān)系表空間數(shù)據(jù)段………

區(qū)間數(shù)據(jù)塊(段片)數(shù)據(jù)庫邏輯存儲結(jié)構(gòu)之間的關(guān)系表空間數(shù)據(jù)段………區(qū)67.2表空間表空間概述表空間的管理7.2表空間表空間概述77.2.1表空間概述表空間的概念表空間的分類表空間的管理方式表空間的管理策略7.2.1表空間概述表空間的概念8(1)表空間概念Oracle數(shù)據(jù)庫在邏輯上可以劃分為一系列的邏輯空間,每一個(gè)邏輯空間就可以稱為一個(gè)表空間。一個(gè)數(shù)據(jù)庫由有一個(gè)或多個(gè)表空間構(gòu)成,不同表空間用于存放不同應(yīng)用的數(shù)據(jù),表空間大小決定了數(shù)據(jù)庫的大小。一個(gè)表空間對應(yīng)一個(gè)或多個(gè)數(shù)據(jù)文件,數(shù)據(jù)文件大小決定了表空間的大小。一個(gè)數(shù)據(jù)文件只能從屬于一個(gè)表空間。表空間是存儲模式對象的容器,一個(gè)數(shù)據(jù)庫對象只能存儲在一個(gè)表空間中(分區(qū)表和分區(qū)索引除外),但可以存儲在該表空間所對應(yīng)的一個(gè)或多個(gè)數(shù)據(jù)文件中。若表空間只有一個(gè)數(shù)據(jù)文件,則該表空間中所有對象都保存在該文件中;若表空間對應(yīng)多個(gè)數(shù)據(jù)文件,則表空間中的對象可以分布于不同的數(shù)據(jù)文件中。(1)表空間概念Oracle數(shù)據(jù)庫在邏輯上可以劃分為一系列的9數(shù)據(jù)庫、表空間、數(shù)據(jù)文件、數(shù)據(jù)庫對象之間的關(guān)系:數(shù)據(jù)庫、表空間、數(shù)據(jù)文件、數(shù)據(jù)庫對象之間的關(guān)系:10通過表空間,可以實(shí)現(xiàn)對數(shù)據(jù)庫存儲的管理:控制整個(gè)數(shù)據(jù)庫占用空間的大?。豢刂茢?shù)據(jù)庫在磁盤上的分配,提高數(shù)據(jù)庫的I/O性能;控制用戶所占用的存儲空間的大小。通過表空間,可以實(shí)現(xiàn)對數(shù)據(jù)庫存儲的管理:11(2)表空間的分類系統(tǒng)表空間——包括SYSTEM和SYSAUXSYSTEM表空間,主要存儲:數(shù)據(jù)庫的數(shù)據(jù)字典;PL/SQL程序的源代碼和解釋代碼,包括存儲過程、函數(shù)、包、觸發(fā)器等;數(shù)據(jù)庫對象的定義,如表、視圖、序列、同義詞等。SYSAUX表空間SYSAUX表空間是Oracle10g新增的輔助系統(tǒng)表空間,主要用于存儲數(shù)據(jù)庫組件等信息,以減小SYSTEM表空間的負(fù)荷。在通常情況下,不允許刪除、重命名及傳輸SYSAUX表空間。(2)表空間的分類系統(tǒng)表空間——包括SYSTEM和SYSAU12非系統(tǒng)表空間撤銷表空間專門進(jìn)行回滾信息的自動(dòng)管理,由回滾段構(gòu)成。一個(gè)數(shù)據(jù)庫可以有多個(gè)撤銷表空間,但每個(gè)數(shù)據(jù)庫實(shí)例只能使用一個(gè)由UNDO_TABLESPACE參數(shù)設(shè)置的撤銷表空間。初始化參數(shù)UNDO_MANAGEMENT=AUTO時(shí),系統(tǒng)使用撤銷表空間自動(dòng)進(jìn)行回滾信息管理。臨時(shí)表空間專門進(jìn)行臨時(shí)數(shù)據(jù)管理的表空間。在數(shù)據(jù)庫實(shí)例運(yùn)行過程中,執(zhí)行排序等SQL語句時(shí)會產(chǎn)生大量的臨時(shí)數(shù)據(jù),這些臨時(shí)數(shù)據(jù)將保存在數(shù)據(jù)庫臨時(shí)表空間中。建議為數(shù)據(jù)庫單獨(dú)定義默認(rèn)的臨時(shí)表空間。非系統(tǒng)表空間13用戶表空間保存用戶數(shù)據(jù)。大文件表空間與小文件表空間所謂大文件表空間(BigfileTablespace)是指一個(gè)表空間只包含一個(gè)大數(shù)據(jù)文件,該文件的最大尺寸為128TB(數(shù)據(jù)塊大小為32KB)或只32TB(數(shù)據(jù)塊大小為8KB)。與大文件表空間相對應(yīng),系統(tǒng)默認(rèn)創(chuàng)建的表空間稱為小文件表空間(SmallfileTablespace),如SYSTEM表空間、SYSAUX表空間等。小文件表空間可以包含多達(dá)1024個(gè)數(shù)據(jù)文件。小文件表空間的總?cè)萘颗c大文件表空間的容量基本相似。用戶表空間14(3)表空間的管理方式字典管理方式表空間使用數(shù)據(jù)字典來管理存儲空間的分配,當(dāng)進(jìn)行區(qū)的分配與回收時(shí),Oracle將對數(shù)據(jù)字典中的相關(guān)基礎(chǔ)表進(jìn)行更新,同時(shí)會產(chǎn)生回滾信息和重做信息。字典管理方式將漸漸被淘汰。本地管理方式在本地管理方式中,區(qū)的分配和管理信息都存儲在表空間的數(shù)據(jù)文件中,而與數(shù)據(jù)字典無關(guān)。表空間在每個(gè)數(shù)據(jù)文件中維護(hù)一個(gè)“位圖”結(jié)構(gòu),用于記錄表空間中所有區(qū)的分配情況,因此區(qū)在分配與回收時(shí),Oracle將對數(shù)據(jù)文件中的位圖進(jìn)行更新,不會產(chǎn)生回滾信息或重做信息。(3)表空間的管理方式字典管理方式15表空間本地管理方式的優(yōu)勢:

由于在區(qū)分配與回收過程中不需要對數(shù)據(jù)字典進(jìn)行訪問,提高了表空間存儲管理操作的速度和并發(fā)性。能夠避免表空間存儲管理操作中的遞歸現(xiàn)象,提高了存儲空間管理操作性能。能夠在保留可查詢性同時(shí),將整個(gè)數(shù)據(jù)庫設(shè)置為只讀狀態(tài)。這種數(shù)據(jù)庫可以作為備用數(shù)據(jù)庫使用。簡化了表空間的存儲管理,由Oracle自動(dòng)完成存儲管理操作。降低了用戶對數(shù)據(jù)字典的依賴性。不存在磁盤碎片問題,因?yàn)楸匾男畔⒍即鎯υ跀?shù)據(jù)文件的位圖中,而不是保存在數(shù)據(jù)字典中。表空間本地管理方式的優(yōu)勢:16(4)表空間管理策略將數(shù)據(jù)字典與用戶數(shù)據(jù)分離,避免由于數(shù)據(jù)字典對象和用戶對象保存在一個(gè)數(shù)據(jù)文件中而產(chǎn)生I/O沖突。將回滾數(shù)據(jù)與用戶數(shù)據(jù)分離,避免由于硬盤損壞而導(dǎo)致永久性的數(shù)據(jù)丟失。將表空間的數(shù)據(jù)文件分散保存到不同的硬盤上,平均分布物理I/O操作。為不同的應(yīng)用創(chuàng)建獨(dú)立的表空間,避免多個(gè)應(yīng)用之間的相互干擾。能夠?qū)⒈砜臻g設(shè)置為脫機(jī)狀態(tài)或聯(lián)機(jī)狀態(tài),以便對數(shù)據(jù)庫的一部分進(jìn)行備份或恢復(fù)。能夠?qū)⒈砜臻g設(shè)置為只讀狀態(tài),從而將數(shù)據(jù)庫的一部分設(shè)置為只讀狀態(tài)。能夠?yàn)槟撤N特殊用途專門設(shè)置一個(gè)表空間,如臨時(shí)表空間,優(yōu)化表空間的使用效率。能夠更加靈活地為用戶設(shè)置表空間配額。(4)表空間管理策略將數(shù)據(jù)字典與用戶數(shù)據(jù)分離,避免由于數(shù)據(jù)字177.2.2表空間的管理(本地管理方式)創(chuàng)建表空間修改表空間表空間的備份刪除表空間大文件表空間的管理表空間信息查詢利用OEM管理表空間7.2.2表空間的管理(本地管理方式)創(chuàng)建表空間18(1)創(chuàng)建表空間

在創(chuàng)建本地管理方式下的表空間時(shí),應(yīng)該確定表空間的名稱、類型、對應(yīng)的數(shù)據(jù)文件的名稱和位置以及區(qū)的分配方式、段的管理方式。表空間名稱不能超過30個(gè)字符,必須以字母開頭,可以包含字母、數(shù)字以及一些特殊字符(如#、_、$)等;表空間的類型包括普通表空間、臨時(shí)表空間和撤銷表空間;表空間中區(qū)的分配方式包括兩種方式:自動(dòng)擴(kuò)展(AUTOALLOCATE)和定制(UNIFORM);段的管理包括兩種方式:自動(dòng)管理(AUTO)和手動(dòng)管理(MANUAL)。(1)創(chuàng)建表空間在創(chuàng)建本地管理方式下的表空間時(shí),應(yīng)該確定表19創(chuàng)建永久表空間

創(chuàng)建永久表空間使用CREATETABLESPACE語句來實(shí)現(xiàn),該語句包含以下幾個(gè)子句:DATAFILE:設(shè)定表空間對應(yīng)的數(shù)據(jù)文件。EXTENTMANAGEMENT:指定表空間的管理方式,取值為LOCAL(默認(rèn))或DICTIONARY。AUTOALLOCATE(默認(rèn))或UNIFORM:設(shè)定區(qū)的分配方式。SEGMENTSPACEMANAGEMENT:設(shè)定段的管理方式,其取值為MANUAL或AUTO(默認(rèn))。創(chuàng)建永久表空間創(chuàng)建永久表空間使用CREATETABLES20例1:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)永久性的表空間ORCLTBS1,區(qū)自動(dòng)擴(kuò)展,段采用自動(dòng)管理方式。例2:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)永久性的表空間ORCLTBS2,區(qū)定制分配,段采用自動(dòng)管理方式。SQL>CREATETABLESPACEORCLTBS1DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_1.DBF'SIZE50M;SQL>CREATETABLESPACEORCLTBS2DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS2_1.DBF'SIZE50MEXTENTMANAGEMENTLOCALUNIFORMSIZE512K;例1:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)永久性的表空間ORCLTBS121例3:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)永久性的表空間ORCLTBS3,區(qū)自動(dòng)擴(kuò)展,段采用手動(dòng)管理方式。例4:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)永久性的表空間ORCLTBS4,區(qū)定制分配,段采用手動(dòng)管理方式。SQL>CREATETABLESPACEORCLTBS3DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS3_1.DBF'SIZE50MSEGMENTSPACEMANAGEMENTMANUAL;SQL>CREATETABLESPACEORCLTBS4DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS4_1.DBF'SIZE50MEXTENTMANAGEMENTLOCALUNIFORMSIZE512KSEGMENTSPACEMANAGEMENTMANUAL;數(shù)據(jù)文件的名稱分別為ORCLTBS3_1.DBF和ORCLTBS4_1.DBF例3:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)永久性的表空間ORCLTBS322創(chuàng)建臨時(shí)表空間使用CREATETEMPORARYTABLESPACE語句創(chuàng)建臨時(shí)表空間,用TEMPFILE子句設(shè)置臨時(shí)數(shù)據(jù)文件。注意:臨時(shí)表空間中區(qū)的分配方式只能是UNIFORM,而不能是AUTOALLOCATE,因?yàn)檫@樣才能保證不會在臨時(shí)段中產(chǎn)生過多的存儲碎片。例5:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)臨時(shí)表空間ORCLTEMP1。SQL>CREATETEMPORARYTABLESPACEORCLTEMP1TEMPFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTEMP1_1.DBF'SIZE20MEXTENTMANAGEMENTLOCALUNIFORM

SIZE

16M;創(chuàng)建臨時(shí)表空間使用CREATETEMPORARYTABL23臨時(shí)表空間組將一個(gè)或多個(gè)臨時(shí)表空間構(gòu)成一個(gè)表空間組。優(yōu)點(diǎn):避免由于單個(gè)臨時(shí)表空間的空間不足而導(dǎo)致數(shù)據(jù)庫運(yùn)行故障??梢员WC在一個(gè)簡單并行操作中多個(gè)并行服務(wù)的執(zhí)行。臨時(shí)表空間組不需要顯式創(chuàng)建,為臨時(shí)表空間組指定第一個(gè)臨時(shí)表空間時(shí)隱式創(chuàng)建,當(dāng)臨時(shí)表空間組中最后一個(gè)臨時(shí)表空間刪除時(shí)而隱式地刪除。通過在CREATETEMPORARYTABLSPACE或ALTERTABLESPACE語句中使用TABLESPACEGROUP短語創(chuàng)建臨時(shí)表空間組。臨時(shí)表空間組24例6:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)臨時(shí)表空間ORCLTEMP2,并放入臨時(shí)表空間組temp_group1。同時(shí),將臨時(shí)表空間ORCLTEMP1也放入該temp_group1中。SQL>CREATETEMPORARYTABLESPACEORCLTEMP2TEMPFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTEMP2_1.DBF'SIZE20MEXTENTMANAGEMENTLOCALUNIFORMSIZE16M

TABLESPACE

GROUPtemp_group1;SQL>ALTERTABLESPACEORCLTEMP1TABLESPACE

GROUPtemp_group1;例6:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)臨時(shí)表空間ORCLTEMP2,25創(chuàng)建撤銷表空間如果數(shù)據(jù)庫中沒有創(chuàng)建撤銷表空間,那么將使用SYSTEM表空間來管理回滾段。如果數(shù)據(jù)庫中包含多個(gè)撤銷表空間,那么一個(gè)實(shí)例只能使用一個(gè)處于活動(dòng)狀態(tài)的撤銷表空間,可以通過參數(shù)UNDO_TABLESPACE來指定;如果數(shù)據(jù)庫中只包含一個(gè)撤銷表空間,那么數(shù)據(jù)庫實(shí)例啟動(dòng)后會自動(dòng)使用該撤銷表空間。如果要使用撤銷表空間對數(shù)據(jù)庫回滾信息進(jìn)行自動(dòng)管理,則必須將初始化參數(shù)UNDO_MANAGEMENT=AUTO。創(chuàng)建撤銷表空間如果數(shù)據(jù)庫中沒有創(chuàng)建撤銷表空間,那么將使用SY26可以使用CREATEUNDOTABLESPACE語句創(chuàng)建撤銷表空間,但是在該語句中只能指定DATAFILE和EXTENTMANAGEMENTLOCAL兩個(gè)子句,而不能指定其他子句。例7:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)撤銷表空間。注意:如果要在數(shù)據(jù)庫使用該撤銷表空間,需要設(shè)置參數(shù)UNDO_MANAGEMENT=AUTOUNDO_TABLESPACE=ORCLUNDO1SQL>CREATEUNDOTABLESPACEORCLUNDO1DATAFILE'D:\ORACLE\ORADATA\ORCL\ORCLUNDO1_1.DBF'SIZE20M;可以使用CREATEUNDOTABLESPACE語句創(chuàng)建27(2)修改表空間可以對表空間進(jìn)行下列修改操作:擴(kuò)展表空間修改表空間可用性修改表空間讀/寫性設(shè)置默認(rèn)表空間表空間重命名注意:不能將本地管理的永久性表空間轉(zhuǎn)換為本地管理的臨時(shí)表空間,也不能修改本地管理表空間中段的管理方式。(2)修改表空間可以對表空間進(jìn)行下列修改操作:28擴(kuò)展表空間為表空間添加數(shù)據(jù)文件通過ALTERTABLESPACE…ADD

DATAFILE語句為永久表空間添加數(shù)據(jù)文件,通過ALTERTABLESPACE…ADD

TEMPFILE語句為臨時(shí)表空間添加臨時(shí)數(shù)據(jù)文件。例8:為ORCL數(shù)據(jù)庫的ORCLTBS1表空間添加一個(gè)大小為10MB的新數(shù)據(jù)文件。例9:為ORCL數(shù)據(jù)庫的ORCLTEMP1表空間添加一個(gè)大小為10MB的臨時(shí)數(shù)據(jù)文件。SQL>ALTERTABLESPACEORCLTBS1ADDDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF'SIZE10M;SQL>ALTERTABLESPACEORCLTEMP1ADDTEMPFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTEMP1_2.DBF'SIZE10M;擴(kuò)展表空間為表空間添加數(shù)據(jù)文件SQL>ALTERTABL29改變數(shù)據(jù)文件的大小可以通過改變表空間已有數(shù)據(jù)文件的大小,達(dá)到擴(kuò)展表空間的目的。例10:將ORCL數(shù)據(jù)庫的ORCLTBS1表空間的數(shù)據(jù)文件ORCLTBS1_2.DBF大小增加到20MB。SQL>ALTERDATABASE

DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF'

RESIZE20M;改變數(shù)據(jù)文件的大小SQL>ALTERDATABASED30改變數(shù)據(jù)文件的擴(kuò)展方式如果在創(chuàng)建表空間或?yàn)楸砜臻g增加數(shù)據(jù)文件時(shí)沒有指定AUTOEXTENDON選項(xiàng),則該文件的大小是固定的。如果為數(shù)據(jù)文件指定了AUTOEXTENDON選項(xiàng),當(dāng)數(shù)據(jù)文件被填滿時(shí),數(shù)據(jù)文件會自動(dòng)擴(kuò)展,即表空間被擴(kuò)展了。例11:將ORCL數(shù)據(jù)庫的ORCLTBS1表空間的數(shù)據(jù)文件ORCLTBS1_2.DBF設(shè)置為自動(dòng)擴(kuò)展,每次擴(kuò)展5MB空間,文件最大為100MB。SQL>ALTERDATABASEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF'AUTOEXTENDONNEXT5MMAXSIZE100M;改變數(shù)據(jù)文件的擴(kuò)展方式SQL>ALTERDATABASE31修改表空間可用性

離線狀態(tài)的表空間是不能進(jìn)行數(shù)據(jù)訪問的,所對應(yīng)的所有數(shù)據(jù)文件也都處于脫機(jī)狀態(tài)。一些表空間必須是在線狀態(tài):SYSTEM表空間存放在線回退信息的撤銷表空間臨時(shí)表空間語法ALTERTABLESPACE…ONLINE|OFFLINE例12、13:SQL>ALTERTABLESPACEORCLTBS1OFFLINE;SQL>ALTERTABLESPACEORCLTBS1ONLINE;修改表空間可用性離線狀態(tài)的表空間是不能進(jìn)行數(shù)據(jù)訪問的,所對32修改表空間讀寫性語法:ALTERTABLESPACE…READONLY|READWRITE設(shè)置“只讀”的目的:避免對DB中大量靜態(tài)數(shù)據(jù)進(jìn)行備份;避免用戶對歷史數(shù)據(jù)進(jìn)行修改。表空間只有滿足下列要求才可以轉(zhuǎn)換為只讀狀態(tài):表空間處于聯(lián)機(jī)狀態(tài);表空間中不能包含任何活動(dòng)的回退段;如果表空間正在進(jìn)行聯(lián)機(jī)數(shù)據(jù)庫備份,不能將它設(shè)置為只讀狀態(tài)。因?yàn)槁?lián)機(jī)備份結(jié)束時(shí),Oracle更新表空間數(shù)據(jù)文件的頭部信息。例14、15:SQL>ALTERTABLESPACEORCLTBS1READONLY;SQL>ALTERTABLESPACEORCLTBS1READWRITE;修改表空間讀寫性語法:SQL>ALTERTABLESPA33設(shè)置默認(rèn)表空間在Oracle10g數(shù)據(jù)庫中,默認(rèn)表空間為USERS表空間,默認(rèn)臨時(shí)表空間為TEMP表空間。設(shè)置數(shù)據(jù)庫的默認(rèn)表空間ALTERDATABASEDEFAULTTABLESPACE設(shè)置數(shù)據(jù)庫的默認(rèn)臨時(shí)表空間ALTERDATABASEDEFAULT

TEMPORARYTABLESPACE例16、17、18:SQL>ALTERDATABASEDEFAULTTABLESPACEORCLTBS1;SQL>ALTERDATABASEDEFAULTTEMPORARYTABLESPACETEMP;SQL>ALTERDATABASEDEFAULTTEMPORARYTABLESPACEtemp_group1;設(shè)置默認(rèn)表空間在Oracle10g數(shù)據(jù)庫中,默認(rèn)表空間為US34表空間重命名語句ALTERTABLESPACE…RENAMETO當(dāng)重命名一個(gè)表空間時(shí):數(shù)據(jù)庫會自動(dòng)更新數(shù)據(jù)字典、控制文件以及數(shù)據(jù)文件頭部中對該表空間的引用。表空間ID號并沒有修改,如果該表空間是數(shù)據(jù)庫默認(rèn)表空間,那么重命名后仍然是數(shù)據(jù)庫的默認(rèn)表空間。注意:不能重命名SYSTEM表空間和SYSAUX表空間;不能重命名處于脫機(jī)狀態(tài)或部分?jǐn)?shù)據(jù)文件處于脫機(jī)狀態(tài)的表空間。表空間重命名語句35(3)表空間的備份語法ALTERTABLESPACE…BEGIN|ENDBACKUP在數(shù)據(jù)庫進(jìn)行熱備份(聯(lián)機(jī)備份)時(shí),需要分別對表空間進(jìn)行備份?;静襟E為:使用ALTERTABLESPACE…BEGINBACKUP語句將表空間設(shè)置為備份模式。在操作系統(tǒng)中備份表空間所對應(yīng)的數(shù)據(jù)文件。使用ALTERTABLESPACE…ENDBACKUP語句結(jié)束表空間的備份模式。(3)表空間的備份語法36例20:備份ORCL數(shù)據(jù)庫的ORCLTBS1表空間。SQL>ALTERTABLESPACEORCLTBS1BEGINBACKUP;復(fù)制ORCLTBS1表空間的數(shù)據(jù)文件ORCLTBS1_1.DBF和ORCLTBS1_2.DBF到目標(biāo)位置。SQL>ALTERTABLESPACEORCLTBS1ENDBACKUP;例20:備份ORCL數(shù)據(jù)庫的ORCLTBS1表空間。SQL>37(4)刪除表空間

語法DROPTABLESPACEtablespace_name說明:如果表空間非空,應(yīng)帶有子句INCLUDINGCONTENTS若要?jiǎng)h除操作系統(tǒng)下的數(shù)據(jù)文件,應(yīng)帶有子句ANDDATAFILES刪除參照完整性約束,應(yīng)帶有子句CASCADECONSTRAINTS(4)刪除表空間語法38例21:刪除ORCL數(shù)據(jù)庫的ORCLTBS1表空間及其所有內(nèi)容。例22:刪除ORCL數(shù)據(jù)庫的ORCLUNDO1表空間及其所有內(nèi)容,同時(shí)刪除其所對應(yīng)的數(shù)據(jù)文件。例23:刪除ORCL數(shù)據(jù)庫的ORCLUNDO1表空間及其所有內(nèi)容,同時(shí)刪除其所對應(yīng)的數(shù)據(jù)文件,以及其他表空間中與ORCLUNDO1表空間相關(guān)的參照完整性約束。SQL>DROPTABLESPACEORCLTBS1INCLUDINGCONTENTS;SQL>DROPTABLESPACEORCLUNDO1INCLUDINGCONTENTSANDDATAFILES;SQL>DROPTABLESPACEORCLUNDO1INCLUDINGCONTENTSANDDATAFILES

CASCADECONSTRAINTS;例21:刪除ORCL數(shù)據(jù)庫的ORCLTBS1表空間及其所有內(nèi)39(5)大文件表空間的管理

概念大文件表空間只包含一個(gè)數(shù)據(jù)文件,可以減少數(shù)據(jù)庫中數(shù)據(jù)文件的數(shù)量,減少SGA中用于存放數(shù)據(jù)文件信息的內(nèi)存需求,同時(shí)減小控制文件。通過對大文件表空間的操作可以實(shí)現(xiàn)對數(shù)據(jù)文件的透明操作,簡化了對數(shù)據(jù)文件的管理。大文件表空間只能采用本地管理方式,其段采用自動(dòng)管理方式。如果在數(shù)據(jù)庫創(chuàng)建時(shí)設(shè)置系統(tǒng)默認(rèn)的表空間類型為BIGFILE,則使用CREATETABLESPACE語句默認(rèn)創(chuàng)建的就是大文件表空間。此時(shí)要?jiǎng)?chuàng)建傳統(tǒng)的小文件表空間,則需要使用CREATESMALLFILETABLESPACE語句。(5)大文件表空間的管理概念40創(chuàng)建大文件表空間的語句CREATEBIGFILETABLESPACE例24:創(chuàng)建一個(gè)大文件表空間ORCLTBS5。SQL>CREATEBIGFILETABLESPACEORCLTBS5DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS5_1.DBF'SIZE20M;創(chuàng)建大文件表空間的語句SQL>CREATEBIGFILE41大文件表空間的操作例25:將大文件表空間ORCLTBS5的數(shù)據(jù)文件D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS5_1.DBF大小修改為30MB。例26:將大文件表空間ORCLTBS5的數(shù)據(jù)文件D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS5_1.DBF修改為可以自動(dòng)擴(kuò)展。SQL>ALTERTABLESPACEORCLTBS5RESIZE30M;SQL>ALTERTABLESPACEORCLTBS5AUTOEXTEND

ONNEXT10MMAXSIZEUNLIMITED;大文件表空間的操作SQL>ALTERTABLESPACE42(6)表空間信息查詢

V$TABLESPACE:從控制文件中獲取的表空間名稱和編號信息。DBA_TABLESPACES:數(shù)據(jù)庫中所有表空間的信息。DBA_TABLESPACE_GROUPS:表空間組及其包含的表空間信息。DBA_SEGMENTS:所有表空間中段的信息。DBA_EXTENTS:所有表空間中區(qū)的信息。DBA_FREE_SPACE:所有表空間中空閑區(qū)的信息。V$DATAFILE:所有數(shù)據(jù)文件信息,包括所屬表空間的名稱和編號。V$TEMPFILE:所有臨時(shí)文件信息,包括所屬表空間的名稱和編號。DBA_DATA_FILES:數(shù)據(jù)文件及其所屬表空間信息。DBA_TEMP_FILES:臨時(shí)文件及其所屬表空間信息。DBA_USERS:所有用戶的默認(rèn)表空間和臨時(shí)表空間信息。DBA_TS_QUOTAS:所有用戶的表空間配額信息。V$SORT_SEGMENT:數(shù)據(jù)庫實(shí)例的每個(gè)排序段信息。V$SORT_USER:用戶使用臨時(shí)排序段信息。(6)表空間信息查詢V$TABLESPACE:從控制文件中43查詢表空間基本信息查詢表空間數(shù)據(jù)文件信息查詢表空間空閑空間大小

SQL>SELECTTABLESPACE_NAME,EXTENT_MANAGEMENT,ALLOCATION_TYPE,CONTENTSFROMDBA_TABLESPACES;SQL>SELECTFILE_NAME,BLOCKS,TABLESPACE_NAMEFROMDBA_DATA_FILES;SQL>SELECTTABLESPACE_NAME,SUM(BYTES)FREE_SPACESFROMDBA_FREE_SPACE

GROUPBYTABLESPACE_NAME;查詢表空間基本信息SQL>SELECTTABLESPA44統(tǒng)計(jì)表空間空閑空間信息SQL>SELECTTABLESPACE_NAME"TABLESPACE",FILE_ID,COUNT(*)"PIECES",MAX(blocks)"MAXIMUM",MIN(blocks)"MINIMUM",AVG(blocks)"AVERAGE",SUM(blocks)

"TOTAL"FROMDBA_FREE_SPACE

GROUPBYTABLESPACE_NAME,FILE_ID;統(tǒng)計(jì)表空間空閑空間信息SQL>SELECTTABLESP45(7)利用OEM管理表空間創(chuàng)建表空間編輯表空間查看表空間信息刪除表空間臨時(shí)表空間組的管理(7)利用OEM管理表空間創(chuàng)建表空間46Oracle-10g數(shù)據(jù)庫基礎(chǔ)教程之邏輯存儲結(jié)構(gòu)課件47Oracle-10g數(shù)據(jù)庫基礎(chǔ)教程之邏輯存儲結(jié)構(gòu)課件48Oracle-10g數(shù)據(jù)庫基礎(chǔ)教程之邏輯存儲結(jié)構(gòu)課件49Oracle-10g數(shù)據(jù)庫基礎(chǔ)教程之邏輯存儲結(jié)構(gòu)課件50Oracle-10g數(shù)據(jù)庫基礎(chǔ)教程之邏輯存儲結(jié)構(gòu)課件517.3數(shù)據(jù)塊(BLOCK)數(shù)據(jù)塊的概念數(shù)據(jù)塊結(jié)構(gòu)數(shù)據(jù)塊的管理7.3數(shù)據(jù)塊(BLOCK)數(shù)據(jù)塊的概念52(1)數(shù)據(jù)塊的概念最小的I/O單元包括一個(gè)或者多個(gè)OSBLOCK在數(shù)據(jù)庫創(chuàng)建時(shí)設(shè)置,大小不可更改分為標(biāo)準(zhǔn)塊和非標(biāo)準(zhǔn)塊數(shù)據(jù)庫創(chuàng)建時(shí),DB_BLOCK_SIZE參數(shù)設(shè)置標(biāo)準(zhǔn)塊大小(1)數(shù)據(jù)塊的概念最小的I/O單元53(2)數(shù)據(jù)庫塊結(jié)構(gòu)Header(塊頭部)Freespace(空閑區(qū))Data(行數(shù)據(jù)區(qū))存儲區(qū)(2)數(shù)據(jù)庫塊結(jié)構(gòu)Header(塊頭部)Freespace54塊頭部包括標(biāo)題、表目錄、行目錄三部分。標(biāo)題包含塊的一般屬性信息,如塊的物理地址、塊所屬段的類型等;表目錄包含數(shù)據(jù)塊中保存的表的信息;行目錄包含數(shù)據(jù)塊中的行地址等信息。存儲區(qū)包括行數(shù)據(jù)區(qū)和空閑區(qū)兩部分。行數(shù)據(jù)區(qū)是已經(jīng)使用的空間,保存數(shù)據(jù)庫的對象數(shù)據(jù);空閑區(qū)是尚未使用的存儲空間,用于存放新的行或用來更新已存在的行。塊頭部包括標(biāo)題、表目錄、行目錄三部分。55(3)數(shù)據(jù)塊的管理

對塊的管理主要是對塊中可用存儲空間的管理,確定保留多少空閑空間,避免產(chǎn)生行鏈接、行遷移而影響數(shù)據(jù)的查詢效率。當(dāng)向表格中插入數(shù)據(jù)時(shí),如果行的長度大于塊的大小,行的信息無法存放在一個(gè)塊中,就需要使用多個(gè)塊存放行信息,這稱為行鏈接。當(dāng)表格數(shù)據(jù)被更新時(shí),如果更新后的數(shù)據(jù)長度大于塊長度,Oracle會將整行的數(shù)據(jù)從原數(shù)據(jù)塊遷移到新的數(shù)據(jù)塊中,只在原數(shù)據(jù)塊中留下一個(gè)指針指向新數(shù)據(jù)塊,這稱為行遷移。(3)數(shù)據(jù)塊的管理對塊的管理主要是對塊中可用存儲空間的管理56對塊的管理分為自動(dòng)和手動(dòng)兩種。如果建立表空間時(shí)使用本地管理方式,并且將段的管理方式設(shè)置為AUTO,則采用自動(dòng)方式管理塊。否則,DBA可以采用手動(dòng)管理方式,通過為段設(shè)置PCTFREE和PCTUSED兩個(gè)參數(shù)來控制數(shù)據(jù)塊中空閑空間的使用。對塊的管理分為自動(dòng)和手動(dòng)兩種。57PCTFREE指定塊中必須保留的最小空閑空間比例。當(dāng)數(shù)據(jù)塊的自由空間百分率低于PCTFREE時(shí),此數(shù)據(jù)塊被標(biāo)志為USED,此時(shí)在數(shù)據(jù)塊中只可以進(jìn)行更新操作,而不可以進(jìn)行插入操作。該參數(shù)默認(rèn)為10。PCTUSED指定可以向塊中插入數(shù)據(jù)時(shí)塊已使用的最大空間比列。當(dāng)數(shù)據(jù)塊使用空間低于PCTUSED時(shí),此塊標(biāo)志為FREE,可以對數(shù)據(jù)塊中數(shù)據(jù)進(jìn)行插入操作;反之,如果使用空間高于PCTUSED,則不可以進(jìn)行插入操作。該參數(shù)默認(rèn)為10。同時(shí)設(shè)置這兩個(gè)參數(shù)就能夠控制塊存儲空間的使用方式。插入操作只能向位于可用塊列表中的塊寫入數(shù)據(jù)。插入數(shù)據(jù)不能占用保留空閑空間,只有在對塊中的已有數(shù)據(jù)進(jìn)行更新時(shí),才能使用保留空閑空間。PCTFREE5880%80%40%Inserts1234InsertsPCTFREE=20

PCTUSED=40Insert(onfreelist)Inserts(offfreelist)80%80%40%Inserts1234InsertsPCT59INITRANS可以同時(shí)對此數(shù)據(jù)塊進(jìn)行DML操作的事務(wù)的個(gè)數(shù)。MAXTRANS可以同時(shí)對此數(shù)據(jù)塊進(jìn)行DML操作的最多事務(wù)的個(gè)數(shù)。INITRANS607.4區(qū)區(qū)的概念區(qū)的管理7.4區(qū)區(qū)的概念61(1)區(qū)的概念

區(qū)是由一系列連續(xù)的數(shù)據(jù)塊構(gòu)成的邏輯存儲單元,是存儲空間分配與回收的最小單位。當(dāng)創(chuàng)建一個(gè)數(shù)據(jù)庫對象時(shí),Oracle為對象分配若干個(gè)區(qū),以構(gòu)成一個(gè)段來為對象提供初始的存儲空間。當(dāng)段中已分配的區(qū)都寫滿后,Oracle會為段分配一個(gè)新區(qū),以容納更多的數(shù)據(jù)。(1)區(qū)的概念區(qū)是由一系列連續(xù)的數(shù)據(jù)塊構(gòu)成的邏輯存儲單元,62(2)區(qū)的管理區(qū)的分配在本地管理方式的表空間中,自動(dòng)進(jìn)行區(qū)的分配??梢酝ㄟ^使用UNIFORM選項(xiàng),指定所有段的初始區(qū)和后續(xù)區(qū)具有統(tǒng)一大小,也可以使用AUTOALLOCATE選項(xiàng)指定由Oracle自動(dòng)決定后續(xù)區(qū)大小。用戶不能通過其他參數(shù)來干預(yù)區(qū)的分配。在字典管理方式的表空間中,創(chuàng)建表空間時(shí)可以使用DEFAULTSTORAGE子句設(shè)置存儲參數(shù),也可以在該表空間定義對象時(shí)通過STORAGE子句設(shè)置存儲參數(shù)。如果在定義對象時(shí)沒有設(shè)置存儲參數(shù),則繼承表空間存儲參數(shù)的設(shè)置。(2)區(qū)的管理區(qū)的分配63例27:創(chuàng)建一個(gè)本地管理方式的表空間,區(qū)分配采用自動(dòng)擴(kuò)展方式進(jìn)行。例28:創(chuàng)建一個(gè)本地管理方式的表空間,區(qū)分配采用固定大小,每個(gè)區(qū)5MB。SQL>CREATETABLESPACEORCLTBS6DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS6_1.DBF'SIZE20MEXTENTMANAGEMENTLOCALAUTOALLOCATE;SQL>CREATETABLESPACEORCLTBS7DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS7_1.DBF'SIZE10MEXTENTMANAGEMENTLOCALUNIFORMSIZE5M;例27:創(chuàng)建一個(gè)本地管理方式的表空間,區(qū)分配采用自動(dòng)擴(kuò)展方式64區(qū)的回收通常分配給段的區(qū)將一直保留在段中,不論區(qū)中的數(shù)據(jù)塊是否被使用。只有當(dāng)段所屬的對象被刪除時(shí),段中所有的區(qū)才會被回收。此外,在一些特殊情況下,也能夠回收未使用的區(qū)。例如,如果在創(chuàng)建回滾段時(shí)指定了OPTIMAL關(guān)鍵字,Oracle會定期回收回滾段中未使用的區(qū)。區(qū)的回收657.5段段概述回滾段7.5段段概述667.5.1段概述段的概述段是由一個(gè)或多個(gè)連續(xù)或不連續(xù)的區(qū)組成的邏輯存儲單元。

數(shù)據(jù)庫模式對象在邏輯上是以段來占據(jù)表空間的大小。段代表特定數(shù)據(jù)類型的數(shù)據(jù)存儲結(jié)構(gòu)。一個(gè)對象只擁有一個(gè)段,一個(gè)段至少包含一個(gè)區(qū)。段的類型:數(shù)據(jù)段索引段臨時(shí)段回滾段7.5.1段概述段的概述67數(shù)據(jù)段數(shù)據(jù)段用來存儲表或簇的數(shù)據(jù),可以細(xì)分為普通表數(shù)據(jù)段、索引表數(shù)據(jù)段、分區(qū)表數(shù)據(jù)段及簇?cái)?shù)據(jù)段四種。索引段用來存放索引信息,主要包括ROWID和索引鍵。索引段與其相應(yīng)的表段經(jīng)常會被同時(shí)訪問,為了減少硬盤訪問的沖突,索引段與表段可以放到處于不同物理位置的表空間中。數(shù)據(jù)段68臨時(shí)段當(dāng)用戶進(jìn)行排序查詢時(shí),如果在指定的內(nèi)存無法完成排序,Oracle將自動(dòng)從用戶默認(rèn)的臨時(shí)表空間中指派臨時(shí)段進(jìn)行排序。會話結(jié)束,數(shù)據(jù)將從臨時(shí)段中自動(dòng)刪除。回滾段回滾段用于保存數(shù)據(jù)庫的回滾信息,包含當(dāng)前未提交事務(wù)所修改的數(shù)據(jù)的原始版本。一個(gè)事務(wù)只能使用一個(gè)回滾段存放它的回滾信息,但是一個(gè)回滾段可以存放多個(gè)事務(wù)的回滾信息。回滾段可以動(dòng)態(tài)創(chuàng)建和撤銷。臨時(shí)段697.5.2回滾段回滾段的工作方式回滾段的作用回滾段的種類回滾段的管理回滾段的查詢7.5.2回滾段回滾段的工作方式70(1)回滾段的工作方式回滾段采用循環(huán)寫的方式進(jìn)行寫入。當(dāng)回滾段中最后一個(gè)區(qū)寫滿時(shí),Oracle將覆蓋寫入回滾段的第一個(gè)區(qū),如果此時(shí)第一個(gè)區(qū)保存得回滾條目所對應(yīng)的事務(wù)依然處于活動(dòng)狀態(tài)(事務(wù)未提交),則此時(shí)該區(qū)不能被覆蓋,Oracle將為回滾段分配一個(gè)新的區(qū)。一個(gè)回滾段至少需要兩個(gè)區(qū)。一個(gè)事務(wù)可以占用回滾段中的多個(gè)區(qū),同一個(gè)區(qū)也能夠存放多個(gè)事務(wù)的數(shù)據(jù)(1)回滾段的工作方式回滾段采用循環(huán)寫的方式進(jìn)行寫入。當(dāng)回滾71UpdatetransactionOldimageNewimageUndosegmentTableUpdatetransactionOldimageNew72(2)回滾段的作用Transactionrollback(事務(wù)回滾)Transactionrecovery(事務(wù)恢復(fù))UndosegmentReadconsistency(讀一致性)Flashbackquery(閃回查詢)(2)回滾段的作用TransactionrollbackT73事務(wù)回滾當(dāng)啟動(dòng)一個(gè)事務(wù)時(shí),Oracle把一個(gè)回滾段指定給該事務(wù)。當(dāng)事務(wù)修改數(shù)據(jù)時(shí),該數(shù)據(jù)修改前的信息會保存在該回滾段中,當(dāng)用戶執(zhí)行事務(wù)回滾操作時(shí)(ROLLBACK),Oracle會利用保存在回滾段中的數(shù)據(jù)將修改的數(shù)據(jù)恢復(fù)到原來的值。數(shù)據(jù)庫恢復(fù)當(dāng)數(shù)據(jù)庫實(shí)例運(yùn)行失敗時(shí),在數(shù)據(jù)庫恢復(fù)時(shí),Oracle先利用重做日志文件中的信息對數(shù)據(jù)文件進(jìn)行恢復(fù)(包括提交事務(wù)和未提交事務(wù)的恢復(fù)),然后利用回滾段中的信息回滾未提交事務(wù)對數(shù)據(jù)的修改。事務(wù)回滾74數(shù)據(jù)的讀一致性當(dāng)一個(gè)用戶對數(shù)據(jù)庫進(jìn)行修改,但還沒有提交時(shí),系統(tǒng)將用戶修改的數(shù)據(jù)的原始信息保存在回滾段中,這樣就可以為正在訪問相同數(shù)據(jù)的其他用戶提供一份該數(shù)據(jù)的原始視圖,從而保證當(dāng)前用戶未提交的修改其他用戶無法看到,保證了數(shù)據(jù)的讀一致性。閃回查詢閃回查詢技術(shù)是Oracle10g引入的新特性,利用該技術(shù)可以查詢某個(gè)表過去某個(gè)時(shí)間點(diǎn)的狀態(tài)。數(shù)據(jù)的讀一致性75(3)回滾段的種類

系統(tǒng)回滾段創(chuàng)建數(shù)據(jù)庫時(shí)Oracle系統(tǒng)自動(dòng)在SYSTEM表空間中創(chuàng)建一個(gè)“SYSTEM”系統(tǒng)回滾段。該回滾段只用于系統(tǒng)事務(wù)的回退處理,保存系統(tǒng)表空間中對象的前影像。非系統(tǒng)回滾段用戶可以創(chuàng)建非SYSTEM回滾段,用于用戶事務(wù)的回退處理,保存非系統(tǒng)表空間中對象的前影像。非系統(tǒng)回滾段又分為私有回滾段和公有回滾段,其中私有回滾段只能被一個(gè)實(shí)例使用,其數(shù)目和名稱由ROLLBACK_SEGMENTS參數(shù)決定;公有回滾段可以被多個(gè)實(shí)例共享使用,其數(shù)目由TRANSACTIONS和TRANSACTION_PER_ROLLBACK_SEGMENT決定。(3)回滾段的種類系統(tǒng)回滾段76(4)回滾段的管理

自動(dòng)撤銷管理如果將初始化參數(shù)UNDO_MANAGEMENT設(shè)置為AUTO,則啟動(dòng)自動(dòng)撤銷管理方式。此時(shí),只需要為數(shù)據(jù)庫創(chuàng)建撤銷表空間,并將UNDO_TABLESPACE參數(shù)設(shè)置為創(chuàng)建的撤銷表空間。這樣,數(shù)據(jù)庫運(yùn)行時(shí)的回滾信息就由撤銷表空間自動(dòng)管理。手動(dòng)撤銷管理如果將數(shù)據(jù)庫初始化參數(shù)UNDO_MANAGEMENT設(shè)置為MANUAL,則需要手動(dòng)進(jìn)行撤銷管理。手動(dòng)撤銷管理增加了DBA的管理負(fù)擔(dān),正逐漸被Oracle淘汰。(4)回滾段的管理自動(dòng)撤銷管理77(5)回滾段的查詢

DBA_ROLLBACK_SEGS:包含所有回滾段信息,包括回滾段的名稱、所屬表空間;DBA_SEGMENTS:包含數(shù)據(jù)庫中所有段的信息;V$ROLLNAME:包含所有聯(lián)機(jī)回滾段的名稱;V$ROLLSTAT:包含回滾段的性能統(tǒng)計(jì)信息;V$UNDOSTAT:包含撤銷表空間的性能統(tǒng)計(jì)信息;V$TRANSACTION:包含事務(wù)所使用的回滾段的信息。(5)回滾段的查詢DBA_ROLLBACK_SEGS:包含78總結(jié)數(shù)據(jù)庫的邏輯結(jié)構(gòu)組成及其之間的關(guān)系表空間及其管理數(shù)據(jù)塊及其管理區(qū)及其管理段及其管理總結(jié)數(shù)據(jù)庫的邏輯結(jié)構(gòu)組成及其之間的關(guān)系79第7章邏輯存儲結(jié)構(gòu)第7章邏輯存儲結(jié)構(gòu)80本章內(nèi)容Oracle邏輯存儲結(jié)構(gòu)概述表空間數(shù)據(jù)塊區(qū)段本章內(nèi)容Oracle邏輯存儲結(jié)構(gòu)概述81本章要求掌握Oracle數(shù)據(jù)庫邏輯結(jié)構(gòu)組成掌握表空間的作用及其管理掌握擴(kuò)展區(qū)的結(jié)構(gòu),了解擴(kuò)展區(qū)的管理掌握段的作用,了解段的管理本章要求掌握Oracle數(shù)據(jù)庫邏輯結(jié)構(gòu)組成827.1邏輯存儲結(jié)構(gòu)概述概念邏輯存儲結(jié)構(gòu)是從邏輯的角度來分析數(shù)據(jù)庫的構(gòu)成的,是數(shù)據(jù)庫創(chuàng)建后利用邏輯概念來描述Oracle數(shù)據(jù)庫內(nèi)部數(shù)據(jù)的組織和管理形式。在操作系統(tǒng)中,沒有數(shù)據(jù)庫邏輯存儲結(jié)構(gòu)信息,而只有物理存儲結(jié)構(gòu)信息。數(shù)據(jù)庫的邏輯存儲結(jié)構(gòu)概念存儲在數(shù)據(jù)庫的數(shù)據(jù)字典中,可以通過數(shù)據(jù)字典查詢邏輯存儲結(jié)構(gòu)信息。

邏輯結(jié)構(gòu)單元類型數(shù)據(jù)塊:BLOCK區(qū):EXTENT段:SEGMENT表空間:TABLESPACE7.1邏輯存儲結(jié)構(gòu)概述概念83數(shù)據(jù)庫的存儲層次關(guān)系DatabaseLogicalPhysicalTablespaceDatafileOSblockOracle

blockSegmentExtent數(shù)據(jù)庫的存儲層次關(guān)系DatabaseLogicalPhysi84數(shù)據(jù)庫邏輯存儲結(jié)構(gòu)之間的關(guān)系表空間數(shù)據(jù)段………

區(qū)間數(shù)據(jù)塊(段片)數(shù)據(jù)庫邏輯存儲結(jié)構(gòu)之間的關(guān)系表空間數(shù)據(jù)段………區(qū)857.2表空間表空間概述表空間的管理7.2表空間表空間概述867.2.1表空間概述表空間的概念表空間的分類表空間的管理方式表空間的管理策略7.2.1表空間概述表空間的概念87(1)表空間概念Oracle數(shù)據(jù)庫在邏輯上可以劃分為一系列的邏輯空間,每一個(gè)邏輯空間就可以稱為一個(gè)表空間。一個(gè)數(shù)據(jù)庫由有一個(gè)或多個(gè)表空間構(gòu)成,不同表空間用于存放不同應(yīng)用的數(shù)據(jù),表空間大小決定了數(shù)據(jù)庫的大小。一個(gè)表空間對應(yīng)一個(gè)或多個(gè)數(shù)據(jù)文件,數(shù)據(jù)文件大小決定了表空間的大小。一個(gè)數(shù)據(jù)文件只能從屬于一個(gè)表空間。表空間是存儲模式對象的容器,一個(gè)數(shù)據(jù)庫對象只能存儲在一個(gè)表空間中(分區(qū)表和分區(qū)索引除外),但可以存儲在該表空間所對應(yīng)的一個(gè)或多個(gè)數(shù)據(jù)文件中。若表空間只有一個(gè)數(shù)據(jù)文件,則該表空間中所有對象都保存在該文件中;若表空間對應(yīng)多個(gè)數(shù)據(jù)文件,則表空間中的對象可以分布于不同的數(shù)據(jù)文件中。(1)表空間概念Oracle數(shù)據(jù)庫在邏輯上可以劃分為一系列的88數(shù)據(jù)庫、表空間、數(shù)據(jù)文件、數(shù)據(jù)庫對象之間的關(guān)系:數(shù)據(jù)庫、表空間、數(shù)據(jù)文件、數(shù)據(jù)庫對象之間的關(guān)系:89通過表空間,可以實(shí)現(xiàn)對數(shù)據(jù)庫存儲的管理:控制整個(gè)數(shù)據(jù)庫占用空間的大?。豢刂茢?shù)據(jù)庫在磁盤上的分配,提高數(shù)據(jù)庫的I/O性能;控制用戶所占用的存儲空間的大小。通過表空間,可以實(shí)現(xiàn)對數(shù)據(jù)庫存儲的管理:90(2)表空間的分類系統(tǒng)表空間——包括SYSTEM和SYSAUXSYSTEM表空間,主要存儲:數(shù)據(jù)庫的數(shù)據(jù)字典;PL/SQL程序的源代碼和解釋代碼,包括存儲過程、函數(shù)、包、觸發(fā)器等;數(shù)據(jù)庫對象的定義,如表、視圖、序列、同義詞等。SYSAUX表空間SYSAUX表空間是Oracle10g新增的輔助系統(tǒng)表空間,主要用于存儲數(shù)據(jù)庫組件等信息,以減小SYSTEM表空間的負(fù)荷。在通常情況下,不允許刪除、重命名及傳輸SYSAUX表空間。(2)表空間的分類系統(tǒng)表空間——包括SYSTEM和SYSAU91非系統(tǒng)表空間撤銷表空間專門進(jìn)行回滾信息的自動(dòng)管理,由回滾段構(gòu)成。一個(gè)數(shù)據(jù)庫可以有多個(gè)撤銷表空間,但每個(gè)數(shù)據(jù)庫實(shí)例只能使用一個(gè)由UNDO_TABLESPACE參數(shù)設(shè)置的撤銷表空間。初始化參數(shù)UNDO_MANAGEMENT=AUTO時(shí),系統(tǒng)使用撤銷表空間自動(dòng)進(jìn)行回滾信息管理。臨時(shí)表空間專門進(jìn)行臨時(shí)數(shù)據(jù)管理的表空間。在數(shù)據(jù)庫實(shí)例運(yùn)行過程中,執(zhí)行排序等SQL語句時(shí)會產(chǎn)生大量的臨時(shí)數(shù)據(jù),這些臨時(shí)數(shù)據(jù)將保存在數(shù)據(jù)庫臨時(shí)表空間中。建議為數(shù)據(jù)庫單獨(dú)定義默認(rèn)的臨時(shí)表空間。非系統(tǒng)表空間92用戶表空間保存用戶數(shù)據(jù)。大文件表空間與小文件表空間所謂大文件表空間(BigfileTablespace)是指一個(gè)表空間只包含一個(gè)大數(shù)據(jù)文件,該文件的最大尺寸為128TB(數(shù)據(jù)塊大小為32KB)或只32TB(數(shù)據(jù)塊大小為8KB)。與大文件表空間相對應(yīng),系統(tǒng)默認(rèn)創(chuàng)建的表空間稱為小文件表空間(SmallfileTablespace),如SYSTEM表空間、SYSAUX表空間等。小文件表空間可以包含多達(dá)1024個(gè)數(shù)據(jù)文件。小文件表空間的總?cè)萘颗c大文件表空間的容量基本相似。用戶表空間93(3)表空間的管理方式字典管理方式表空間使用數(shù)據(jù)字典來管理存儲空間的分配,當(dāng)進(jìn)行區(qū)的分配與回收時(shí),Oracle將對數(shù)據(jù)字典中的相關(guān)基礎(chǔ)表進(jìn)行更新,同時(shí)會產(chǎn)生回滾信息和重做信息。字典管理方式將漸漸被淘汰。本地管理方式在本地管理方式中,區(qū)的分配和管理信息都存儲在表空間的數(shù)據(jù)文件中,而與數(shù)據(jù)字典無關(guān)。表空間在每個(gè)數(shù)據(jù)文件中維護(hù)一個(gè)“位圖”結(jié)構(gòu),用于記錄表空間中所有區(qū)的分配情況,因此區(qū)在分配與回收時(shí),Oracle將對數(shù)據(jù)文件中的位圖進(jìn)行更新,不會產(chǎn)生回滾信息或重做信息。(3)表空間的管理方式字典管理方式94表空間本地管理方式的優(yōu)勢:

由于在區(qū)分配與回收過程中不需要對數(shù)據(jù)字典進(jìn)行訪問,提高了表空間存儲管理操作的速度和并發(fā)性。能夠避免表空間存儲管理操作中的遞歸現(xiàn)象,提高了存儲空間管理操作性能。能夠在保留可查詢性同時(shí),將整個(gè)數(shù)據(jù)庫設(shè)置為只讀狀態(tài)。這種數(shù)據(jù)庫可以作為備用數(shù)據(jù)庫使用。簡化了表空間的存儲管理,由Oracle自動(dòng)完成存儲管理操作。降低了用戶對數(shù)據(jù)字典的依賴性。不存在磁盤碎片問題,因?yàn)楸匾男畔⒍即鎯υ跀?shù)據(jù)文件的位圖中,而不是保存在數(shù)據(jù)字典中。表空間本地管理方式的優(yōu)勢:95(4)表空間管理策略將數(shù)據(jù)字典與用戶數(shù)據(jù)分離,避免由于數(shù)據(jù)字典對象和用戶對象保存在一個(gè)數(shù)據(jù)文件中而產(chǎn)生I/O沖突。將回滾數(shù)據(jù)與用戶數(shù)據(jù)分離,避免由于硬盤損壞而導(dǎo)致永久性的數(shù)據(jù)丟失。將表空間的數(shù)據(jù)文件分散保存到不同的硬盤上,平均分布物理I/O操作。為不同的應(yīng)用創(chuàng)建獨(dú)立的表空間,避免多個(gè)應(yīng)用之間的相互干擾。能夠?qū)⒈砜臻g設(shè)置為脫機(jī)狀態(tài)或聯(lián)機(jī)狀態(tài),以便對數(shù)據(jù)庫的一部分進(jìn)行備份或恢復(fù)。能夠?qū)⒈砜臻g設(shè)置為只讀狀態(tài),從而將數(shù)據(jù)庫的一部分設(shè)置為只讀狀態(tài)。能夠?yàn)槟撤N特殊用途專門設(shè)置一個(gè)表空間,如臨時(shí)表空間,優(yōu)化表空間的使用效率。能夠更加靈活地為用戶設(shè)置表空間配額。(4)表空間管理策略將數(shù)據(jù)字典與用戶數(shù)據(jù)分離,避免由于數(shù)據(jù)字967.2.2表空間的管理(本地管理方式)創(chuàng)建表空間修改表空間表空間的備份刪除表空間大文件表空間的管理表空間信息查詢利用OEM管理表空間7.2.2表空間的管理(本地管理方式)創(chuàng)建表空間97(1)創(chuàng)建表空間

在創(chuàng)建本地管理方式下的表空間時(shí),應(yīng)該確定表空間的名稱、類型、對應(yīng)的數(shù)據(jù)文件的名稱和位置以及區(qū)的分配方式、段的管理方式。表空間名稱不能超過30個(gè)字符,必須以字母開頭,可以包含字母、數(shù)字以及一些特殊字符(如#、_、$)等;表空間的類型包括普通表空間、臨時(shí)表空間和撤銷表空間;表空間中區(qū)的分配方式包括兩種方式:自動(dòng)擴(kuò)展(AUTOALLOCATE)和定制(UNIFORM);段的管理包括兩種方式:自動(dòng)管理(AUTO)和手動(dòng)管理(MANUAL)。(1)創(chuàng)建表空間在創(chuàng)建本地管理方式下的表空間時(shí),應(yīng)該確定表98創(chuàng)建永久表空間

創(chuàng)建永久表空間使用CREATETABLESPACE語句來實(shí)現(xiàn),該語句包含以下幾個(gè)子句:DATAFILE:設(shè)定表空間對應(yīng)的數(shù)據(jù)文件。EXTENTMANAGEMENT:指定表空間的管理方式,取值為LOCAL(默認(rèn))或DICTIONARY。AUTOALLOCATE(默認(rèn))或UNIFORM:設(shè)定區(qū)的分配方式。SEGMENTSPACEMANAGEMENT:設(shè)定段的管理方式,其取值為MANUAL或AUTO(默認(rèn))。創(chuàng)建永久表空間創(chuàng)建永久表空間使用CREATETABLES99例1:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)永久性的表空間ORCLTBS1,區(qū)自動(dòng)擴(kuò)展,段采用自動(dòng)管理方式。例2:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)永久性的表空間ORCLTBS2,區(qū)定制分配,段采用自動(dòng)管理方式。SQL>CREATETABLESPACEORCLTBS1DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_1.DBF'SIZE50M;SQL>CREATETABLESPACEORCLTBS2DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS2_1.DBF'SIZE50MEXTENTMANAGEMENTLOCALUNIFORMSIZE512K;例1:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)永久性的表空間ORCLTBS1100例3:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)永久性的表空間ORCLTBS3,區(qū)自動(dòng)擴(kuò)展,段采用手動(dòng)管理方式。例4:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)永久性的表空間ORCLTBS4,區(qū)定制分配,段采用手動(dòng)管理方式。SQL>CREATETABLESPACEORCLTBS3DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS3_1.DBF'SIZE50MSEGMENTSPACEMANAGEMENTMANUAL;SQL>CREATETABLESPACEORCLTBS4DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS4_1.DBF'SIZE50MEXTENTMANAGEMENTLOCALUNIFORMSIZE512KSEGMENTSPACEMANAGEMENTMANUAL;數(shù)據(jù)文件的名稱分別為ORCLTBS3_1.DBF和ORCLTBS4_1.DBF例3:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)永久性的表空間ORCLTBS3101創(chuàng)建臨時(shí)表空間使用CREATETEMPORARYTABLESPACE語句創(chuàng)建臨時(shí)表空間,用TEMPFILE子句設(shè)置臨時(shí)數(shù)據(jù)文件。注意:臨時(shí)表空間中區(qū)的分配方式只能是UNIFORM,而不能是AUTOALLOCATE,因?yàn)檫@樣才能保證不會在臨時(shí)段中產(chǎn)生過多的存儲碎片。例5:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)臨時(shí)表空間ORCLTEMP1。SQL>CREATETEMPORARYTABLESPACEORCLTEMP1TEMPFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTEMP1_1.DBF'SIZE20MEXTENTMANAGEMENTLOCALUNIFORM

SIZE

16M;創(chuàng)建臨時(shí)表空間使用CREATETEMPORARYTABL102臨時(shí)表空間組將一個(gè)或多個(gè)臨時(shí)表空間構(gòu)成一個(gè)表空間組。優(yōu)點(diǎn):避免由于單個(gè)臨時(shí)表空間的空間不足而導(dǎo)致數(shù)據(jù)庫運(yùn)行故障??梢员WC在一個(gè)簡單并行操作中多個(gè)并行服務(wù)的執(zhí)行。臨時(shí)表空間組不需要顯式創(chuàng)建,為臨時(shí)表空間組指定第一個(gè)臨時(shí)表空間時(shí)隱式創(chuàng)建,當(dāng)臨時(shí)表空間組中最后一個(gè)臨時(shí)表空間刪除時(shí)而隱式地刪除。通過在CREATETEMPORARYTABLSPACE或ALTERTABLESPACE語句中使用TABLESPACEGROUP短語創(chuàng)建臨時(shí)表空間組。臨時(shí)表空間組103例6:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)臨時(shí)表空間ORCLTEMP2,并放入臨時(shí)表空間組temp_group1。同時(shí),將臨時(shí)表空間ORCLTEMP1也放入該temp_group1中。SQL>CREATETEMPORARYTABLESPACEORCLTEMP2TEMPFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTEMP2_1.DBF'SIZE20MEXTENTMANAGEMENTLOCALUNIFORMSIZE16M

TABLESPACE

GROUPtemp_group1;SQL>ALTERTABLESPACEORCLTEMP1TABLESPACE

GROUPtemp_group1;例6:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)臨時(shí)表空間ORCLTEMP2,104創(chuàng)建撤銷表空間如果數(shù)據(jù)庫中沒有創(chuàng)建撤銷表空間,那么將使用SYSTEM表空間來管理回滾段。如果數(shù)據(jù)庫中包含多個(gè)撤銷表空間,那么一個(gè)實(shí)例只能使用一個(gè)處于活動(dòng)狀態(tài)的撤銷表空間,可以通過參數(shù)UNDO_TABLESPACE來指定;如果數(shù)據(jù)庫中只包含一個(gè)撤銷表空間,那么數(shù)據(jù)庫實(shí)例啟動(dòng)后會自動(dòng)使用該撤銷表空間。如果要使用撤銷表空間對數(shù)據(jù)庫回滾信息進(jìn)行自動(dòng)管理,則必須將初始化參數(shù)UNDO_MANAGEMENT=AUTO。創(chuàng)建撤銷表空間如果數(shù)據(jù)庫中沒有創(chuàng)建撤銷表空間,那么將使用SY105可以使用CREATEUNDOTABLESPACE語句創(chuàng)建撤銷表空間,但是在該語句中只能指定DATAFILE和EXTENTMANAGEMENTLOCAL兩個(gè)子句,而不能指定其他子句。例7:為ORCL數(shù)據(jù)庫創(chuàng)建一個(gè)撤銷表空間。注意:如果要在數(shù)據(jù)庫使用該撤銷表空間,需要設(shè)置參數(shù)UNDO_MANAGEMENT=AUTOUNDO_TABLESPACE=ORCLUNDO1SQL>CREATEUNDOTABLESPACEORCLUNDO1DATAFILE'D:\ORACLE\ORADATA\ORCL\ORCLUNDO1_1.DBF'SIZE20M;可以使用CREATEUNDOTABLESPACE語句創(chuàng)建106(2)修改表空間可以對表空間進(jìn)行下列修改操作:擴(kuò)展表空間修改表空間可用性修改表空間讀/寫性設(shè)置默認(rèn)表空間表空間重命名注意:不能將本地管理的永久性表空間轉(zhuǎn)換為本地管理的臨時(shí)表空間,也不能修改本地管理表空間中段的管理方式。(2)修改表空間可以對表空間進(jìn)行下列修改操作:107擴(kuò)展表空間為表空間添加數(shù)據(jù)文件通過ALTERTABLESPACE…ADD

DATAFILE語句為永久表空間添加數(shù)據(jù)文件,通過ALTERTABLESPACE…ADD

TEMPFILE語句為臨時(shí)表空間添加臨時(shí)數(shù)據(jù)文件。例8:為ORCL數(shù)據(jù)庫的ORCLTBS1表空間添加一個(gè)大小為10MB的新數(shù)據(jù)文件。例9:為ORCL數(shù)據(jù)庫的ORCLTEMP1表空間添加一個(gè)大小為10MB的臨時(shí)數(shù)據(jù)文件。SQL>ALTERTABLESPACEORCLTBS1ADDDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF'SIZE10M;SQL>ALTERTABLESPACEORCLTEMP1ADDTEMPFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTEMP1_2.DBF'SIZE10M;擴(kuò)展表空間為表空間添加數(shù)據(jù)文件SQL>ALTERTABL108改變數(shù)據(jù)文件的大小可以通過改變表空間已有數(shù)據(jù)文件的大小,達(dá)到擴(kuò)展表空間的目的。例10:將ORCL數(shù)據(jù)庫的ORCLTBS1表空間的數(shù)據(jù)文件ORCLTBS1_2.DBF大小增加到20MB。SQL>ALTERDATABASE

DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF'

RESIZE20M;改變數(shù)據(jù)文件的大小SQL>ALTERDATABASED109改變數(shù)據(jù)文件的擴(kuò)展方式如果在創(chuàng)建表空間或?yàn)楸砜臻g增加數(shù)據(jù)文件時(shí)沒有指定AUTOEXTENDON選項(xiàng),則該文件的大小是固定的。如果為數(shù)據(jù)文件指定了AUTOEXTENDON選項(xiàng),當(dāng)數(shù)據(jù)文件被填滿時(shí),數(shù)據(jù)文件會自動(dòng)擴(kuò)展,即表空間被擴(kuò)展了。例11:將ORCL數(shù)據(jù)庫的ORCLTBS1表空間的數(shù)據(jù)文件ORCLTBS1_2.DBF設(shè)置為自動(dòng)擴(kuò)展,每次擴(kuò)展5MB空間,文件最大為100MB。SQL>ALTERDATABASEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF'AUTOEXTENDONNEXT5MMAXSIZE100M;改變數(shù)據(jù)文件的擴(kuò)展方式SQL>ALTERDATABASE110修改表空間可用性

離線狀態(tài)的表空間是不能進(jìn)行數(shù)據(jù)訪問的,所對應(yīng)的所有數(shù)據(jù)文件也都處于脫機(jī)狀態(tài)。一些表空間必須是在線狀態(tài):SYSTEM表空間存放在線回退信息的撤銷表空間臨時(shí)表空間語法ALTERTABLESPACE…ONLINE|OFFLINE例12、13:SQL>ALTERTABLESPACEORCLTBS1OFFLINE;SQL>ALTERTABLESPACEORCLTBS1ONLINE;修改表空間可用性離線狀態(tài)的表空間是不能進(jìn)行數(shù)據(jù)訪問的,所對111修改表空間讀寫性語法:ALTERTABLESPACE…READONLY|READWRITE設(shè)置“只讀”的目的:避免對DB中大量靜態(tài)數(shù)據(jù)進(jìn)行備份;避免用戶對歷史數(shù)據(jù)進(jìn)行修改。表空間只有滿足下列要求才可以轉(zhuǎn)換為只讀狀態(tài):表空間處于聯(lián)機(jī)狀態(tài);表空間中不能包含任何活動(dòng)的回退段;如果表空間正在進(jìn)行聯(lián)機(jī)數(shù)據(jù)庫備份,不能將它設(shè)置為只讀狀態(tài)。因?yàn)槁?lián)機(jī)備份結(jié)束時(shí),Oracle更新表空間數(shù)據(jù)文件的頭部信息。例14、15:SQL>ALTERTABLESPACEORCLTBS1READONLY;SQL>ALTERTABLESPACEORCLTBS1READWRITE;修改表空間讀寫性語法:SQL>ALTERTABLESPA112設(shè)置默認(rèn)表空間在Oracle10g數(shù)據(jù)庫中,默認(rèn)表空間為USERS表空間,默認(rèn)臨時(shí)表空間為TEMP表空間。設(shè)置數(shù)據(jù)庫的默認(rèn)表空間ALTERDATABASEDEFAULTTABLESPACE設(shè)置數(shù)據(jù)庫的默認(rèn)臨時(shí)表空間ALTERDATABASEDEFAULT

TEMPORARYTABLESPACE例16、17、18:SQL>ALTERDATABASEDEFAULTTABLESPACEORCLTBS1;SQL>ALTERDATABASEDEFAULTTEMPORARYTABLESPACETEMP;SQL>ALTERDATABASEDEFAULTTEMPORARYTABLESPACEtemp_group1;設(shè)置默認(rèn)表空間在Oracle10g數(shù)據(jù)庫中,默認(rèn)表空間為US113表空間重命名語句ALTERTABLESPACE…RENAMETO當(dāng)重命名一個(gè)表空間時(shí):數(shù)據(jù)庫會自動(dòng)更新數(shù)據(jù)字典、控制文件以及數(shù)據(jù)文件頭部中對該表空間的引用。表空間ID號并沒有修改,如果該表空間是數(shù)據(jù)庫默認(rèn)表空間,那么重命名后仍然是數(shù)據(jù)庫的默認(rèn)表空間。注意:不能重命名SYSTEM表空間和SYSAUX表空間;不能重命名處于脫機(jī)狀態(tài)或部分?jǐn)?shù)據(jù)文件處于脫機(jī)狀態(tài)的表空間。表空間重命名語句114(3)表空間的備份語法ALTERTABLESPACE…BEGIN|ENDBACKUP在數(shù)據(jù)庫進(jìn)行熱備份(聯(lián)機(jī)備份)時(shí),需要分別對表空間進(jìn)行備份?;静襟E為:使用ALTERTABLESPACE…BEGINBACKUP語句將表空間設(shè)置為備份模式。在操作系統(tǒng)中備份表空間所對應(yīng)的數(shù)據(jù)文件。使用ALTERTABLESPACE…ENDBACKUP語句結(jié)束表空間的備份模式。(3)表空間的備份語法115例20:備份ORCL數(shù)據(jù)庫的ORCLTBS1表空間。SQL>ALTERTABLESPACEORCLTBS1BEGINBACKUP;復(fù)制ORCLTBS1表空間的數(shù)據(jù)文件ORCLTBS1_1.DBF和ORCLTBS1_2.DBF到目標(biāo)位置。SQL>ALTERTABLESPACEORCLTBS1ENDBACKUP;例20:備份ORCL數(shù)據(jù)庫的ORCLTBS1表空間。SQL>116(4)刪除表空間

語法DROPTABLESPACEtablespace_name說明:如果表空間非空,應(yīng)帶有子句INCLUDINGCONTENTS若要?jiǎng)h除操作系統(tǒng)下的數(shù)據(jù)文件,應(yīng)帶有子句ANDDATAFILES刪除參照完整性約束,應(yīng)帶有子句CASCADECONSTRAINTS(4)刪除表空間語法117例21:刪除ORCL數(shù)據(jù)庫的ORCLTBS1表空間及其所有內(nèi)容。例22:刪除ORCL數(shù)據(jù)庫的ORCLUNDO1表空間及其所有內(nèi)容,同時(shí)刪除其所對應(yīng)的數(shù)據(jù)文件。例23:刪除ORCL數(shù)據(jù)庫的ORCLUNDO1表空間及其所有內(nèi)容,同時(shí)刪除其所對應(yīng)的數(shù)據(jù)文件,以及其他表空間中與ORCLUNDO1表空間相關(guān)的參照完整性約束。SQL>DROPTABLESPACEORCLTBS1INCLUDINGCONTENTS;SQL>DROPTABLESPACEORCLUNDO1INCLUDINGCONTENTSANDDATAFILES;SQL>DROPTABLESPACEORCLUNDO1INCLUDINGCONTENTSANDDATAFILES

CASCADECONSTRAINTS;例21:刪除ORCL數(shù)據(jù)庫的ORCLTBS1表空間及其所有內(nèi)118(5)大文件表空間的管理

概念大文件表空間只包含一個(gè)數(shù)據(jù)文件,可以減少數(shù)據(jù)庫中數(shù)據(jù)文件的數(shù)量,減少SGA中用于存放數(shù)據(jù)文件信息的內(nèi)存需求,同時(shí)減小控制文件。通過對大文件表空間的操作可以實(shí)現(xiàn)對數(shù)據(jù)文件的透明操作,簡化了對數(shù)據(jù)文件的管理。大文件表空間只能采用本地管理方式,其段采用自動(dòng)管理方式。如果在數(shù)據(jù)庫創(chuàng)建時(shí)設(shè)置系統(tǒng)默認(rèn)的表空間類型為BIGFILE,則使用CREATETABLESPACE語句默認(rèn)創(chuàng)建的就是大文件表空間。此時(shí)要?jiǎng)?chuàng)建傳統(tǒng)的小文件表空間,則需要使用CREATESMALLFILETABLESPACE語句。(5)大文件表空間的管理概念119創(chuàng)建大文件表空間的語句CREATEBIGFILETABLESPACE例24:創(chuàng)建一個(gè)大文件表空間ORCLTBS5。SQL>CREATEBIGFILETA

溫馨提示

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

評論

0/150

提交評論