Oracle數(shù)據(jù)庫基礎(chǔ)及應(yīng)用第10章管理表空間和文件課件_第1頁
Oracle數(shù)據(jù)庫基礎(chǔ)及應(yīng)用第10章管理表空間和文件課件_第2頁
Oracle數(shù)據(jù)庫基礎(chǔ)及應(yīng)用第10章管理表空間和文件課件_第3頁
Oracle數(shù)據(jù)庫基礎(chǔ)及應(yīng)用第10章管理表空間和文件課件_第4頁
Oracle數(shù)據(jù)庫基礎(chǔ)及應(yīng)用第10章管理表空間和文件課件_第5頁
已閱讀5頁,還剩155頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

管理表空間和文件管理表空間和文件本章內(nèi)容10.1表空間概述10.2管理表空間10.3管理數(shù)據(jù)文件10.4控制文件的管理10.5日志文件的管理本章內(nèi)容10.1表空間概述10.1表空間概述表空間是Oracle數(shù)據(jù)庫中最大的邏輯結(jié)構(gòu)。Oracle數(shù)據(jù)庫是由一個或多個表空間組成。表空間和數(shù)據(jù)庫物理結(jié)構(gòu)聯(lián)系密切。它在物理上與磁盤上的數(shù)據(jù)文件相對應(yīng)。數(shù)據(jù)邏輯上存放在表空間中;物理上存放在數(shù)據(jù)文件中。10.1表空間概述表空間是Oracle數(shù)據(jù)庫中最大Oracle數(shù)據(jù)庫的存儲結(jié)構(gòu)Oracle數(shù)據(jù)庫的存儲結(jié)構(gòu)表空間的作用控制數(shù)據(jù)庫所占用的磁盤空間。控制用戶所占用的表空間配額。通過表空間管理數(shù)據(jù)流向,提高I/O性能。將表空間設(shè)置為只讀狀態(tài)從而保持靜態(tài)數(shù)據(jù)。表空間提供了一個備份和恢復(fù)單位。表空間的作用控制數(shù)據(jù)庫所占用的磁盤空間。

表空間的類型按是否存放的是系統(tǒng)數(shù)據(jù)分:按表空間的存放內(nèi)容分:按表空間中文件的大小及最多個數(shù)分:表空間的類型按是否存放的是系統(tǒng)數(shù)據(jù)分:表空間的類型I按是否存放的是系統(tǒng)數(shù)據(jù)分:系統(tǒng)表空間:

SYSTEM:存儲Oracle的系統(tǒng)數(shù)據(jù)(如數(shù)據(jù)字典表)。創(chuàng)建數(shù)據(jù)庫時,SYSTEM第一個被創(chuàng)建,具有較高的管理權(quán)限,不能被脫機。

SYSAUX:是Oracle新引入的輔助系統(tǒng)表空間。存放其他可選組件的系統(tǒng)數(shù)據(jù)。兩者都不可以被刪除和更改。非系統(tǒng)表空間:分離不同類型數(shù)據(jù)信息,便于管理表空間。表空間的類型I按是否存放的是系統(tǒng)數(shù)據(jù)分:表空間的類型II按表空間內(nèi)容分:永久性表空間、臨時表空間、撤銷表空間

selecttablespace_name,contentsfromdba_tablespaces;

永久性表空間:存放永久性數(shù)據(jù)。

臨時表空間:存儲的是臨時性數(shù)據(jù)。

(orderby等SQL語句會產(chǎn)生大量的臨時數(shù)據(jù)。在創(chuàng)建用戶時,要給其指定一個臨時表空間,存放其操作產(chǎn)生的臨時數(shù)據(jù),如果沒有指定,就會增用系統(tǒng)表空間,影響服務(wù)器效率。)

撤銷表空間:存放回滾段的數(shù)據(jù)信息。表空間的類型II按表空間內(nèi)容分:表空間的類型III大文件表空間、小文件表空間

select*fromv$tablespace;selecttablespace_name,bigfilefromdba_tablespaces;

大文件表空間:是Oracle引入的表空間,為超大數(shù)據(jù)庫設(shè)計的。大文件表空間只能放置一個數(shù)據(jù)文件,數(shù)據(jù)文件可以包括4G個數(shù)據(jù)塊。最大可以達到32TB。

小文件表空間:可以放置1022個數(shù)據(jù)文件。表空間的類型III大文件表空間、小文件表空間表空間的區(qū)、段管理方式區(qū)(Extent)的管理方式段(Segment)的管理方式表空間的區(qū)、段管理方式區(qū)(Extent)的管理方式表空間的區(qū)管理方式針對區(qū)的分配方式的不同,表空間的管理有兩種管理方式:數(shù)據(jù)字典管理方式(DMT)

傳統(tǒng)管理方式。10g已經(jīng)不再使用該方式。

Oracle通過對數(shù)據(jù)字典中相關(guān)的基礎(chǔ)表進行更新來分配新區(qū)、回收舊區(qū)。本地管理方式(LMT)

11g默認的管理方式。表空間中所有數(shù)據(jù)文件頭均有一個位圖(bitmap),用于記錄表空間所有區(qū)的分配情況。更新該位圖來實現(xiàn)區(qū)的分配和回收。不對任何表作更新操作。表空間的區(qū)管理方式針對區(qū)的分配方式的不同,表空間的管理有在本地管理方式下,可以用關(guān)鍵字來指定表空間區(qū)的分配方式:UNIFORM:統(tǒng)一分配,所有區(qū)大小都相同。AUTOALLOCATE:自動分配,指定由Oracle來自動管理區(qū)大小,Oracle會自動選擇合適的大小。在本地管理方式下,可以用關(guān)鍵字來指定表空間區(qū)的分配方式:表空間的段管理方式在本地管理方式中,還可以指定段的管理方式:段的管理主要是Oracle管理段中已用數(shù)據(jù)塊和空閑數(shù)據(jù)塊的機制。MANUAL(手工):通過空閑列表管理。AUTO(自動):使用位圖管理。根據(jù)位圖中取值來判斷數(shù)據(jù)塊是否可用。效率高。表空間的段管理方式在本地管理方式中,還可以指定段的管理方式:表空間的狀態(tài)一、讀寫(readwrite)二、只讀(Readonly)三、脫機狀態(tài)(Offline)

正常(Normal):執(zhí)行檢查點,不需要恢復(fù)。

臨時(Temporary):執(zhí)行檢查點,但不必保證所有數(shù)據(jù)文件都聯(lián)機可用;如脫機時,有文件不可用,忽略錯誤??赡苄枰謴?fù)。

立即(Immediate):不執(zhí)行檢查點。需要恢復(fù)。用于恢復(fù)(ForRecover):用于恢復(fù)的關(guān)閉方式。表空間的狀態(tài)一、讀寫(readwrite)10.2管理表空間10.2.1管理表空間原則1.使用多重表空間。將用戶數(shù)據(jù)與數(shù)據(jù)字典數(shù)據(jù)分離,并將不同表空間的數(shù)據(jù)文件分別存儲在不同磁盤上可以降低I/O競爭;將一個應(yīng)用的數(shù)據(jù)與其他應(yīng)用分離,可以避免表空間脫機時多個應(yīng)用受到影響;可根據(jù)需要將單個表空間脫機,從而獲得較好的可用性;通過為不同類型的數(shù)據(jù)庫預(yù)留表空間,以達到優(yōu)化表空間的目的,如更新較高的或只讀、或臨時段存儲等;備份單個表空間。10.2管理表空間10.2.1管理表空間原則2.為用戶指定表空間限額。要創(chuàng)建、管理與使用表空間,必須首先以Sys用戶并以assysdba身份登錄數(shù)據(jù)庫。啟動SQL*Plus時的帳戶和口令不需要加引號。命令格式:sqlplussys/<syspassword>assysdba2.為用戶指定表空間限額。10.2.2創(chuàng)建表空間用戶必須擁有Createtablespace權(quán)限才能創(chuàng)建表空間。所有的表空間都應(yīng)有sys用戶來創(chuàng)建。在表空間的創(chuàng)建中,Oracle完成幾個工作:

在數(shù)據(jù)字典、控制文件中記錄該表空間。在操作系統(tǒng)中指定相應(yīng)的物理文件對應(yīng)數(shù)據(jù)文件。在預(yù)警文件中記錄下創(chuàng)建表空間的信息。10.2.2創(chuàng)建表空間用戶必須擁有Createtable1.創(chuàng)建永久性的表空間1.要指定表空間名;2.指定表空間的類型;3.指定和表空間物理對應(yīng)的數(shù)據(jù)文件及屬性;4.指定區(qū)的管理參數(shù);5.指定段的管理參數(shù);6.指定其他屬性

logging/nologging等1.創(chuàng)建永久性的表空間命令格式:SQL>CREATE[undo]TABLESPACEtablespace_name[datafilefilespec[autoextend_clause][,filespec[autoextend_clause]]…][{minimumextentinteger[k|m]|blocksizeinteger[k]|{logging|nologging}|defaultstorage_clause|{online|offline}|{permanent|temporary}|extent_management_clause|segment_management_clause};Createundotablespace:創(chuàng)建還原表空間,用于存入重做日志文件Createtemporarytablespace:創(chuàng)建臨時表空間,用于臨時數(shù)據(jù)的存放;Createtablespace:創(chuàng)建存放用戶數(shù)據(jù)表空間Tablespacename:表空間名datafilefilespec…:指定數(shù)據(jù)文件的具體位置和大小如果有多個文件時,用逗號“,”隔開文件名必須為絕對地址,而不能是相對地址Logging|nologging:是否創(chuàng)建重做日志Extentmanagementlocal:存儲區(qū)管理方法本地管理(LOCAL):

用二進制的方式管理磁盤,有很高的效率,同進能最大限度的使用磁盤.

同時能夠自動跟蹤記錄臨近空閑空間的情況,避免進行空閑區(qū)的合并操作。UNIFORM

SEGMENT

SPACE

MANAGEMENT:指定區(qū)大小,也可使用默認值(1

MB)segmentmanagementlocal:磁盤擴展管理方法使用該選項時區(qū)大小由系統(tǒng)自動確定。AUTO:

只能使用在本地管理的表空間中.使用LOCAL管理表空間時,數(shù)據(jù)塊中的空閑空間增加或減少后,其新狀態(tài)都會在位圖中反映出來。命令格式:Createundotablespace:創(chuàng)建例:創(chuàng)建一個名為tbspace的表空間:SQL>CREATETABLESPACEtbspacenologgingdatafile‘D:\app\Administrator\oradata\tbspace\tbspace01.ora’size50mblocksize8192extentmanagementlocaluniformsize256ksegmentspacemanagementauto;例:創(chuàng)建一個名為tbspace的表空間:2.使一個表空間脫機命令格式:SQL>ALTERTABLESPACE<tablespace_name>offline;例:將表空間tbspace脫機:SQL>ALTERTABLESPACEtbspaceoffline;注意:SYSTEM表空間不能脫機2.使一個表空間脫機3.使一個表空間聯(lián)機命令格式:SQL>ALTERTABLESPACE<tablespace_name>online;例:將表空間tbspace聯(lián)機:SQL>ALTERTABLESPACEtbspaceonline;3.使一個表空間聯(lián)機4.使表空間只讀命令格式:SQL>ALTERTABLESPACE<tablespace_name>readonly;例:將表空間tbspace只讀:SQL>ALTERTABLESPACEtbspacereadonly;4.使表空間只讀5.使表空間可讀可寫命令格式:SQL>ALTERTABLESPACE<tablespace_name>readwrite;例:將表空間tbspace脫機:SQL>ALTERTABLESPACEtbspacereadwrite;5.使表空間可讀可寫6.創(chuàng)建臨時表空間命令格式:SQL>CREATETEMPORARYTABLESPACE<tablespace_name>temfile‘<data_file_path_andfile_name>’size<megabytes>mautoexten<on|off>extentmanagementlocaluniformsize<extent_size>;例:創(chuàng)建臨時表空間tempSQL>CREATETEMPORARYTABLESPACEtemptempfile‘D:\app\Administrator\oradata\temp\temp01.ora’size500mautoextendoffextentmanagementlocaluniformsize512k;6.創(chuàng)建臨時表空間7.添加臨時表空間的數(shù)據(jù)文件命令格式:SQL>ALTERTABLESPACE<tablespace_name>addtempfile‘<path_and_file_name>’size<n>m;例:為臨時表空間temp_ren添加數(shù)據(jù)文件:SQL>ALTERTABLESPACEtemp_renaddtempfile‘D:\app\Administrator\oradata\temp\temp.dbf’size100m;7.添加臨時表空間的數(shù)據(jù)文件8.調(diào)整臨時表空間的數(shù)據(jù)文件命令格式:SQL>ALTERDATABASEtempfile‘<path_and_file_name>’resize<mega_byte>m;例:調(diào)整臨時表空間的數(shù)據(jù)文件大小SQL>ALTERDATABASEtempfile‘D:\app\Administrator\oradata\temp\temp.ora’resize20m;8.調(diào)整臨時表空間的數(shù)據(jù)文件9.將表空間的數(shù)據(jù)文件或臨時文件脫機命令格式:SQL>ALTERDATABASEdatafile‘<path_and_file_name>’offline;或SQL>ALTERDATABASEtempfile‘<path_and_file_name>’offline;示例:SQL>ALTERDATABASEdatafile‘D:\app\Administrator\oradata\temp\temp.ora’offline;9.將表空間的數(shù)據(jù)文件或臨時文件脫機10.將臨時表空間聯(lián)機命令格式:SQL>ALTERDATABASEtempfile‘<path_and_file_name>’online;例:SQL>ALTERDATABASEtempfile‘D:\app\Administrator\oradata\temp\temp.ora’online;10.將臨時表空間聯(lián)機11.刪除表空間,但不刪除其文件命令格式:SQL>DROPTABLESPACE<tablespace_name>;例:刪除表空間tbspace,但不刪除其文件SQL>DROPTABLESPACEtbspace;11.刪除表空間,但不刪除其文件12.刪除包含目錄內(nèi)容的表空間命令格式:SQL>DROPTABLESPACE<tablespace_name>includingcontents;例:刪除表空間tbspace及其包含的內(nèi)容:SQL>DROPTABLESPACEtbspaceincludingcontents;12.刪除包含目錄內(nèi)容的表空間13.刪除包含目錄內(nèi)容和數(shù)據(jù)文件在內(nèi)的表空間命令格式:SQL>DROPTABLESPACE<tablespace_name>includingcontentsanddatafiles;例:將表空間tbspace及其包含的內(nèi)容、數(shù)據(jù)文件及相關(guān)約束一同刪除:SQL>DROPTABLESPACEtbspaceincludingcontentsanddatafiles;13.刪除包含目錄內(nèi)容和數(shù)據(jù)文件在內(nèi)的表空間14.當含有參照笥約束時,刪除包含目錄內(nèi)容和數(shù)據(jù)文件在內(nèi)的表空間命令格式:SQL>DROPTABLESPACE<tablespace_name>includingcontentsanddatafilescascadeconstraints;例:將表空間tbspace及其包含的內(nèi)容、數(shù)據(jù)文件及相關(guān)約束一同刪除:SQL>DROPTABLESPACEtbspaceincludingcontentsanddatafilescascadeconstraints;14.當含有參照笥約束時,刪除包含目錄內(nèi)容和數(shù)據(jù)文件在內(nèi)的表15.表空間更名說明:在Oracle11g中可直接更名永久表空間和臨時表空間。但是,SYSTME和SYSAUX表空間不能更名。命令格式:SQL>ALTERTABLESPACE<old_tablespace_name>renameto<new_tablespace_name>;例:將表空間tbspace更改為newtbspace:SQL>ALTERTABLESPACEtbspacerenametonewtbspace;15.表空間更名10.2.3查詢表空間V$tablespaceDBA_TablespacesALL_TablespacesUSER_TablespacesDBA_segmentsALL_segmentsUSER_segmentsDBA_extentsALL_extentsUSER_extentsV$datafileV$tempfileDBA_datafilesDBA_tempfilesDBA_ts_quotasDBA_free_spaceUSER_free_space10.2.3查詢表空間V$tablespaceV$dat系統(tǒng)數(shù)據(jù)字典dba_tablespaces中記錄了關(guān)于表空間的信息:select*fromsys.dba_tablespaces;字段含義字段含義tablespace_nameTablespace_namemin_extlenminimumextentsizeforthetablespaceblock_sizetablespaceblocksizestatusonline,offlinereadinitial_extentdefaultinitialextentsizecontentspermanent,temporary,undonext_extentdefaultincrementalextentsizeloggingdefaultloggingattributemin_extentsdefaultminimumnumberofextentsforce_loggingtablespaceforceloggingmodemax_extentsdefaultmaximumnumberofextentsextent_managementdictionary,localpct_increasedefaultpercentincreaseforextentsizeallocation_typetypeofextentallocationineffectforthistablespaceplugged_insegment_space_managementauto,manual系統(tǒng)數(shù)據(jù)字典dba_tablespaces中記錄了關(guān)于表空間列出表空間、表空間文件、分配的空間、空閑空間以及下一個空閑分區(qū)列出表空間、表空間文件、分配的空間、空閑空間以及下一個空閑分列出數(shù)據(jù)文件、表空間名以及大?。毫谐鰯?shù)據(jù)文件、表空間名以及大?。毫谐霰砜臻g、大小、空閑空間以及空閑空間的百分比列出表空間、大小、空閑空間以及空閑空間的百分比計算表空間每個數(shù)據(jù)文件實際的最小空間以及對應(yīng)的文件名,其大小與磁盤操作系統(tǒng)中顯示的不同計算表空間每個數(shù)據(jù)文件實際的最小空間以及對應(yīng)的文件名,其大小10.3管理數(shù)據(jù)文件10.3.1數(shù)據(jù)文件數(shù)據(jù)文件是用于存儲數(shù)據(jù)庫中數(shù)據(jù)的操作系統(tǒng)文件。創(chuàng)建數(shù)據(jù)庫時會創(chuàng)建幾個Oracle系統(tǒng)使用的數(shù)據(jù)文件;數(shù)據(jù)文件與表空間密不可分的,創(chuàng)建表空間同時必須為該表空間創(chuàng)建對應(yīng)的數(shù)據(jù)文件;數(shù)據(jù)文件依賴于表空間,不能獨立存在,在創(chuàng)建數(shù)據(jù)文件時必須指定隸屬的表空間。否則,不會被存取。DBA可以單獨創(chuàng)建數(shù)據(jù)文件,并必須指定其隸屬的表空間,也可以單獨對其進行管理。10.3管理數(shù)據(jù)文件10.3.1數(shù)據(jù)文件10.3.2創(chuàng)建數(shù)據(jù)文件創(chuàng)建數(shù)據(jù)文件的過程實質(zhì)上就是向表空間中添加文件的過程。在創(chuàng)建表空間時,通常會預(yù)先估計表空間所需要的存儲空間大小,然后為它建立若干適當大小的數(shù)據(jù)文件。如果在使用過程中發(fā)現(xiàn)表空間存儲空間不足,可以再為它添加新的數(shù)據(jù)文件。10.3.2創(chuàng)建數(shù)據(jù)文件創(chuàng)建數(shù)據(jù)文件的過程實質(zhì)上就是向表空10.3.2創(chuàng)建數(shù)據(jù)文件可以在創(chuàng)建表空間、修改表空間、創(chuàng)建數(shù)據(jù)庫時創(chuàng)建數(shù)據(jù)文件。Createtablespace..datafile語句Altertablespace..Adddatafile

語句Createtemporarytablespace..tempfile語句Altertablespace…addtempfile

語句Createdatabase語句例:下面的語句為表空間tbspace添加一個大小為20MB的數(shù)據(jù)文件SQL>ALTERTABLESPACEUSER012adddatafile‘D:\ORADATA\TEST\tbspace01.dbf’size20m;10.3.2創(chuàng)建數(shù)據(jù)文件可以在創(chuàng)建表空間、修改表空間、創(chuàng)建10.3.3修改數(shù)據(jù)文件大小除了創(chuàng)建新的數(shù)據(jù)文件外,另一種增加表空間的存儲空間的方法是改變已經(jīng)存在的數(shù)據(jù)文件的大小。改變數(shù)據(jù)文件大小的方式有兩種:設(shè)置數(shù)據(jù)文件為自動增長手動改變數(shù)據(jù)文件的大小10.3.3修改數(shù)據(jù)文件大小除了創(chuàng)建新的數(shù)據(jù)文件外,另一種1.設(shè)定數(shù)據(jù)文件自動增長方式1)創(chuàng)建表空間時設(shè)定Createtablespace…Datafile|tempfile…size..Autoextendonnext..Maxsize..2)表空間中增加一個新的自增文件Alterdatabase…adddatafile…size…Autoextendonnext…maxsize…3)取消已有數(shù)據(jù)文件的自增方式AlterdatabaseDatafile…Autoextendoff;4)如果數(shù)據(jù)文件已創(chuàng)建,現(xiàn)要修改為自增Alterdatabasedatafile…Autoextendonnext…maxsize…;1.設(shè)定數(shù)據(jù)文件自動增長方式2.手動改變數(shù)據(jù)文件大小手動方式改變數(shù)據(jù)文件大小時,需要使用resize語句。例如,下面的語句將數(shù)據(jù)文件的大小增長為100MB。SQL>ALTERDATABASE2datafile‘D:\app\Administrator\ORADATA\TEST\my02_1.dbf’3resize100m;2.手動改變數(shù)據(jù)文件大小10.3.4移動數(shù)據(jù)文件因不同原因,在創(chuàng)建數(shù)據(jù)文件后,需要考慮移動數(shù)據(jù)文件到新的位置。例如:將一個迅速增長的文件移至磁盤空間較大的盤區(qū);調(diào)整I/O性能;當某個磁盤損毀時,為了使數(shù)據(jù)庫系統(tǒng)繼續(xù)運行,也可能要將一個或幾個數(shù)據(jù)文件移動到其他磁盤上。移動分為兩種情況:同一表空間下的數(shù)據(jù)文件移動、多個表空間下的數(shù)據(jù)文件移動。注意:移動數(shù)據(jù)文件改變數(shù)據(jù)庫物理結(jié)構(gòu),在操作之前要對數(shù)據(jù)庫進行備份。以便操作失敗恢復(fù)。在完成后要及時備份控制文件,記錄下修改后的數(shù)據(jù)庫物理結(jié)構(gòu)。10.3.4移動數(shù)據(jù)文件因不同原因,在創(chuàng)建數(shù)據(jù)文件后,需要1.同一表空間的數(shù)據(jù)文件移動如:將demo表空間下的數(shù)據(jù)文件由默認位置移至D:\下。步驟:(在open狀態(tài)下操作)1.使表空間脫機;

2.移動數(shù)據(jù)文件;

3.執(zhí)行

altertablespace表空間名renamedatafile‘文件名’[,‘文件名’]to‘文件名’[,‘文件名’];4.使表空間連機;5.備份控制文件1.同一表空間的數(shù)據(jù)文件移動如:將demo表空間下的數(shù)據(jù)文件2.多個表空間的數(shù)據(jù)文件移動如:將teachertbs表空間的teachertbs02.dbf、studenttbs表空間的studenttbs02.dbf由默認位置移至D:\下。步驟:1.使表空間脫機;

2.移動數(shù)據(jù)文件;

3.使用

alterdatabase[數(shù)據(jù)庫名]renamedatafile‘文件名’[,‘文件名’]to‘文件名’[,‘文件名’];4.使表空間聯(lián)機;

5.備份控制文件。2.多個表空間的數(shù)據(jù)文件移動如:將teachertbs表空間刪除數(shù)據(jù)文件當表空間的內(nèi)容不在需要時,就可以將其刪除。除系統(tǒng)表空間及temp、undotbs外。刪除表空間的內(nèi)容及數(shù)據(jù)文件。SQL>altertablespacesecondoffline;SQL>droptablespacesecondincludingcontentsanddatafiles;SQL>altertablespacetmptempfileoffline;SQL>droptablespacetmpincludingcontentsanddatafiles;刪除數(shù)據(jù)文件當表空間的內(nèi)容不在需要時,就可以將其刪除。除系統(tǒng)查詢數(shù)據(jù)文件Dba_tablespacesDba_data_filesDba_temp_filesV$datafileV$tempfile查詢數(shù)據(jù)文件Dba_tablespaces10.4控制文件的管理10.4.1控制文件概述每個Oracle數(shù)據(jù)庫都必須具有至少一個控制文件??刂莆募r一個二進制格式的操作系統(tǒng)文件,其中記錄了關(guān)于數(shù)據(jù)庫物理結(jié)構(gòu)的基本信息,包括數(shù)據(jù)庫的名稱、相關(guān)數(shù)據(jù)文件的名稱和位置、當前的日志序列號等內(nèi)容用于描述和維護數(shù)據(jù)庫的物理結(jié)構(gòu)。數(shù)據(jù)庫的啟動和正常運行都離不開控制文件。啟動數(shù)據(jù)庫時,Oracle從初始化參數(shù)文件中獲得控制文件的名字及位置,打開控制文件,然后從控制文件中讀取數(shù)據(jù)文件和聯(lián)機日志文件的信息,最后打開數(shù)據(jù)庫。數(shù)據(jù)庫運行時,Oracle會修改控制文件,所以,一旦控制文件損壞,數(shù)據(jù)庫將不能正常運行。10.4控制文件的管理10.4.1控制文件概述10.4.2創(chuàng)建控制文件通常創(chuàng)建控制文件的時候有兩種:創(chuàng)建數(shù)據(jù)庫時創(chuàng)建初始控制文件。在創(chuàng)建數(shù)據(jù)庫之后再創(chuàng)建控制文件。

所有數(shù)據(jù)庫控制文件遭到永久破壞,沒有任何備份。希望改變數(shù)據(jù)庫名稱或其他一些數(shù)據(jù)庫參數(shù)的永久性設(shè)置。10.4.2創(chuàng)建控制文件通常創(chuàng)建控制文件的時候有兩種:創(chuàng)建控制文件使用createcontrolfile語句:createcontrolfilereusedatabase“test”logfilegroup1‘c:\oradata\test\redo01.log’size50M,group2‘c:\oradata\test\redo02.log’size50M,group3‘c:\oradata\test\redo03.log’size50Mnoresetlogsnoarchivelogdatafile‘c:\oradata\test\system01.dbf’,‘c:\oradata\test\sysaux01.dbf’,‘c:\oradata\test\undotbs01.dbf’,‘c:\oradata\test\users01.dbf’maxlogfiles16maxlogmembers3maxloghistory292maxdatafiles100maxinstances8charactersetzhs16gbk;創(chuàng)建控制文件使用createcontrolfile語句:創(chuàng)建控制文件的步驟如下:1)獲取數(shù)據(jù)庫的數(shù)據(jù)文件和重做日志文件列表;2)關(guān)閉數(shù)據(jù)庫。Shutdownimmediate3)備份所有的數(shù)據(jù)文件、重做日志文件和spfile參數(shù)文件;4)使用startupnomount啟動數(shù)據(jù)庫實例;5)使用createcontrolfile語句創(chuàng)建控制文件。如果需要重命名數(shù)據(jù)庫,則使用resetlogs子句,否則使用noresetlogs子句;6)將新的控制文件備份到其他不在線的存儲介質(zhì)中,如U盤、移動硬盤或磁帶等;7)根據(jù)實際情況修改control_file參數(shù);如果修改了數(shù)據(jù)庫名稱,則還需要修改db_name參數(shù);8)如果需要的話,則恢復(fù)數(shù)據(jù)庫;9)如果在第8步進行了恢復(fù)數(shù)據(jù)庫的操作,則需要執(zhí)行alterdatabaseopen語句打開數(shù)據(jù)庫。如果在創(chuàng)建控制文件時使用了resetlogs子句,則需要使用alterdatabaseopenresetlgos語句。創(chuàng)建控制文件的步驟如下:10.4.3恢復(fù)控制文件如果控制文件被破壞,但存儲控制文件的目錄仍然是可以訪問的,可以使用下面的方法恢復(fù):1)關(guān)閉數(shù)據(jù)庫實例;2)使用操作系統(tǒng)將控制文件副本復(fù)制到控制文件目錄下;3)使用startup命令打開數(shù)據(jù)庫實例。如果存儲介質(zhì)被破壞,導致存儲控制文件的目錄無法訪問,則可以使用下面的方法恢復(fù):1)關(guān)閉數(shù)據(jù)庫實例;2)使用操作系統(tǒng)將控制文件副本復(fù)制到一個新的可以訪問的目錄下;3)修改control_files參數(shù),將無效的控制文件目錄修改為新的目錄;4)使用startup命令打開數(shù)據(jù)庫實例。10.4.3恢復(fù)控制文件如果控制文件被破壞,但存儲控制文件刪除控制文件修改初始化參數(shù)文件SPFILE中的初始化參數(shù)control_files,刪除不再需要的控制文件的名稱。1)關(guān)閉數(shù)據(jù)庫。2)物理移出不需要的控制文件,也可不作。3)重啟數(shù)據(jù)庫。刪除控制文件修改初始化參數(shù)文件SPFILE中的初始化參數(shù)co移動控制文件修改初始化參數(shù)文件SPFILE中的初始化參數(shù)control_files,修改需移動的控制文件的名稱。1)關(guān)閉數(shù)據(jù)庫。2)移動需要移動的控制文件到新位置。3)重啟數(shù)據(jù)庫。移動控制文件修改初始化參數(shù)文件SPFILE中的初始化參數(shù)co10.5日志文件的管理日志文件又被稱為重做日志文件(redologfile),用來記錄Oracle數(shù)據(jù)庫中的每一個更改操作。oracle的日志文件是記錄數(shù)據(jù)庫變化的一個憑證,就是oracle對于一切數(shù)據(jù)庫的操作的記錄方便以后查找分析錯誤,有可以恢復(fù)數(shù)據(jù)等作用。重做日志文件是由一條條重做記錄組成的,重做記錄是由一個個修改向量(changevector)組成的。每個修改向量對應(yīng)數(shù)據(jù)塊。重做日志文件是保存在磁盤上的一個實際的文件,空間有限,所以,每個Oracle數(shù)據(jù)庫至少要包含兩個或兩個以上的重做日志文件組,LGWR后臺進程以循環(huán)的方式將重做記錄寫入其中。10.5日志文件的管理日志文件又被稱為重做日志文件(red10.5.2增加日志文件一般情況下,我們先對數(shù)據(jù)庫的重做日志文件組及成員進行數(shù)量、大小的規(guī)劃,并且在創(chuàng)建數(shù)據(jù)庫時創(chuàng)建相應(yīng)的重做日志文件組及成員。在特定情況下,如果發(fā)現(xiàn)LGWR經(jīng)常處于等待狀態(tài),則需要考慮添加日志組及其成員,一個數(shù)據(jù)庫最多可以擁有MAXLOGFILES個日志組。增加重做日志是使用alterdatabase語句完成的,執(zhí)行該語句時要求用戶具有alterdatabase系統(tǒng)權(quán)限。10.5.2增加日志文件一般情況下,我們先對數(shù)據(jù)庫的重做日1.添加重做日志文件組當警告文件出現(xiàn)了checkpointnotcomplete時,應(yīng)該增加日志組。增加日志組的目的是為了確保DBWR進程和ARCH進程不會妨礙LGWR進程工作,進而提高系統(tǒng)性能。語法:Alterdatabaseaddlogfile[groupn](logfile1[reuse],logfile2[reuse],logfile3[reuse],…logfilem[reuse])sizeintegerM;1.添加重做日志文件組當警告文件出現(xiàn)了checkpoint日志組1日志組4ALTERDATABASEADDLOGFILEGROUP4('D:\redo04_1.log','D:\redo04_2.log')SIZE10M;redo04_2.logRedo04_1.logredo01.logredo01_1.log日志組2redo02.logredo02_1.log日志組3redo03.logredo03_1.log日志組1日志組4ALTERDATABASEADDLOG建議:不指定組號。新組號是自動分配的下一個組號,不建議使用跳躍式組號,會耗費控制文件的空間。Select*fromv$log;新組的狀態(tài)為UNUSED,當首次使用日志成員時,該成員變?yōu)榛顒拥?。建議:不指定組號。新組號是自動分配的下一個組號,不建議使用跳添加一個新的重做日志文件組,組號5,該組有兩個成員,分別redo05_1.log和redo05_2.log。大小為10M添加一個新的重做日志文件組。添加一個新的重做日志文件組,組號5,該組有兩個成員,分別rALTERDATABASEADDLOGFILE('redo05_1.log','redo05_2.log')size10m;ALTERDATABASEADDLOGFILE;ALTERDATABASEADDLOGFILE2.添加重做日志文件組的成員增加日志成員即多元化重做日志,避免某個日志組的某個成員損壞后系統(tǒng)不能正常運轉(zhuǎn)。語法:AlterdatabaseaddlogfilememberLogfile[reuse]Togroupn;2.添加重做日志文件組的成員增加日志成員即多元化重做日志,避ALTERDATABASEADDLOGFILEMEMBER'D:\redo01_3.log'TOGROUP1,'D:\redo02_3.log'TOGROUP2,'D:\redo04_3.log'

TOGROUP3;日志組1日志組2日志組3Redo01.logRedo01_2.logRedo02.logRedo02_2.logRedo01_3.logRedo02_3.logredo03.logRedo03_2.logRedo03_3.logALTERDATABASEADDLOGFILEMEM建議:不指定大小。新成員的大小是由組中現(xiàn)有成員的大小決定的。Select*fromv$logfile;新成員的狀態(tài)為INVALID,當首次使用日志成員時,該成員變?yōu)榛顒拥?。建議:不指定大小。新成員的大小是由組中現(xiàn)有成員的大小決定的。在MOUNT狀態(tài)下移動重做日志文件:關(guān)閉數(shù)據(jù)庫,啟動到mount移動重做日志文件Alterdatabaserenamefile語句將數(shù)據(jù)庫啟動到OPEN狀態(tài)備份控制文件或數(shù)據(jù)庫。10.5.3移動重做日志文件在MOUNT狀態(tài)下移動重做日志文件:10.5.3移動重做日10.5.4刪除日志組及成員當日志成員損壞或者丟失時,應(yīng)該刪除該日志成員。當日志組大小不合適時,需要重新建立日志組,并刪除原來的日志組。刪除重做日志是使用alterdatabase語句完成的,執(zhí)行該語句時要求用戶具有alterdatabase系統(tǒng)權(quán)限。10.5.4刪除日志組及成員當日志成員損壞或者丟失時,應(yīng)該1.刪除日志成員ALTERDATABASEDROPLOGFILEMEMBER’D:\redo02_2.log’;日志組1日志組2redo01_1.logRedo01_2.logRedo01.logRedo02_1.logRedo02_2.logRedo02.log1.刪除日志成員ALTERDATABASEDROPLO注意:刪除重做日志文件是合理的。不能刪除日志組的唯一成員。當刪除的日志文件屬于INACTIVE日志組時,才可以刪除。如果不是,可以先強制進行日志切換。刪除日志文件,如果是歸檔模式,則要確保已經(jīng)歸檔,才可以刪除。僅僅只是邏輯刪除。還需要手動物理刪除。不能刪除當前日志組的日志成員。注意:ALTERDATABASEDROPLOGFILEGROUP3;Redo01_2.logRedo02_2.logRedo03_2.log日志組1日志組2日志組32.刪除日志組ALTERDATABASEDROPLOGFILEGR注意:在刪除一個日志組時,其中的成員文件也將全部刪除。確保至少有2個日志組。當日志組為INACTIVE時,才可以刪除。如果不是,可以先強制進行日志切換。刪除日志組,如果是歸檔模式,則要確保已經(jīng)歸檔,才可以刪除。僅僅只是邏輯刪除。還需要手動物理刪除。注意:3.清除(重新初始化)重做日志ALTERDATABASECLEARLOGFILE命令可用于重新初始化重做日志使用UNARCHIVED關(guān)鍵字避免歸檔損壞的重做日志ALTERDATABASECLEARUNARCHIVEDLOGFILEGROUP4;ALTERDATABASECLEARLOGFILEGROUP4;清除重做日志文件就是將重做日志文件中的內(nèi)容全部初始化,這相當于刪除該重做日志文件,然后再重新建立它。3.清除(重新初始化)重做日志ALTERDATABASE重做日志文件查詢Current:LGWR當前寫入的聯(lián)機重做日志文件。Active:例程恢復(fù)需要的重做日志文件,為活動的。Inactive:例程恢復(fù)時不需要的日志文件,非活動。重做日志文件查詢Current:LGWR當前寫入的聯(lián)機重可以看出:重做日志以循環(huán)方式使用。當LGWR后臺進程停止向某個重做日志文件寫入而開始向另一個聯(lián)機重做日志文件寫入的動作被稱為日志切換。

通常日志切換發(fā)生在某個日志文件完全填滿,也可以手動強制執(zhí)行日志切換。

語句:ALTERSYSTEMSWITCHLOGFILE;LTERSYSTEMSWITCHLOGFILE;可以看出:重做日志以循環(huán)方式使用。日志切換會觸發(fā)一個檢查點。檢查點:(基于SCN)是一個事件,將SGA區(qū)數(shù)據(jù)高速緩存中已修改的數(shù)據(jù)寫到數(shù)據(jù)文件并更新控制文件和數(shù)據(jù)文件的頭部,用于同步數(shù)據(jù)庫的所有物理文件。

也可以強制發(fā)出檢查點:ALTERSYSTEMCHECKPOINT;

日志切換會觸發(fā)一個檢查點。重做日志的歸檔歸檔:重做日志文件是循環(huán)寫入的,在重做日志文件被覆蓋以前,將該重做日志文件通過復(fù)制操作系統(tǒng)文件的方式,保存到指定位置。復(fù)制保存下來的重做日志文件的集合稱為歸檔重做日志文件。復(fù)制過程稱為歸檔。數(shù)據(jù)庫只有處于歸檔模式,才會對重做日志文件進行歸檔。SQL>archiveloglist;可以查看歸檔模式。重做日志的歸檔歸檔:重做日志文件是循環(huán)寫入的,在重做日志文件管理日志文件準則Oracle建議多路復(fù)用重做日志文件。合理放置重做日志文件到不同的磁盤上,提高重做日志文件的吞吐量。合理設(shè)置重做日志組、文件的數(shù)量及大小。

MAXLOGFILES,MAXLOGMEMBERS參數(shù)限定。管理日志文件準則Oracle建議多路復(fù)用重做日志文件。管理表空間和文件管理表空間和文件本章內(nèi)容10.1表空間概述10.2管理表空間10.3管理數(shù)據(jù)文件10.4控制文件的管理10.5日志文件的管理本章內(nèi)容10.1表空間概述10.1表空間概述表空間是Oracle數(shù)據(jù)庫中最大的邏輯結(jié)構(gòu)。Oracle數(shù)據(jù)庫是由一個或多個表空間組成。表空間和數(shù)據(jù)庫物理結(jié)構(gòu)聯(lián)系密切。它在物理上與磁盤上的數(shù)據(jù)文件相對應(yīng)。數(shù)據(jù)邏輯上存放在表空間中;物理上存放在數(shù)據(jù)文件中。10.1表空間概述表空間是Oracle數(shù)據(jù)庫中最大Oracle數(shù)據(jù)庫的存儲結(jié)構(gòu)Oracle數(shù)據(jù)庫的存儲結(jié)構(gòu)表空間的作用控制數(shù)據(jù)庫所占用的磁盤空間??刂朴脩羲加玫谋砜臻g配額。通過表空間管理數(shù)據(jù)流向,提高I/O性能。將表空間設(shè)置為只讀狀態(tài)從而保持靜態(tài)數(shù)據(jù)。表空間提供了一個備份和恢復(fù)單位。表空間的作用控制數(shù)據(jù)庫所占用的磁盤空間。

表空間的類型按是否存放的是系統(tǒng)數(shù)據(jù)分:按表空間的存放內(nèi)容分:按表空間中文件的大小及最多個數(shù)分:表空間的類型按是否存放的是系統(tǒng)數(shù)據(jù)分:表空間的類型I按是否存放的是系統(tǒng)數(shù)據(jù)分:系統(tǒng)表空間:

SYSTEM:存儲Oracle的系統(tǒng)數(shù)據(jù)(如數(shù)據(jù)字典表)。創(chuàng)建數(shù)據(jù)庫時,SYSTEM第一個被創(chuàng)建,具有較高的管理權(quán)限,不能被脫機。

SYSAUX:是Oracle新引入的輔助系統(tǒng)表空間。存放其他可選組件的系統(tǒng)數(shù)據(jù)。兩者都不可以被刪除和更改。非系統(tǒng)表空間:分離不同類型數(shù)據(jù)信息,便于管理表空間。表空間的類型I按是否存放的是系統(tǒng)數(shù)據(jù)分:表空間的類型II按表空間內(nèi)容分:永久性表空間、臨時表空間、撤銷表空間

selecttablespace_name,contentsfromdba_tablespaces;

永久性表空間:存放永久性數(shù)據(jù)。

臨時表空間:存儲的是臨時性數(shù)據(jù)。

(orderby等SQL語句會產(chǎn)生大量的臨時數(shù)據(jù)。在創(chuàng)建用戶時,要給其指定一個臨時表空間,存放其操作產(chǎn)生的臨時數(shù)據(jù),如果沒有指定,就會增用系統(tǒng)表空間,影響服務(wù)器效率。)

撤銷表空間:存放回滾段的數(shù)據(jù)信息。表空間的類型II按表空間內(nèi)容分:表空間的類型III大文件表空間、小文件表空間

select*fromv$tablespace;selecttablespace_name,bigfilefromdba_tablespaces;

大文件表空間:是Oracle引入的表空間,為超大數(shù)據(jù)庫設(shè)計的。大文件表空間只能放置一個數(shù)據(jù)文件,數(shù)據(jù)文件可以包括4G個數(shù)據(jù)塊。最大可以達到32TB。

小文件表空間:可以放置1022個數(shù)據(jù)文件。表空間的類型III大文件表空間、小文件表空間表空間的區(qū)、段管理方式區(qū)(Extent)的管理方式段(Segment)的管理方式表空間的區(qū)、段管理方式區(qū)(Extent)的管理方式表空間的區(qū)管理方式針對區(qū)的分配方式的不同,表空間的管理有兩種管理方式:數(shù)據(jù)字典管理方式(DMT)

傳統(tǒng)管理方式。10g已經(jīng)不再使用該方式。

Oracle通過對數(shù)據(jù)字典中相關(guān)的基礎(chǔ)表進行更新來分配新區(qū)、回收舊區(qū)。本地管理方式(LMT)

11g默認的管理方式。表空間中所有數(shù)據(jù)文件頭均有一個位圖(bitmap),用于記錄表空間所有區(qū)的分配情況。更新該位圖來實現(xiàn)區(qū)的分配和回收。不對任何表作更新操作。表空間的區(qū)管理方式針對區(qū)的分配方式的不同,表空間的管理有在本地管理方式下,可以用關(guān)鍵字來指定表空間區(qū)的分配方式:UNIFORM:統(tǒng)一分配,所有區(qū)大小都相同。AUTOALLOCATE:自動分配,指定由Oracle來自動管理區(qū)大小,Oracle會自動選擇合適的大小。在本地管理方式下,可以用關(guān)鍵字來指定表空間區(qū)的分配方式:表空間的段管理方式在本地管理方式中,還可以指定段的管理方式:段的管理主要是Oracle管理段中已用數(shù)據(jù)塊和空閑數(shù)據(jù)塊的機制。MANUAL(手工):通過空閑列表管理。AUTO(自動):使用位圖管理。根據(jù)位圖中取值來判斷數(shù)據(jù)塊是否可用。效率高。表空間的段管理方式在本地管理方式中,還可以指定段的管理方式:表空間的狀態(tài)一、讀寫(readwrite)二、只讀(Readonly)三、脫機狀態(tài)(Offline)

正常(Normal):執(zhí)行檢查點,不需要恢復(fù)。

臨時(Temporary):執(zhí)行檢查點,但不必保證所有數(shù)據(jù)文件都聯(lián)機可用;如脫機時,有文件不可用,忽略錯誤??赡苄枰謴?fù)。

立即(Immediate):不執(zhí)行檢查點。需要恢復(fù)。用于恢復(fù)(ForRecover):用于恢復(fù)的關(guān)閉方式。表空間的狀態(tài)一、讀寫(readwrite)10.2管理表空間10.2.1管理表空間原則1.使用多重表空間。將用戶數(shù)據(jù)與數(shù)據(jù)字典數(shù)據(jù)分離,并將不同表空間的數(shù)據(jù)文件分別存儲在不同磁盤上可以降低I/O競爭;將一個應(yīng)用的數(shù)據(jù)與其他應(yīng)用分離,可以避免表空間脫機時多個應(yīng)用受到影響;可根據(jù)需要將單個表空間脫機,從而獲得較好的可用性;通過為不同類型的數(shù)據(jù)庫預(yù)留表空間,以達到優(yōu)化表空間的目的,如更新較高的或只讀、或臨時段存儲等;備份單個表空間。10.2管理表空間10.2.1管理表空間原則2.為用戶指定表空間限額。要創(chuàng)建、管理與使用表空間,必須首先以Sys用戶并以assysdba身份登錄數(shù)據(jù)庫。啟動SQL*Plus時的帳戶和口令不需要加引號。命令格式:sqlplussys/<syspassword>assysdba2.為用戶指定表空間限額。10.2.2創(chuàng)建表空間用戶必須擁有Createtablespace權(quán)限才能創(chuàng)建表空間。所有的表空間都應(yīng)有sys用戶來創(chuàng)建。在表空間的創(chuàng)建中,Oracle完成幾個工作:

在數(shù)據(jù)字典、控制文件中記錄該表空間。在操作系統(tǒng)中指定相應(yīng)的物理文件對應(yīng)數(shù)據(jù)文件。在預(yù)警文件中記錄下創(chuàng)建表空間的信息。10.2.2創(chuàng)建表空間用戶必須擁有Createtable1.創(chuàng)建永久性的表空間1.要指定表空間名;2.指定表空間的類型;3.指定和表空間物理對應(yīng)的數(shù)據(jù)文件及屬性;4.指定區(qū)的管理參數(shù);5.指定段的管理參數(shù);6.指定其他屬性

logging/nologging等1.創(chuàng)建永久性的表空間命令格式:SQL>CREATE[undo]TABLESPACEtablespace_name[datafilefilespec[autoextend_clause][,filespec[autoextend_clause]]…][{minimumextentinteger[k|m]|blocksizeinteger[k]|{logging|nologging}|defaultstorage_clause|{online|offline}|{permanent|temporary}|extent_management_clause|segment_management_clause};Createundotablespace:創(chuàng)建還原表空間,用于存入重做日志文件Createtemporarytablespace:創(chuàng)建臨時表空間,用于臨時數(shù)據(jù)的存放;Createtablespace:創(chuàng)建存放用戶數(shù)據(jù)表空間Tablespacename:表空間名datafilefilespec…:指定數(shù)據(jù)文件的具體位置和大小如果有多個文件時,用逗號“,”隔開文件名必須為絕對地址,而不能是相對地址Logging|nologging:是否創(chuàng)建重做日志Extentmanagementlocal:存儲區(qū)管理方法本地管理(LOCAL):

用二進制的方式管理磁盤,有很高的效率,同進能最大限度的使用磁盤.

同時能夠自動跟蹤記錄臨近空閑空間的情況,避免進行空閑區(qū)的合并操作。UNIFORM

SEGMENT

SPACE

MANAGEMENT:指定區(qū)大小,也可使用默認值(1

MB)segmentmanagementlocal:磁盤擴展管理方法使用該選項時區(qū)大小由系統(tǒng)自動確定。AUTO:

只能使用在本地管理的表空間中.使用LOCAL管理表空間時,數(shù)據(jù)塊中的空閑空間增加或減少后,其新狀態(tài)都會在位圖中反映出來。命令格式:Createundotablespace:創(chuàng)建例:創(chuàng)建一個名為tbspace的表空間:SQL>CREATETABLESPACEtbspacenologgingdatafile‘D:\app\Administrator\oradata\tbspace\tbspace01.ora’size50mblocksize8192extentmanagementlocaluniformsize256ksegmentspacemanagementauto;例:創(chuàng)建一個名為tbspace的表空間:2.使一個表空間脫機命令格式:SQL>ALTERTABLESPACE<tablespace_name>offline;例:將表空間tbspace脫機:SQL>ALTERTABLESPACEtbspaceoffline;注意:SYSTEM表空間不能脫機2.使一個表空間脫機3.使一個表空間聯(lián)機命令格式:SQL>ALTERTABLESPACE<tablespace_name>online;例:將表空間tbspace聯(lián)機:SQL>ALTERTABLESPACEtbspaceonline;3.使一個表空間聯(lián)機4.使表空間只讀命令格式:SQL>ALTERTABLESPACE<tablespace_name>readonly;例:將表空間tbspace只讀:SQL>ALTERTABLESPACEtbspacereadonly;4.使表空間只讀5.使表空間可讀可寫命令格式:SQL>ALTERTABLESPACE<tablespace_name>readwrite;例:將表空間tbspace脫機:SQL>ALTERTABLESPACEtbspacereadwrite;5.使表空間可讀可寫6.創(chuàng)建臨時表空間命令格式:SQL>CREATETEMPORARYTABLESPACE<tablespace_name>temfile‘<data_file_path_andfile_name>’size<megabytes>mautoexten<on|off>extentmanagementlocaluniformsize<extent_size>;例:創(chuàng)建臨時表空間tempSQL>CREATETEMPORARYTABLESPACEtemptempfile‘D:\app\Administrator\oradata\temp\temp01.ora’size500mautoextendoffextentmanagementlocaluniformsize512k;6.創(chuàng)建臨時表空間7.添加臨時表空間的數(shù)據(jù)文件命令格式:SQL>ALTERTABLESPACE<tablespace_name>addtempfile‘<path_and_file_name>’size<n>m;例:為臨時表空間temp_ren添加數(shù)據(jù)文件:SQL>ALTERTABLESPACEtemp_renaddtempfile‘D:\app\Administrator\oradata\temp\temp.dbf’size100m;7.添加臨時表空間的數(shù)據(jù)文件8.調(diào)整臨時表空間的數(shù)據(jù)文件命令格式:SQL>ALTERDATABASEtempfile‘<path_and_file_name>’resize<mega_byte>m;例:調(diào)整臨時表空間的數(shù)據(jù)文件大小SQL>ALTERDATABASEtempfile‘D:\app\Administrator\oradata\temp\temp.ora’resize20m;8.調(diào)整臨時表空間的數(shù)據(jù)文件9.將表空間的數(shù)據(jù)文件或臨時文件脫機命令格式:SQL>ALTERDATABASEdatafile‘<path_and_file_name>’offline;或SQL>ALTERDATABASEtempfile‘<path_and_file_name>’offline;示例:SQL>ALTERDATABASEdatafile‘D:\app\Administrator\oradata\temp\temp.ora’offline;9.將表空間的數(shù)據(jù)文件或臨時文件脫機10.將臨時表空間聯(lián)機命令格式:SQL>ALTERDATABASEtempfile‘<path_and_file_name>’online;例:SQL>ALTERDATABASEtempfile‘D:\app\Administrator\oradata\temp\temp.ora’online;10.將臨時表空間聯(lián)機11.刪除表空間,但不刪除其文件命令格式:SQL>DROPTABLESPACE<tablespace_name>;例:刪除表空間tbspace,但不刪除其文件SQL>DROPTABLESPACEtbspace;11.刪除表空間,但不刪除其文件12.刪除包含目錄內(nèi)容的表空間命令格式:SQL>DROPTABLESPACE<tablespace_name>includingcontents;例:刪除表空間tbspace及其包含的內(nèi)容:SQL>DROPTABLESPACEtbspaceincludingcontents;12.刪除包含目錄內(nèi)容的表空間13.刪除包含目錄內(nèi)容和數(shù)據(jù)文件在內(nèi)的表空間命令格式:SQL>DROPTABLESPACE<tablespace_name>includingcontentsanddatafiles;例:將表空間tbspace及其包含的內(nèi)容、數(shù)據(jù)文件及相關(guān)約束一同刪除:SQL>DROPTABLESPACEtbspaceincludingcontentsanddatafiles;13.刪除包含目錄內(nèi)容和數(shù)據(jù)文件在內(nèi)的表空間14.當含有參照笥約束時,刪除包含目錄內(nèi)容和數(shù)據(jù)文件在內(nèi)的表空間命令格式:SQL>DROPTABLESPACE<tablespace_name>includingcontentsanddatafilescascadeconstraints;例:將表空間tbspace及其包含的內(nèi)容、數(shù)據(jù)文件及相關(guān)約束一同刪除:SQL>DROPTABLESPACEtbspaceincludingcontentsanddatafilescascadeconstraints;14.當含有參照笥約束時,刪除包含目錄內(nèi)容和數(shù)據(jù)文件在內(nèi)的表15.表空間更名說明:在Oracle11g中可直接更名永久表空間和臨時表空間。但是,SYSTME和SYSAUX表空間不能更名。命令格式:SQL>ALTERTABLESPACE<old_tablespace_name>renameto<new_tablespace_name>;例:將表空間tbspace更改為newtbspace:SQL>ALTERTABLESPACEtbspacerenametonewtbspace;15.表空間更名10.2.3查詢表空間V$tablespaceDBA_TablespacesALL_TablespacesUSER_TablespacesDBA_segmentsALL_segmentsUSER_segmentsDBA_extentsALL_extentsUSER_extentsV$datafileV$tempfileDBA_datafilesDBA_tempfilesDBA_ts_quotasDBA_free_spaceUSER_free_space10.2.3查詢表空間V$tablespaceV$dat系統(tǒng)數(shù)據(jù)字典dba_tablespaces中記錄了關(guān)于表空間的信息:select*fromsys.dba_tablespaces;字段含義字段含義tablespace_nameTablespace_namemin_extlenminimumextentsizeforthetablespaceblock_sizetablespaceblocksizestatusonline,offlinereadinitial_extentdefaultinitialextentsizecontentspermanent,temporary,undonext_extentdefaultincrementalextentsizeloggingdefaultloggingattributemin_extentsdefaultminimumnumberofextentsforce_loggingtablespaceforceloggingmodemax_extentsdefaultmaximumnumberofextentsextent_managementdictionary,localpct_increasedefaultpercentincreaseforextentsizeallocation_typetypeofextentallocationineffectforthistablespaceplugged_insegment_space_managementauto,manual系統(tǒng)數(shù)據(jù)字典dba_tablespaces中記錄了關(guān)于表空間列出表空間、表空間文件、分配的空間、空閑空間以及下一個空閑分區(qū)列出表空間、表空間文件、分配的空間、空閑空間以及下一個空閑分列出數(shù)據(jù)文件、表空間名以及大?。毫谐鰯?shù)據(jù)文件、表空間名以及大?。毫谐霰砜臻g、大小、空閑空間以及空閑空間的百分比列出表空間、大小、空閑空間以及空閑空間的百分比計算表空間每個數(shù)據(jù)文件實際的最小空間以及對應(yīng)的文件名,其大小與磁盤操作系統(tǒng)中顯示的不同計算表空間每個數(shù)據(jù)文件實際的最小空間以及對應(yīng)的文件名,其大小10.3管理數(shù)據(jù)文件10.3.1數(shù)據(jù)文件數(shù)據(jù)文件是用于存儲數(shù)據(jù)庫中數(shù)據(jù)的操作系統(tǒng)文件。創(chuàng)建數(shù)據(jù)庫時會創(chuàng)建幾個Oracle系統(tǒng)使用的數(shù)據(jù)文件;數(shù)據(jù)文件與表空間密不可分的,創(chuàng)建表空間同時必須為該表空間創(chuàng)建對應(yīng)的數(shù)據(jù)文件;數(shù)據(jù)文件依賴于表空間,不能獨立存在,在創(chuàng)建數(shù)據(jù)文件時必須指定隸屬的表空間。否則,不會被存取。DBA可以單獨創(chuàng)建數(shù)據(jù)文件,并必須指定其隸屬的表空間,也可以單獨對其進行管理。10.3管理數(shù)據(jù)文件10.3.1數(shù)據(jù)文件10.3.2創(chuàng)建數(shù)據(jù)文件創(chuàng)建數(shù)據(jù)文件的過程實質(zhì)上就是向表空間中添加文件的過程。在創(chuàng)建表空間時,通常會預(yù)先估計表空間所需要的存儲空間大小,然后為它建立若干適當大小的數(shù)據(jù)文件。如果在使用過程中發(fā)現(xiàn)表空間存儲空間不足,可以再為它添加新的數(shù)據(jù)文件。10.3.2創(chuàng)建數(shù)據(jù)文件創(chuàng)建數(shù)據(jù)文件的過程實質(zhì)上就是向表空10.3.2創(chuàng)建數(shù)據(jù)文件可以在創(chuàng)建表空間、修改表空間、創(chuàng)建數(shù)據(jù)庫時創(chuàng)建數(shù)據(jù)文件。Createtablespace..datafile語句Altertablespace..Adddatafile

語句Createtemporarytablespace..tempfile語句Altertablespace…addtempfile

語句Createdatabase語句例:下面的語句為表空間tbspace添加一個大小為20MB的數(shù)據(jù)文件SQL>ALTERTABLESPACEUSER012adddatafile‘D:\ORADATA\TEST\tbspace01.dbf’size20m;10.3.2創(chuàng)建數(shù)據(jù)文件可以在創(chuàng)建表空間、修改表空間、創(chuàng)建10.3.3修改數(shù)據(jù)文件大小除了創(chuàng)建新的數(shù)據(jù)文件外,另一種增加表空間的存儲空間的方法是改變已經(jīng)存在的數(shù)據(jù)文件的大小。改變數(shù)據(jù)文件大小的方式有兩種:設(shè)置數(shù)據(jù)文件為自動增長手動改變數(shù)據(jù)文件的大小10.3.3修改數(shù)據(jù)文件大小除了創(chuàng)建新的數(shù)據(jù)文件外,另一種1.設(shè)定數(shù)據(jù)文件自動增長方式1)創(chuàng)建表空間時設(shè)定Createtablespace…Datafile|tempfile…size..Autoextendonnext..Maxsize..2)表空間中增加一個新的自增文件Alterdatabase…adddatafile…size…Autoextendonnext…maxsize…3)取消已有數(shù)據(jù)文件的自增方式AlterdatabaseDatafile…Autoextendoff;4)如果數(shù)據(jù)文件已創(chuàng)建,現(xiàn)要修改為自增Alterdatabasedatafile…Autoextendonnext…maxsize…;1.設(shè)定數(shù)據(jù)文件自動增長方式2.手動改變數(shù)據(jù)文件大小手動方式改變數(shù)據(jù)文件大小時,需要使用resize語句。例如,下面的語句將數(shù)據(jù)文件的大小增長為100MB。SQL>ALTERDATABASE2datafile‘D:\app\Administrator\ORADATA\TEST\my02_1.dbf’3resize100m;2.手動改變數(shù)據(jù)文件大小10.3.4移動數(shù)據(jù)文件因不同原因,在創(chuàng)建數(shù)據(jù)文件后,需要考慮移動數(shù)據(jù)文件到新的

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論