Oracle數(shù)據(jù)庫基礎(chǔ)及應(yīng)用第章管理表空間和文件_第1頁
Oracle數(shù)據(jù)庫基礎(chǔ)及應(yīng)用第章管理表空間和文件_第2頁
Oracle數(shù)據(jù)庫基礎(chǔ)及應(yīng)用第章管理表空間和文件_第3頁
Oracle數(shù)據(jù)庫基礎(chǔ)及應(yīng)用第章管理表空間和文件_第4頁
Oracle數(shù)據(jù)庫基礎(chǔ)及應(yīng)用第章管理表空間和文件_第5頁
已閱讀5頁,還剩76頁未讀, 繼續(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日志文件的管理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ù)文件中。Oracle數(shù)據(jù)庫的存儲結(jié)構(gòu)表空間的作用控制數(shù)據(jù)庫所占用的磁盤空間??刂朴脩羲加玫谋砜臻g配額。通過表空間管理數(shù)據(jù)流向,提高I/O性能。將表空間設(shè)置為只讀狀態(tài)從而保持靜態(tài)數(shù)據(jù)。表空間提供了一個備份和恢復(fù)單位。

表空間的類型按是否存放的是系統(tǒng)數(shù)據(jù)分:按表空間的存放內(nèi)容分:按表空間中文件的大小及最多個數(shù)分:表空間的類型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ù)信息,便于管理表空間。表空間的類型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ù)信息。表空間的類型III大文件表空間、小文件表空間

select*fromv$tablespace;selecttablespace_name,bigfilefromdba_tablespaces;

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

小文件表空間:可以放置1022個數(shù)據(jù)文件。表空間的區(qū)、段管理方式區(qū)(Extent)的管理方式段(Segment)的管理方式表空間的的區(qū)管理理方式針對區(qū)的的分配方方式的不不同,表表空間的的管理有有兩種管管理方式式:數(shù)據(jù)字典典管理方方式(DMT)傳統(tǒng)管理理方式。。10g已經(jīng)不再再使用該該方式。。Oracle通過對數(shù)據(jù)字字典中相相關(guān)的基基礎(chǔ)表進進行更新新來分配新新區(qū)、回回收舊區(qū)區(qū)。本地管理理方式((LMT)11g默認的管管理方式式。表空空間中所所有數(shù)據(jù)據(jù)文件頭頭均有一一個位圖圖(bitmap),用于記記錄表空空間所有有區(qū)的分分配情況況。更新新該位圖圖來實現(xiàn)現(xiàn)區(qū)的分分配和回回收。不不對任何何表作更更新操作作。在本地管管理方式式下,可可以用關(guān)關(guān)鍵字來來指定表表空間區(qū)區(qū)的分配配方式:UNIFORM:統(tǒng)一分配配,所有有區(qū)大小小都相同同。AUTOALLOCATE:自動分配配,指定定由Oracle來自動管管理區(qū)大大小,Oracle會自動選選擇合適適的大小小。表空間的的段管理理方式在本地管管理方式式中,還還可以指指定段的管理理方式:段的的管理主主要是Oracle管理段中中已用數(shù)數(shù)據(jù)塊和和空閑數(shù)數(shù)據(jù)塊的的機制。。MANUAL(手工):通過空閑列表表管理。AUTO(自動):使用位圖管理理。根據(jù)位圖圖中取值來判判斷數(shù)據(jù)塊是是否可用。效效率高。表空間的狀態(tài)態(tài)一、讀寫(readwrite)二、只讀(Readonly)三、脫機狀態(tài)態(tài)(Offline)正常(Normal):執(zhí)行檢查點點,不需要恢恢復(fù)。臨時(Temporary):執(zhí)行檢查查點,但不必必保證所有數(shù)數(shù)據(jù)文件都聯(lián)聯(lián)機可用;如如脫機時,有有文件不可用用,忽略錯誤誤??赡苄枰謴?fù)。立即(Immediate):不執(zhí)行檢檢查點。需要要恢復(fù)。用于恢復(fù)(ForRecover):用于恢復(fù)復(fù)的關(guān)閉方式式。10.2管理表空間10.2.1管理表空間原原則1.使用用多多重重表表空空間間。將用用戶戶數(shù)數(shù)據(jù)據(jù)與與數(shù)數(shù)據(jù)據(jù)字字典典數(shù)數(shù)據(jù)據(jù)分分離離,,并并將將不不同同表表空空間間的的數(shù)數(shù)據(jù)據(jù)文文件件分分別別存存儲儲在在不不同同磁磁盤盤上上可可以以降降低低I/O競爭爭;;將一一個個應(yīng)應(yīng)用用的的數(shù)數(shù)據(jù)據(jù)與與其其他他應(yīng)應(yīng)用用分分離離,,可可以以避避免免表表空空間間脫脫機機時時多多個個應(yīng)應(yīng)用用受受到到影影響響;;可根根據(jù)據(jù)需需要要將將單單個個表表空空間間脫脫機機,,從從而而獲獲得得較較好好的的可可用用性性;;通過過為為不不同同類類型型的的數(shù)數(shù)據(jù)據(jù)庫庫預(yù)預(yù)留留表表空空間間,,以以達達到到優(yōu)優(yōu)化化表表空空間間的的目目的的,,如如更更新新較較高高的的或或只只讀讀、、或或臨臨時時段段存存儲儲等等;;備份份單單個個表表空空間間。。2.為用用戶戶指指定定表表空空間間限限額額。。要創(chuàng)創(chuàng)建建、、管管理理與與使使用用表表空空間間,,必必須須首首先先以以Sys用戶戶并并以以assysdba身份份登登錄錄數(shù)數(shù)據(jù)據(jù)庫庫。。啟動動SQL*Plus時的的帳帳戶戶和和口口令令不不需需要要加加引引號號。。命令令格格式式::sqlplussys/<syspassword>assysdba10.2.2創(chuàng)建建表表空空間間用戶戶必必須須擁擁有有Createtablespace權(quán)限限才才能能創(chuàng)創(chuàng)建建表表空空間間。。所有有的的表表空空間間都都應(yīng)應(yīng)有有sys用戶戶來來創(chuàng)創(chuàng)建建。。在表表空空間間的的創(chuàng)創(chuàng)建建中中,,Oracle完成成幾幾個個工工作作::在數(shù)數(shù)據(jù)據(jù)字字典典、、控控制制文文件件中中記記錄錄該該表表空空間間。。在操作系系統(tǒng)中指指定相應(yīng)應(yīng)的物理理文件對對應(yīng)數(shù)據(jù)據(jù)文件。。在預(yù)警文文件中記記錄下創(chuàng)創(chuàng)建表空空間的信信息。1.創(chuàng)建永久久性的表表空間1.要指定表表空間名名;2.指定表空空間的類類型;3.指定和表表空間物物理對應(yīng)應(yīng)的數(shù)據(jù)據(jù)文件及及屬性;;4.指定區(qū)的的管理參參數(shù);5.指定段的的管理參參數(shù);6.指定其他他屬性logging/nologging等命令格式式: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ù)數(shù)據(jù)的存存放;Createtablespace:創(chuàng)建存存放用用戶數(shù)數(shù)據(jù)表表空間間Tablespacename:表空間間名datafilefilespec…:指定數(shù)數(shù)據(jù)文文件的的具體體位置置和大大小如果有有多個個文件件時,,用逗逗號““,””隔開開文件名名必須須為絕絕對地地址,,而不不能是是相對對地址址Logging|nologging:是否創(chuàng)創(chuàng)建重重做日日志Extentmanagementlocal:存儲區(qū)區(qū)管理理方法法本地管管理(LOCAL):用二進進制的的方式式管理理磁盤盤,有很高高的效效率,同進能能最大大限度度的使使用磁磁盤.同時能能夠自自動跟跟蹤記記錄臨臨近空空閑空空間的的情況況,避避免進進行空空閑區(qū)區(qū)的合合并操操作。。UNIFORMSEGMENTSPACEMANAGEMENT:指定區(qū)區(qū)大小小,也也可使使用默默認值值(1MB)segmentmanagementlocal:磁盤擴擴展管管理方方法使用該該選項項時區(qū)區(qū)大小小由系系統(tǒng)自自動確確定。。AUTO:只能使使用在在本地地管理理的表表空間間中.使用LOCAL管理表表空間間時,數(shù)據(jù)塊塊中的的空閑閑空間間增加加或減減少后后,其其新狀狀態(tài)都都會在在位圖圖中反反映出出來。。例:創(chuàng)創(chuàng)建一一個名名為tbspace的表空空間::SQL>CREATETABLESPACEtbspacenologgingdatafile‘‘D:\app\Administrator\oradata\tbspace\tbspace01.ora’size50mblocksize8192extentmanagementlocaluniformsize256ksegmentspacemanagementauto;2.使一個表空空間脫機命令格式::SQL>ALTERTABLESPACE<tablespace_name>offline;例:將表空空間tbspace脫機:SQL>ALTERTABLESPACEtbspaceoffline;注意:SYSTEM表空間不能能脫機3.使一個表空空間聯(lián)機命令格式::SQL>ALTERTABLESPACE<tablespace_name>online;例:將表空空間tbspace聯(lián)機:SQL>ALTERTABLESPACEtbspaceonline;4.使表空間只只讀命令格式::SQL>ALTERTABLESPACE<tablespace_name>readonly;例::將將表表空空間間tbspace只讀讀::SQL>ALTERTABLESPACEtbspacereadonly;5.使表表空空間間可可讀讀可可寫寫命令令格格式式::SQL>ALTERTABLESPACE<tablespace_name>readwrite;例::將將表表空空間間tbspace脫機機::SQL>ALTERTABLESPACEtbspacereadwrite;6.創(chuàng)建建臨臨時時表表空空間間命令令格格式式::SQL>CREATETEMPORARYTABLESPACE<tablespace_name>temfile‘‘<data_file_path_andfile_name>’’size<megabytes>mautoexten<on|off>extentmanagementlocaluniformsize<extent_size>;例::創(chuàng)創(chuàng)建建臨臨時時表表空空間間tempSQL>CREATETEMPORARYTABLESPACEtemptempfile‘‘D:\app\Administrator\oradata\temp\temp01.ora’’size500mautoextendoffextentmanagementlocaluniformsize512k;7.添加加臨臨時時表表空空間間的的數(shù)數(shù)據(jù)據(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;8.調(diào)整臨時表空空間的數(shù)據(jù)文文件命令格式:SQL>ALTERDATABASEtempfile‘<path_and_file_name>’resize<mega_byte>m;例:調(diào)整臨時時表空間的數(shù)數(shù)據(jù)文件大小小SQL>ALTERDATABASEtempfile‘D:\app\Administrator\oradata\temp\temp.ora’resize20m;9.將表空間的數(shù)數(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;10.將臨時表空間間聯(lián)機命令格式:SQL>ALTERDATABASEtempfile‘<path_and_file_name>’online;例:SQL>ALTERDATABASEtempfile‘D:\app\Administrator\oradata\temp\temp.ora’online;11.刪除表表空間間,但但不刪刪除其其文件件命令格格式::SQL>DROPTABLESPACE<tablespace_name>;例:刪刪除表表空間間tbspace,但不不刪除除其文文件SQL>DROPTABLESPACEtbspace;12.刪除包包含目目錄內(nèi)內(nèi)容的的表空空間命令格格式::SQL>DROPTABLESPACE<tablespace_name>includingcontents;例:刪刪除表表空間間tbspace及其包包含的的內(nèi)容容:SQL>DROPTABLESPACEtbspaceincludingcontents;13.刪除包包含目目錄內(nèi)內(nèi)容和和數(shù)據(jù)據(jù)文件件在內(nèi)內(nèi)的表表空間間命令格格式::SQL>DROPTABLESPACE<tablespace_name>includingcontentsanddatafiles;例::將將表表空空間間tbspace及其其包包含含的的內(nèi)內(nèi)容容、、數(shù)數(shù)據(jù)據(jù)文文件件及及相相關(guān)關(guān)約約束束一一同同刪刪除除::SQL>DROPTABLESPACEtbspaceincludingcontentsanddatafiles;14.當含含有有參參照照笥笥約約束束時時,,刪刪除除包包含含目目錄錄內(nèi)內(nèi)容容和和數(shù)數(shù)據(jù)據(jù)文文件件在在內(nèi)內(nèi)的的表表空空間間命令令格格式式::SQL>DROPTABLESPACE<tablespace_name>includingcontentsanddatafilescascadeconstraints;例:將表空間間tbspace及其包含的內(nèi)內(nèi)容、數(shù)據(jù)文文件及相關(guān)約約束一同刪除除:SQL>DROPTABLESPACEtbspaceincludingcontentsanddatafilescascadeconstraints;15.表空間更名說明:在Oracle11g中可直接更名名永久表空間間和臨時表空空間。但是,,SYSTME和SYSAUX表空間不能更更名。命令格式:SQL>ALTERTABLESPACE<old_tablespace_name>renameto<new_tablespace_name>;例:將表空間間tbspace更改為newtbspace:SQL>ALTERTABLESPACEtbspacerenametonewtbspace;10.2.3查詢表空間間V$tablespaceDBA_TablespacesALL_TablespacesUSER_TablespacesDBA_segmentsALL_segmentsUSER_segmentsDBA_extentsALL_extentsUSER_extentsV$datafileV$tempfileDBA_datafilesDBA_tempfilesDBA_ts_quotasDBA_free_spaceUSER_free_space系統(tǒng)數(shù)據(jù)字字典dba_tablespaces中記錄了關(guān)關(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列出表空間間、表空間間文件、分分配的空間間、空閑空空間以及下下一個空閑閑分區(qū)列出數(shù)據(jù)文文件、表空空間名以及及大?。毫谐霰砜臻g間、大小、、空閑空間間以及空閑閑空間的百百分比計算表空間間每個數(shù)據(jù)據(jù)文件實際際的最小空空間以及對對應(yīng)的文件件名,其大大小與磁盤盤操作系統(tǒng)統(tǒ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)創(chuàng)建對應(yīng)的的數(shù)據(jù)文件件;數(shù)據(jù)文文件依賴于于表空間,,不能獨立立存在,在在創(chuàng)建數(shù)據(jù)據(jù)文件時必必須指定隸隸屬的表空空間。否則則,不會被被存取。DBA可以單獨創(chuàng)創(chuàng)建數(shù)據(jù)文文件,并必必須指定其其隸屬的表表空間,也也可以單獨獨對其進行行管理。10.3.2創(chuàng)建數(shù)據(jù)文文件創(chuàng)建數(shù)據(jù)文文件的過程程實質(zhì)上就就是向表空空間中添加加文件的過過程。在創(chuàng)建表空空間時,通通常會預(yù)先先估計表空空間所需要要的存儲空空間大小,,然后為它它建立若干干適當大小小的數(shù)據(jù)文文件。如果果在使用過過程中發(fā)現(xiàn)現(xiàn)表空間存存儲空間不不足,可以以再為它添添加新的數(shù)數(shù)據(jù)文件。。10.3.2創(chuàng)建數(shù)據(jù)文文件可以在創(chuàng)建建表空間、、修改表空空間、創(chuàng)建建數(shù)據(jù)庫時時創(chuàng)建數(shù)據(jù)據(jù)文件。Createtablespace..datafile語句Altertablespace..Adddatafile語句Createtemporarytablespace..tempfile語句Altertablespace…addtempfile語句Createdatabase語句例:下面的的語句為表表空間tbspace添加一個大大小為20MB的數(shù)據(jù)文件件SQL>ALTERTABLESPACEUSER012adddatafile‘‘D:\ORADATA\TEST\tbspace01.dbf’size20m;10.3.3修改數(shù)據(jù)文文件大小除了創(chuàng)建新新的數(shù)據(jù)文文件外,另另一種增加加表空間的的存儲空間間的方法是是改變已經(jīng)經(jīng)存在的數(shù)數(shù)據(jù)文件的的大小。改變數(shù)據(jù)文文件大小的的方式有兩兩種:設(shè)置數(shù)據(jù)文文件為自動動增長手動改變變數(shù)據(jù)文文件的大大小1.設(shè)定數(shù)據(jù)據(jù)文件自自動增長長方式1)創(chuàng)建表表空間時時設(shè)定Createtablespace……Datafile|tempfile……size..Autoextendonnext..Maxsize..2)表空間間中增加加一個新新的自增增文件Alterdatabase…adddatafile…size……Autoextendonnext……maxsize…3)取消已已有數(shù)據(jù)據(jù)文件的的自增方方式AlterdatabaseDatafile…Autoextendoff;4)如果數(shù)數(shù)據(jù)文件件已創(chuàng)建建,現(xiàn)要要修改為為自增Alterdatabasedatafile…Autoextendonnext…maxsize…;2.手動改變變數(shù)據(jù)文文件大小小手動方式式改變數(shù)數(shù)據(jù)文件件大小時時,需要要使用resize語句。例如,下下面的語語句將數(shù)數(shù)據(jù)文件件的大小小增長為為100MB。SQL>ALTERDATABASE2datafile‘D:\app\Administrator\ORADATA\TEST\my02_1.dbf’3resize100m;10.3.4移動數(shù)據(jù)據(jù)文件因不同原原因,在在創(chuàng)建數(shù)數(shù)據(jù)文件件后,需需要考慮慮移動數(shù)數(shù)據(jù)文件件到新的的位置。。例如::將一個個迅速增增長的文文件移至至磁盤空空間較大大的盤區(qū)區(qū);調(diào)整整I/O性能;當當某個磁磁盤損毀毀時,為為了使數(shù)數(shù)據(jù)庫系系統(tǒng)繼續(xù)續(xù)運行,,也可能能要將一一個或幾幾個數(shù)據(jù)據(jù)文件移移動到其其他磁盤盤上。移動分為為兩種情情況:同同一表空空間下的的數(shù)據(jù)文文件移動動、多個個表空間間下的數(shù)數(shù)據(jù)文件件移動。。注意:移移動數(shù)據(jù)據(jù)文件改改變數(shù)據(jù)據(jù)庫物理理結(jié)構(gòu),,在操作作之前要要對數(shù)據(jù)據(jù)庫進行行備份。。以便操操作失敗敗恢復(fù)。。在完成成后要及及時備份份控制文文件,記記錄下修修改后的的數(shù)據(jù)庫庫物理結(jié)結(jié)構(gòu)。1.同一表空空間的數(shù)數(shù)據(jù)文件件移動如:將demo表空間下下的數(shù)據(jù)據(jù)文件由由默認位位置移至至D:\下。步驟:(在在open狀態(tài)下操操作)1.使表空間間脫機;;2.移動數(shù)據(jù)據(jù)文件;;3.執(zhí)行altertablespace表空間名名renamedatafile‘‘文件名’[,‘‘文件名’]to‘‘文件名’[,‘‘文件名’];4.使表空間間連機;;5.備份控制制文件2.多個表空空間的數(shù)數(shù)據(jù)文件件移動如:將teachertbs表空間的的teachertbs02.dbf、studenttbs表空間的的studenttbs02.dbf由默認位位置移至至D:\下。步驟:1.使表空間間脫機;;2.移動數(shù)據(jù)據(jù)文件;;3.使用alterdatabase[數(shù)據(jù)庫名名]renamedatafile‘‘文件名’[,‘‘文件名’]to‘‘文件名’[,‘‘文件名’];4.使表空間間聯(lián)機;;5.備份控制制文件。。刪除數(shù)據(jù)據(jù)文件當表空間間的內(nèi)容容不在需需要時,,就可以以將其刪刪除。除除系統(tǒng)表表空間及及temp、undotbs外。刪除表空空間的內(nèi)內(nèi)容及數(shù)數(shù)據(jù)文件件。SQL>altertablespacesecondoffline;SQL>droptablespacesecondincludingcontentsanddatafiles;SQL>altertablespacetmptempfileoffline;SQL>droptablespacetmpincludingcontentsanddatafiles;查詢數(shù)數(shù)據(jù)文文件Dba_tablespacesDba_data_filesDba_temp_filesV$datafileV$tempfile10.4控制文文件的的管理理10.4.1控制文文件概概述每個Oracle數(shù)據(jù)庫庫都必必須具具有至至少一一個控控制文文件。??刂浦莆募r一一個二二進制制格式式的操操作系系統(tǒng)文文件,,其中中記錄錄了關(guān)關(guān)于數(shù)數(shù)據(jù)庫庫物理理結(jié)構(gòu)構(gòu)的基基本信信息,,包括括數(shù)據(jù)據(jù)庫的的名稱稱、相相關(guān)數(shù)數(shù)據(jù)文文件的的名稱稱和位位置、、當前前的日日志序序列號號等內(nèi)內(nèi)容用用于描描述和和維護護數(shù)據(jù)據(jù)庫的的物理理結(jié)構(gòu)構(gòu)。數(shù)據(jù)庫的的啟動和和正常運運行都離離不開控控制文件件。啟啟動數(shù)據(jù)據(jù)庫時,,Oracle從初始化化參數(shù)文文件中獲獲得控制制文件的的名字及及位置,,打開控控制文件件,然后后從控制制文件中中讀取數(shù)數(shù)據(jù)文件件和聯(lián)機機日志文文件的信信息,最最后打開開數(shù)據(jù)庫庫。數(shù)據(jù)據(jù)庫運行行時,Oracle會修改控控制文件件,所以以,一旦旦控制文文件損壞壞,數(shù)據(jù)據(jù)庫將不不能正常常運行。。10.4.2創(chuàng)建控制制文件通常創(chuàng)建建控制文文件的時時候有兩兩種:創(chuàng)建數(shù)據(jù)據(jù)庫時創(chuàng)創(chuàng)建初始始控制文文件。在創(chuàng)建數(shù)數(shù)據(jù)庫之之后再創(chuàng)創(chuàng)建控制制文件。。所有數(shù)據(jù)據(jù)庫控制制文件遭遭到永久久破壞,,沒有任任何備份份。希望改變變數(shù)據(jù)庫庫名稱或或其他一一些數(shù)據(jù)據(jù)庫參數(shù)數(shù)的永久久性設(shè)置置。創(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)建控控制文文件的的步驟驟如下下:1)獲取取數(shù)據(jù)據(jù)庫的的數(shù)據(jù)據(jù)文件件和重重做日日志文文件列列表;;2)關(guān)閉閉數(shù)據(jù)據(jù)庫。。Shutdownimmediate3)備份所有有的數(shù)據(jù)文文件、重做做日志文件件和spfile參數(shù)文件;;4)使用startupnomount啟動數(shù)據(jù)庫庫實例;5)使用createcontrolfile語句創(chuàng)建控控制文件。。如果需要要重命名數(shù)數(shù)據(jù)庫,則則使用resetlogs子句,否則則使用noresetlogs子句;6)將新的控控制文件備備份到其他他不在線的的存儲介質(zhì)質(zhì)中,如U盤、移動硬硬盤或磁帶帶等;7)根據(jù)實際際情況修改改control_file參數(shù);如果果修改了數(shù)數(shù)據(jù)庫名稱稱,則還需需要修改db_name參數(shù);8)如果需要要的話,則則恢復(fù)數(shù)據(jù)據(jù)庫;9)如果在第第8步進行了恢恢復(fù)數(shù)據(jù)庫庫的操作,,則需要執(zhí)執(zhí)行alterdatabaseopen語句打開數(shù)數(shù)據(jù)庫。如如果在創(chuàng)建建控制文件件時使用了了resetlogs子句,則需需要使用alterdatabaseopenresetlgos語句。10.4.3恢復(fù)控制文文件如果控制文文件被破壞壞,但存儲儲控制文件件的目錄仍仍然是可以以訪問的,,可以使用用下面的方方法恢復(fù)::1)關(guān)閉數(shù)據(jù)據(jù)庫實例;;2)使用操作作系統(tǒng)將控控制文件副副本復(fù)制到到控制文件件目錄下;;3)使用startup命令打開數(shù)數(shù)據(jù)庫實例例。如果存儲介介質(zhì)被破壞壞,導(dǎo)致存存儲控制文文件的目錄錄無法訪問問,則可以以使用下面面的方法恢恢復(fù):1)關(guān)閉數(shù)據(jù)據(jù)庫實例;;2)使用操作作系統(tǒng)將控控制文件副副本復(fù)制到到一個新的的可以訪問問的目錄下下;3)修改control_files參數(shù),將無無效的控制制文件目錄錄修改為新新的目錄;;4)使用startup命令打開數(shù)據(jù)據(jù)庫實例。刪除控制文件件修改初始化參參數(shù)文件SPFILE中的初始化參參數(shù)control_files,刪除不再需需要的控制文文件的名稱。。1)關(guān)閉數(shù)據(jù)庫庫。2)物理移出不不需要的控制制文件,也可可不作。3)重啟數(shù)據(jù)庫庫。移動控制文件件修改初始化參參數(shù)文件SPFILE中的初始化參參數(shù)control_files,修改需移動動的控制文件件的名稱。1)關(guān)閉數(shù)據(jù)庫庫。2)移動需要移移動的控制文文件到新位置置。3)重啟數(shù)據(jù)庫庫。10.5日志文件的管管理日志文件又被被稱為重做日日志文件(redologfile),用來記錄錄Oracle數(shù)據(jù)庫中的每每一個更改操操作。oracle的日志文件是是記錄數(shù)據(jù)庫庫變化的一個個憑證,就是oracle對于一切數(shù)據(jù)據(jù)庫的操作的的記錄方便便以后查找分分析錯誤,有有可以恢復(fù)數(shù)數(shù)據(jù)等作用。。重做日志文件件是由一條條條重做記錄組組成的,重做做記錄是由一一個個修改向向量(changevector)組成的。每個個修改向量對對應(yīng)數(shù)據(jù)塊。。重做日志文文件是保存在在磁盤上的一一個實際的文文件,空間有有限,所以,,每個Oracle數(shù)據(jù)庫至少要要包含兩個或或兩個以上的的重做日志文文件組,LGWR后臺進程以循循環(huán)的方式將將重做記錄寫寫入其中。10.5.2增加日志文件件一般情況下,,我們先對數(shù)數(shù)據(jù)庫的重做做日志文件組組及成員進行行數(shù)量、大小小的規(guī)劃,并并且在創(chuàng)建數(shù)數(shù)據(jù)庫時創(chuàng)建建相應(yīng)的重做做日志文件組組及成員。在特定情況下下,如果發(fā)現(xiàn)現(xiàn)LGWR經(jīng)常處于等待待狀態(tài),則需需要考慮添加加日志組及其其成員,一個個數(shù)據(jù)庫最多多可以擁有MAXLOGFILES個日志組。增增加重做日志志是使用alterdatabase語句完成的,,執(zhí)行該語句句時要求用戶戶具有alterdatabase系統(tǒng)統(tǒng)權(quán)權(quán)限限。。1.添加加重重做做日日志志文文件件組組當警警告告文文件件出出現(xiàn)現(xiàn)了了checkpointnotcomplete時,,應(yīng)應(yīng)該該增增加加日日志志組組。。增增加加日日志志組組的的目目的的是是為為了了確確保保DBWR進程程和和ARCH進程程不不會會妨妨礙礙LGWR進程程工工作作,,進進而而提提高高系系統(tǒng)統(tǒng)性性能能。。語法法::Alterdatabaseaddlogfile[groupn](logfile1[reuse],logfile2[reuse],logfile3[reuse],…logfilem[reuse])sizeintegerM;日志志組組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建議:不不指定組組號。新新組號是是自動分分配的下下一個組組號,不不建議使使用跳躍躍式組號號,會耗耗費控制制文件的的空間。。Select*fromv$log;新組的狀狀態(tài)為UNUSED,當首次次使用日日志成員員時,該該成員變變?yōu)榛顒觿拥?。添加一個個新的重重做日志志文件組組,組號號5,該組有有兩個成成員,分分別redo05_1.log和redo05_2.log。大小為為10M添加一個個新的重重做日志志文件組組。ALTERDATABASEADDLOGFILE('redo05_1.log','redo05_2.log')size10m;ALTERDATABASEADDLOGFILE;2.添加重做做日志文文件組的的成員增加日志志成員即即多元化化重做日日志,避避免某個個日志組組的某個個成員損損壞后系系統(tǒng)不能能正常運運轉(zhuǎn)。語法:AlterdatabaseaddlogfilememberLogfile[reuse]Togroupn;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.log建議:不不指定大大小。新新成員的的大小是是由組中中現(xiàn)有成成員的大大小決定定的。Select*fromv$logfile;新成員的的狀態(tài)為為INVALID,當首次次使用日日志成員員時,該該成員變變?yōu)榛顒觿拥?。在MOUNT狀態(tài)下移移動重做做日志文文件:關(guān)閉數(shù)據(jù)據(jù)庫,啟啟動到mount移動重做做日志文文件Alterdatabaserenamefile語句將數(shù)據(jù)庫庫啟動到到OPEN狀態(tài)備份控制制文件或或數(shù)據(jù)庫庫。10.5.3移動重做做日志文文件10.5.4刪除日志志組及成成員當日志成成員損壞壞或者丟丟失時,,應(yīng)該刪刪除該日日志成員員。當日日志組大大小不合合適時,,需要重重新建立立日志組組,并刪刪除原來來的日志志組。刪刪除重做做日志是是使用alterdatabase語句完成成的,執(zhí)執(zhí)行該語語句時要要求用戶戶具有alterdatabase系統(tǒng)權(quán)限限。1.刪除日志志成員ALTERDATABASEDROPLOGFILEMEMBER’D:\redo02_2.log’’;日志組1日志組2redo01_1.logRedo01_2.logRedo01.logR

溫馨提示

  • 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

提交評論