ORACLE 10G體系結(jié)構(gòu)與存儲結(jié)構(gòu)(存儲結(jié)構(gòu)).doc_第1頁
ORACLE 10G體系結(jié)構(gòu)與存儲結(jié)構(gòu)(存儲結(jié)構(gòu)).doc_第2頁
ORACLE 10G體系結(jié)構(gòu)與存儲結(jié)構(gòu)(存儲結(jié)構(gòu)).doc_第3頁
ORACLE 10G體系結(jié)構(gòu)與存儲結(jié)構(gòu)(存儲結(jié)構(gòu)).doc_第4頁
ORACLE 10G體系結(jié)構(gòu)與存儲結(jié)構(gòu)(存儲結(jié)構(gòu)).doc_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

ORACLE 10G體系結(jié)構(gòu)與存儲結(jié)構(gòu)(存儲結(jié)構(gòu)) 博客園:/quange/archive/2010/02/23/1671726.htmlORACLE數(shù)據(jù)庫的存儲結(jié)構(gòu)分為邏輯存儲結(jié)構(gòu)和物理存儲結(jié)構(gòu)。邏輯存儲結(jié)構(gòu)與操作系統(tǒng)平臺無關(guān);物理存儲結(jié)構(gòu)與操作系統(tǒng)平臺有關(guān)。從物理上看,數(shù)據(jù)庫是由控制文件、數(shù)據(jù)文件、重做日志文件、初始化參數(shù)文件等組成的;從邏輯上看,數(shù)據(jù)庫是由表空間組成的。表空間是最大的邏輯存儲單位,塊是最小的邏輯單位,邏輯存儲結(jié)構(gòu)中的塊對應(yīng)于操作系統(tǒng)中的塊。一、 邏輯存儲結(jié)構(gòu)許多初始化參數(shù)都是針對邏輯存儲結(jié)構(gòu)來定義的。邏輯存儲結(jié)構(gòu)包括表空間、段、區(qū)、塊。邏輯存儲結(jié)構(gòu)之間的關(guān)系是:多個塊組成區(qū),多個區(qū)組成段、多個段組成表空間、多個表空間組成邏輯數(shù)據(jù)庫。一個區(qū)只能存在一個數(shù)據(jù)文件中,一個段中的各個區(qū)可以分別在多個數(shù)據(jù)文件中。組成區(qū)的塊是連續(xù)的。(一)表空間表空間是最大的邏輯單位,一個數(shù)據(jù)庫由多個表空間組成,一個表空間可以包含多個數(shù)據(jù)文件,一個數(shù)據(jù)文件只能屬于一個表空間。 ORACLE自動創(chuàng)建的表空間:SYSTEM系統(tǒng)表空間、SYSAUX輔助系統(tǒng)表空間EXAMPLE實例表空間、TEMP臨時表空間、UNDOTBS1重做表空間USERS用戶表空間(1)SYSTEM表空間(2)SYSAUX表空間(3)TEMP表空間當(dāng)SYSTEM表空間被創(chuàng)建為一個本地管理的表空間時,TEMP表空間就是必不可少的,否則他是可選的。SYTEM和SYSAUX表空間值存放系統(tǒng)信息,不存放非系統(tǒng)信息。(二)段段用于存儲表空間中某一個特定的、具有獨立存儲結(jié)構(gòu)的的數(shù)據(jù)庫對象的數(shù)據(jù),它由一個或多個連續(xù)的區(qū)組成。ORACLE中可用的段類型、TABLE表段、TABLE PARTITION表分區(qū)段、INDEX索引段INDEX PARTITION索引分區(qū)段、CLUSTER簇段、ROLLBACK回退段、DETERRED ROLLBACK延遲回退段、UNDO撤銷段、TEMPORARY臨時段、CACHE高速緩存段LOB二進制大對象段、LOBINDEX二進制大對象索引段段的增大過程是通過增加區(qū)的個數(shù)而實現(xiàn)的(每次增加一個區(qū))。每個區(qū)的大小是塊的整數(shù)倍。(1)表段表段存儲表的所有數(shù)據(jù)。當(dāng)用戶創(chuàng)建表時,就會在該用戶的默認(rèn)表空間中為該表分配一個與表名相同的表段,以便將來存儲該表的所有數(shù)據(jù)。(2)表分區(qū)段表分區(qū)段用于存儲分區(qū)表的所有數(shù)據(jù)。當(dāng)用戶創(chuàng)建分區(qū)表時,就會在該用戶的默認(rèn)表空間中為該表的每個分區(qū)分配一個表分區(qū)段。通過將一個達(dá)標(biāo)的數(shù)據(jù)分散到不同的表分區(qū)段中,就能降低I/O次數(shù),提高性能。(3)索引段索引段存儲索引的所有數(shù)據(jù)。當(dāng)用戶用CREATE INDEX語句創(chuàng)建索引,或在定義約束而自動創(chuàng)建索引時,就會在該用戶的默認(rèn)表空間中為該索引分配一個與索引名相同的索引段。(4)索引分區(qū)段如果為分區(qū)表創(chuàng)建分區(qū)索引,則會為每個分區(qū)索引分配一個索引分區(qū)段,其功能與表分區(qū)段相同。(5)臨時段臨時段存儲排序所產(chǎn)生的臨時數(shù)據(jù)。臨時數(shù)據(jù)首先會被暫存到排序區(qū)(屬于PGA區(qū))中,當(dāng)排序區(qū)不足以暫存這些臨時數(shù)據(jù)時,則會在該用戶的臨時表空間中自動創(chuàng)建一個臨時段,用于暫存這些臨時數(shù)據(jù),排序結(jié)束時,臨時段會自動消除。執(zhí)行以下操作時會產(chǎn)生臨時數(shù)據(jù):CREATE INDEX,SELECT.ORDER BY,SELECT.GROUP BY,SELECT DISTINCT.,SELECT.UNION,SELECT.INTERSECT,SELECT.MINUS,ANALYZE命令。在ORACLE中,每個用戶都有一個用戶分配臨時段的臨時表空間。臨時表空間一般通用,所有的用戶的默認(rèn)臨時表空間都是TEMP表空間。也可以創(chuàng)建另外的臨時表空間,然后在創(chuàng)建用戶時或創(chuàng)建用戶之后,指定其臨時表空間。建議使用專用的臨時表空間作為用戶的臨時表空間。(6)回退段回退段存儲數(shù)據(jù)修改之前的位置和值。利用這些信息,可以回退未提交的事務(wù),維護數(shù)據(jù)庫的讀一致性,并能從例程的崩潰中進行恢復(fù)?;赝硕蔚脑砼c實現(xiàn)是一項十分復(fù)雜的技術(shù),已經(jīng)面臨淘汰。自O(shè)RACLE 9I來,增加了UNDO(撤銷或還原)表空間,并增加了自動撤銷管理功能來代替回退段的功能,即用撤銷表空間代替回退段,但功能相同。建議使用自動撤銷管理功能中的撤銷段,不要使用手動撤銷管理的回退功能。(7)撤銷段撤銷表空間用于分配撤銷段。撤銷段也用于存儲數(shù)據(jù)修改之前的位置和值。默認(rèn)的撤銷表空間由初始化參數(shù)UNDO_TABLESPACE指定的。撤銷表空間是循環(huán)使用的,已提交的撤銷記錄可能被覆蓋,但可以用初始化參數(shù)UNDO_RETENTION指定撤銷記錄在撤銷段中的保留時間。即使在ORACLE中設(shè)置初始化參數(shù)UNDO_MANAGEMENT為AUTO,即啟動自動撤銷管理功能,也會在SYSTEM表空間中保留一個SYSTEM回退段,以便存放和處理由ORACLE系統(tǒng)事務(wù)產(chǎn)生的撤銷數(shù)據(jù)。在創(chuàng)建數(shù)據(jù)庫后,運行SQL.BSQ腳本時會自動創(chuàng)建SYSTEM回退段,DBA不需要對它進行任何的維護和管理,也不能刪除它。(8)二進制大對象段二進制大對象段用于存儲LOB數(shù)據(jù)類型列中的數(shù)據(jù),如:文檔,圖像,音頻,視頻等。創(chuàng)建表時,可以定義LOB數(shù)據(jù)類型的列,ORACLE會為此自動分配對應(yīng)的二進制大對象段。對于LOB列來說,如果數(shù)據(jù)長度少于40000字節(jié),則與其他列的數(shù)據(jù)會一起存放在表段中;否則數(shù)據(jù)就會被存儲到二進制大對象段中。(三)區(qū)區(qū)是由物理上連續(xù)存放的塊構(gòu)成。由一個或多個區(qū)組成段。一個區(qū)只能屬于一個數(shù)據(jù)文件。當(dāng)在數(shù)據(jù)庫中創(chuàng)建帶有實際存儲結(jié)構(gòu)的方案對象時,ORACLE將為該方案對象分配若干個區(qū),以便組成一個對應(yīng)的段,來為該方案對象提供初始的存儲空間。當(dāng)段中已分配的區(qū)都寫滿后,ORACLE就要在該方案對象所在的表空間中為該段分配下一個新的空白區(qū),以便容納更多的數(shù)據(jù)。(四)塊塊是最小的數(shù)據(jù)管理單位。即數(shù)據(jù)管理中輸入輸出的最小單位。相應(yīng)的,操作系統(tǒng)執(zhí)行輸入輸出操作的最小單位是操作系統(tǒng)塊。塊的大小是操作系統(tǒng)塊大小的整數(shù)倍。塊帶笑傲是一個表空間的屬性。SYSTEM和SYSAUX表空間具有相同的標(biāo)準(zhǔn)的塊大小,這個大小是在創(chuàng)建數(shù)據(jù)庫時由DB_BLOCK_SIZE初始化參數(shù)指定的。在創(chuàng)建數(shù)據(jù)庫之后這個初始化參數(shù)值將不能再改變。在ORACLE 9I前,同一個數(shù)據(jù)庫中的所有表空間必須使用相同大小的塊;從ORACLE 9I開始,允許表空間使用各自不同的塊大小,這個大小是在創(chuàng)建該表空間時用BLOCK integer K子句指定的。如果不適用該子句,則可以使用DB_BLOCK_SIZE初始化參數(shù)指定的塊大小。在使用非標(biāo)準(zhǔn)塊之前,必須先為非標(biāo)準(zhǔn)的塊分配相應(yīng)的數(shù)據(jù)告訴緩存。二、 物理存儲結(jié)構(gòu)數(shù)據(jù)庫的物理存儲文件有:控制文件、數(shù)據(jù)文件、重做日志文件、密碼文件、參數(shù)文件和歸檔重做日志文件等。邏輯存儲結(jié)構(gòu)只有創(chuàng)建、刪除的操作;而物理存儲結(jié)構(gòu)除了創(chuàng)建、刪除之外,還有一個最重要的將其移動到另外一個位置的操作。(一) 控制文件控制文件是一個很小的二進制文件。在裝載數(shù)據(jù)庫時,ORACLE將讀取控制文件中的信息,以便判斷數(shù)據(jù)庫的狀態(tài),獲得數(shù)據(jù)庫的物理結(jié)構(gòu)信息及物理文件的使用權(quán)。因此,控制文件對于數(shù)據(jù)庫的成功裝在,以及其后的打開都是至關(guān)重要的。只有控制文件正常才能裝載、打開數(shù)據(jù)庫,否則不能。在數(shù)據(jù)庫運行的過程中,每當(dāng)出現(xiàn)數(shù)據(jù)庫檢查點(checkpoint)或修改數(shù)據(jù)庫結(jié)構(gòu)之后,ORACLE就會修改控制文件的內(nèi)容。DBA可以通過OEM工具修改控制文件中的部分內(nèi)容,但是不應(yīng)該認(rèn)為的修改控制文件中的內(nèi)容,否則會破壞控制文件。應(yīng)該定期對數(shù)據(jù)庫的控制文件進行備份,并將備份保存在不同的硬盤上;另外,處于安全考慮,可以創(chuàng)建多個控制文件,互為鏡像進行復(fù)用。(二)數(shù)據(jù)文件數(shù)據(jù)文件是實際存儲插入到數(shù)據(jù)庫表中的實際的操作系統(tǒng)文件。數(shù)據(jù)文件的大小與它們所存儲的數(shù)據(jù)量的小小直接相關(guān),會自動增大,但刪除其中的數(shù)據(jù),數(shù)據(jù)文件的大小不會減少,只能使其有更多的空閑區(qū)。一個表空間在物理上對應(yīng)于若干個數(shù)據(jù)文件,而一個數(shù)據(jù)文件只能屬于一個表空間。在創(chuàng)建表空間時,ORACLE會同時為該表空間創(chuàng)建第一個數(shù)據(jù)文件。處SYSTEM表空間之外,任何表空間都可以由聯(lián)機狀態(tài)切換到脫機狀態(tài)。當(dāng)表空間進入脫機狀態(tài)時,組成該表空間的數(shù)據(jù)文件也就進入脫機狀態(tài)了。也可以將表空間中的某一個數(shù)據(jù)文件單獨的設(shè)置為脫機狀態(tài),以便進行數(shù)據(jù)庫的備份或恢復(fù)。正在使用的聯(lián)機數(shù)據(jù)文件是不能備份的。(三)重做日志文件當(dāng)用戶對數(shù)據(jù)庫進行修改時,ORACLE實際上是在內(nèi)存中進行修改,過一段時間后,再集中將內(nèi)存中的修改結(jié)果成批的吸入上面的數(shù)據(jù)文件中。如果在將內(nèi)存中的修改結(jié)果寫入到數(shù)據(jù)文件之前發(fā)生故障,導(dǎo)致計算機或數(shù)據(jù)庫崩潰,那么,這些修改結(jié)果就會被遺失。ORACLE是用重做日志文件來隨時保存這些修改結(jié)果的,即ORACLE隨時將內(nèi)存中的修改結(jié)果保存到重做日志文件中?!半S時”表示在將數(shù)據(jù)修改結(jié)果寫入數(shù)據(jù)文件之前,可能已經(jīng)分好幾次寫入重做日志文件了。因此,即使發(fā)生故障導(dǎo)致數(shù)據(jù)庫崩潰,ORACLE也可以利用重做日志文件中的信息來恢復(fù)丟失的數(shù)據(jù)。只要某項操作的重做信息沒有丟失,就可以利用這些重做信息來重現(xiàn)該操作。因為ORACLE是以循環(huán)方式來使用重做日志文件的,所以每個數(shù)據(jù)庫至少需要2個以上重做日志文件。當(dāng)?shù)谝粋€重做日志文件被寫滿之后,后臺進程LGWR開始寫入第二個重做日志文件。當(dāng)?shù)诙€重做日志文件寫滿后,又開始寫入第一個重做日志文件。當(dāng)循環(huán)使用的重做日志文件比較多、比較大時,可以記錄的重做日志就比較多。還可以啟動自動歸檔功能,將即將被覆蓋的重做日志文件中的內(nèi)容存儲到另外歸檔文件中,以便不丟失任何重做日志,得以恢復(fù)任何數(shù)據(jù)。(四)其他文件其他文件包括參數(shù)文件、口令文件、歸檔重做日志文件和后臺進程跟蹤文件等。1) 參數(shù)文件參數(shù)文件也被稱為初始化參數(shù)文件,用于存儲SGA、可選的ORACLE特性和后臺進程的配置參數(shù)。從ORACLE 9I開始,它有2中類型:文本參數(shù)文件PFILE和服務(wù)器參數(shù)文件SPFILE。這兩種參數(shù)文件的作用都相同,可以使用其中之一來配置例程和數(shù)據(jù)庫選項。文本參數(shù)文件可以使用文本編輯器進行編輯;服務(wù)器參數(shù)文件是二進制文件,不能直接用文本編輯器進行編輯。當(dāng)數(shù)據(jù)庫啟動時,并在創(chuàng)建例程或讀取控制文件之前,會先讀取參數(shù)文件,并按期中的參數(shù)進行例程的配置。默認(rèn)使用的是SPFILE。2) 口令文件口令文件是個二進制文件,用于驗證特權(quán)用戶。特權(quán)用戶是指具有SYSOPER或SYSDBA權(quán)限的特殊數(shù)據(jù)庫用戶。這些用戶可以啟動例程、關(guān)閉例程、創(chuàng)建數(shù)據(jù)庫、執(zhí)行備份恢復(fù)等操作。創(chuàng)建ORACLE數(shù)據(jù)庫,默認(rèn)的特權(quán)用戶是SYS??诹钗募哪J(rèn)位置是%ORACLE_HOME%database,命令格式為PWD.ora。3) 預(yù)警文件預(yù)警文件按時間順序記錄了由服務(wù)器進程、后臺進程寫入的消息和錯誤。查看預(yù)警文件就可以查看到是否有ORACLE內(nèi)部錯誤、塊損壞錯誤,以及非默認(rèn)的初始化參數(shù),還可以監(jiān)視特權(quán)用戶的操作,監(jiān)視數(shù)據(jù)庫的物理結(jié)構(gòu)的變化。預(yù)警文件的位置由初始化參數(shù)background_dump_dest確定。命名格式為_alert.log。4) 后臺進程跟蹤文件后臺進程跟蹤文件用來記錄后臺進程的警告或錯誤消息。每個后臺進程都有相應(yīng)的跟蹤文件。后臺進程跟蹤文件的位置由初始化參數(shù)background_dump_dest確定。命名格式為_.trc。5) 服務(wù)器進程跟蹤文件該文件用來記錄服務(wù)器進行的相關(guān)信息,跟蹤SQL語句,診斷SQL語句性能,做出相應(yīng)的性能調(diào)整規(guī)劃。當(dāng)使用該類型跟蹤文件來跟蹤SQL語句時,必須先激活SQL跟蹤。服務(wù)器進程跟蹤文件的位置由初始化參數(shù)user_dump_dest來確定。命名格式

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論