ORACLE數(shù)據(jù)庫規(guī)劃與實(shí)施方案分析課件_第1頁
ORACLE數(shù)據(jù)庫規(guī)劃與實(shí)施方案分析課件_第2頁
ORACLE數(shù)據(jù)庫規(guī)劃與實(shí)施方案分析課件_第3頁
ORACLE數(shù)據(jù)庫規(guī)劃與實(shí)施方案分析課件_第4頁
ORACLE數(shù)據(jù)庫規(guī)劃與實(shí)施方案分析課件_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

4.4ORACLE數(shù)據(jù)庫規(guī)劃與實(shí)施ORACLE為信息系統(tǒng)提供了一個(gè)開放、綜合、集成的方法。使用ORACLE數(shù)據(jù)庫進(jìn)行信息系統(tǒng)開發(fā)的步驟可以歸納為如下過程:建ORACLE數(shù)據(jù)庫建表空間建回滾段建用戶建數(shù)據(jù)庫對象開發(fā)本節(jié)介紹ORACLE數(shù)據(jù)庫的規(guī)劃與實(shí)施:4.4.1數(shù)據(jù)庫應(yīng)用程序類型4.4.4ORACLE對象設(shè)計(jì)4.4.2ORACLE空間設(shè)計(jì)4.4.5DBA工具4.4.3ORACLE安全設(shè)計(jì)北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4ORACLE數(shù)據(jù)庫規(guī)劃與實(shí)施ORACLE為信息系統(tǒng)提14.4.1數(shù)據(jù)庫應(yīng)用程序類型規(guī)劃和配置數(shù)據(jù)庫,需要知道將要操作數(shù)據(jù)庫的事務(wù)有什么,這些事務(wù)訪問數(shù)據(jù)庫的頻率有多大。針對不同的事務(wù)訪問情形,對內(nèi)存的要求不同,磁盤I/O操作的情形也不同。只有設(shè)置合適的ORACLE實(shí)例,才能使數(shù)據(jù)庫應(yīng)用系統(tǒng)獲得快速、準(zhǔn)確、可靠的事務(wù)響應(yīng)。ORACLE既可以設(shè)置成處理長的密集型事務(wù)的系統(tǒng),也可以設(shè)置成處理大量的小型快速事務(wù)的系統(tǒng)。有三種通用的數(shù)據(jù)庫設(shè)置類型:聯(lián)機(jī)事務(wù)處理(OLTP)決策支持系統(tǒng)(DSS)批量作業(yè)系統(tǒng)混合系統(tǒng)北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型規(guī)劃和配置數(shù)據(jù)庫,需要知道將要24.4.1數(shù)據(jù)庫應(yīng)用程序類型聯(lián)機(jī)事務(wù)處理(OLTP)OLTP系統(tǒng)是一個(gè)包含繁重DML的應(yīng)用,其面向事務(wù)的活動主要包括更新,但也包括一些插入和刪除。典型的例子是用于航空公司和旅館的預(yù)定系統(tǒng)。OLTP系統(tǒng)可以允許有很高的并發(fā)性。

OLTP的特點(diǎn)是有大量短的事務(wù)高頻率地訪問數(shù)據(jù)庫,每一個(gè)事務(wù)操作的數(shù)據(jù)量不是很多,但事務(wù)比較頻繁,而且要求數(shù)據(jù)庫響應(yīng)事務(wù)的速度快。一般來說OLTP系統(tǒng)需要24*7地響應(yīng)對數(shù)據(jù)庫的請求。根據(jù)這些要求,我們應(yīng)該從以下幾方面考慮:1)大量的小回滾段。因?yàn)槭聞?wù)都不太大,對回滾段空間的需求不可能很大,但事務(wù)數(shù)量多,引發(fā)回滾段數(shù)量的增大。應(yīng)該創(chuàng)建大量小的回滾段,把事務(wù)對回滾段的爭用減到最小。標(biāo)準(zhǔn)的配置可以考慮每四個(gè)活動事務(wù)用一個(gè)回滾段,每個(gè)事務(wù)接受一個(gè)區(qū)間。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型聯(lián)機(jī)事務(wù)處理(OLTP)北京郵34.4.1數(shù)據(jù)庫應(yīng)用程序類型聯(lián)機(jī)事務(wù)處理(OLTP)2)OLTP應(yīng)用的表可能插入或者刪除記錄,所以存放易變表和索引的表空間應(yīng)被分配到它們最大的期望容量。3)適當(dāng)?shù)墓烙?jì)重寫日志緩沖區(qū)和日志文件大小,減少日志寫和日志切換的頻率,盡可能降低對響應(yīng)事務(wù)請求的影響,另外頻繁的檢查點(diǎn)也可能影響事務(wù)響應(yīng)速度。4)擁有大型共享池。不同客戶可能執(zhí)行同樣的SQL語句,SQL在共享池中緩沖,性能可提高(應(yīng)用程序的SQL語句應(yīng)當(dāng)統(tǒng)一,另外WHERE中使用綁定變量查詢而不是直接的值查詢,使不同值的查詢共享SQL的執(zhí)行計(jì)劃)。5)數(shù)據(jù)擁有單獨(dú)的索引。OLTP的事務(wù)請求基本在規(guī)劃設(shè)計(jì)范圍之內(nèi),建立單獨(dú)有效的索引,并在獨(dú)立的表空間中創(chuàng)建主鍵和其他索引,且存放在獨(dú)立的存儲器上。6)使用小型臨時(shí)段。需要小的排序應(yīng)在內(nèi)存中完成,盡量避免OLTP系統(tǒng)對臨時(shí)段的請求進(jìn)入磁盤。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型聯(lián)機(jī)事務(wù)處理(OLTP)北京郵44.4.1數(shù)據(jù)庫應(yīng)用程序類型決策支持系統(tǒng)(DSS)DSS系統(tǒng)通常是一個(gè)大型的、包含歷史性內(nèi)容的只讀數(shù)據(jù)庫,通常用于簡單的固定查詢或特別查詢。夜間處理任務(wù)被認(rèn)為是DSS,查詢(選擇)是DSS的主要活動。根據(jù)這些要求,我們應(yīng)該從以下幾方面考慮:1)擁有少量的較大的回滾段。大型工作要創(chuàng)建大型的回滾段,使用SETTRANSACTIONUSERROLLBACKSEGMENT語句使事務(wù)強(qiáng)制使用專用回滾段。2)為分類排序創(chuàng)建大型臨時(shí)表空間,DSS經(jīng)常超出內(nèi)存的使用空間而從內(nèi)存轉(zhuǎn)入磁盤(臨時(shí)表空間)。3)使用較小的共享SQL區(qū)域而采用較大的數(shù)據(jù)緩沖區(qū)高速緩沖。DSS中SQL的執(zhí)行頻率并不大,無需考慮SQL語句的共享,但應(yīng)增加數(shù)據(jù)庫緩沖區(qū)高速緩沖的容量,使得更多的數(shù)據(jù)塊和回滾段在內(nèi)存中高速緩沖。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型決策支持系統(tǒng)(DSS)北京郵電54.4.1數(shù)據(jù)庫應(yīng)用程序類型決策支持系統(tǒng)(DSS)

4)如前所述,DSS希望Oracle塊一次讀取盡可能多的行。因?yàn)镈SS查詢一般觸發(fā)整個(gè)表掃描,所以希望通過讀取多個(gè)連續(xù)的塊使系統(tǒng)讀取的塊達(dá)到最大值。把DB_BLOCK_SIZE和DB_FILE_MULTIBLOCK_READ_COUNT參數(shù)設(shè)置得盡可能高些。5)運(yùn)行的SQL應(yīng)當(dāng)刪除不必要的排序并充分利用索引,以減少對臨時(shí)表空間和回滾段的壓力。2種方法:在沒有可以選擇的良好索引時(shí)不使用任何索引或屏蔽使用某些索引(參見4.3);使用位圖索引。6)不要在DSS應(yīng)用代碼中使用綁定變量。在OLTP下,希望最小化應(yīng)用進(jìn)程開銷(語法分析)。然而,DSS的查詢,語法分析占用整個(gè)查詢時(shí)間的比例會更小。假如使用綁定變量,優(yōu)化程序不能調(diào)用它所存儲的統(tǒng)計(jì)信息(通過ANALYZE命令)以選出存取數(shù)據(jù)的最好方法。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型決策支持系統(tǒng)(DSS)北京郵電64.4.1數(shù)據(jù)庫應(yīng)用程序類型批量作業(yè)系統(tǒng)批作業(yè)處理系統(tǒng)是作用于數(shù)據(jù)庫的非交互性的自動應(yīng)用。它通常含有繁忙DML語句并有較低的并發(fā)性。另外還有一些其他的應(yīng)用類型:OLAP(聯(lián)機(jī)分析處理)系統(tǒng)可提供分析服務(wù)。該系統(tǒng)在數(shù)學(xué)、統(tǒng)計(jì)學(xué)、集合以及大量的計(jì)算方面區(qū)別于OLTP或DSS模型。可以把OLAP看作是在OLTP系統(tǒng)或DSS之上的一個(gè)擴(kuò)展或一個(gè)附加的功能層次。地理信息系統(tǒng)(GeographicInformationSystems,GIS)或有關(guān)空間的數(shù)據(jù)庫和OLAP數(shù)據(jù)庫相集成,提供圖表的映射能力。例如用于社會統(tǒng)計(jì)的人口統(tǒng)計(jì)數(shù)據(jù)庫。VCDB(可變基數(shù)數(shù)據(jù)庫),這類數(shù)據(jù)庫通常被用作一個(gè)處理系統(tǒng)的數(shù)據(jù)庫后端,這樣就會導(dǎo)致在數(shù)據(jù)處理期間,數(shù)據(jù)庫中的表顯著地增長或收縮。基數(shù)是指在一個(gè)給定時(shí)間里一個(gè)表中行的數(shù)目。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型批量作業(yè)系統(tǒng)北京郵電大學(xué)軟件學(xué)74.4.1數(shù)據(jù)庫應(yīng)用程序類型混合系統(tǒng)混合系統(tǒng)混合了前面介紹的幾種類型。許多實(shí)際應(yīng)用系統(tǒng)往往是OLTP和DSS甚至其他模型的集成。從前面OLTP和DSS的需求對比來看,OLTP和DSS的基本特征似乎相反,如何協(xié)調(diào)這兩種需求的矛盾?一般有三種解決方法:1)在一個(gè)系統(tǒng)中的OLTP和DSS之間節(jié)流,白天運(yùn)行OLTP,而夜間進(jìn)行批量處理。即白天運(yùn)行OLTP配置的數(shù)據(jù)庫,夜間跳回DSS配置的實(shí)例。這種方法的實(shí)際操作模式可以是以下兩種:OLTP不支持24*7工作方式,DSS時(shí)不支持OLTP;DSS操作的系統(tǒng)反跳之后,OLTP可以使用,但系統(tǒng)性能將受影響。DBA需要測試DSS和服務(wù)器反跳對Web用戶的影響,必要時(shí)選擇其他解決辦法來調(diào)整系統(tǒng)服務(wù)模式。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型混合系統(tǒng)北京郵電大學(xué)軟件學(xué)院84.4.1數(shù)據(jù)庫應(yīng)用程序類型混合系統(tǒng)2)同時(shí)運(yùn)行兩個(gè)數(shù)據(jù)庫,一個(gè)服務(wù)于OLTP,一個(gè)服務(wù)于DSS。OLTP數(shù)據(jù)庫進(jìn)行實(shí)時(shí)更新,在有規(guī)則的時(shí)間間隔內(nèi),將變化傳遞給DSS數(shù)據(jù)庫。這種方法的實(shí)際操作模式可以多種。DBA可以夜間執(zhí)行部分或全部OLTP系統(tǒng)的輸出,并輸入到DSS系統(tǒng)。較好的解決方法是對實(shí)時(shí)方式下傳遞變化的連接數(shù)據(jù)庫使用復(fù)制技術(shù),將變化的數(shù)據(jù)復(fù)制記錄下來,OLTP數(shù)據(jù)庫只傳遞變化的數(shù)據(jù)給DSS數(shù)據(jù)庫。第三種方法是使ORACLE中OLTP數(shù)據(jù)庫的歸檔日志自動應(yīng)用于DSS數(shù)據(jù)庫,保證DSS系統(tǒng)緊跟在OLTP系統(tǒng)之后,DSS數(shù)據(jù)庫不僅作為OLTP的備用數(shù)據(jù)庫,而且自己又獨(dú)立地服務(wù)于決策支持。盡管這種方式可能不能保證OLTP和DSS數(shù)據(jù)庫的絕對同步,但在DSS的實(shí)時(shí)性要求不是很強(qiáng)時(shí),是一種很好的方法。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型混合系統(tǒng)北京郵電大學(xué)軟件學(xué)院94.4.1數(shù)據(jù)庫應(yīng)用程序類型混合系統(tǒng)3)在一個(gè)系統(tǒng)中同時(shí)運(yùn)行OLTP和DSS。這是最普遍的解決方法。系統(tǒng)經(jīng)常作為OLTP開始活動,逐漸加入DSS需求使系統(tǒng)漸漸成為混合系統(tǒng)。在這種情況下,DBA必須在OLTP和批量處理之間尋找平衡,并且應(yīng)該偏向于OLTP用戶,創(chuàng)建與OLTP同樣多的回滾段,而且要創(chuàng)建少量專門為大型事務(wù)指定的大型回滾段,同時(shí)將高速緩沖和共享池保持合理的容量,使系統(tǒng)既支持OLTP對共享池的需求又支持DSS對數(shù)據(jù)庫緩沖區(qū)高速緩沖的需求。還要確保臨時(shí)表空間夠批量排序使用,同時(shí)將OLTP排序控制在內(nèi)存中。推薦在這種情況下使用專用服務(wù)器,并且配置ORACLE并行服務(wù)器(OracleParallelServer,OPS),因?yàn)镺PS允許多個(gè)實(shí)例訪問同一個(gè)物理數(shù)據(jù)庫,一個(gè)實(shí)例為OLTP配置,另一些為批量處理配置。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型混合系統(tǒng)北京郵電大學(xué)軟件學(xué)院104.4.2ORACLE空間設(shè)計(jì)ORACLE數(shù)據(jù)庫的結(jié)構(gòu)包括邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。在進(jìn)行應(yīng)用系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)時(shí),空間設(shè)計(jì)是非常重要的,它與今后運(yùn)行系統(tǒng)的性能、可用、維護(hù)、管理等有密切的關(guān)系。物理結(jié)構(gòu)與邏輯結(jié)構(gòu)之間的關(guān)系如下圖:TablespaceSegmentExtentOracleblockDatafileOSblockDatabaseLogicalPhysical北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2ORACLE空間設(shè)計(jì)ORACLE數(shù)據(jù)庫的結(jié)構(gòu)包括114.4.2.1ORACLE表空間設(shè)計(jì)ORACLE表空間分為兩大類:系統(tǒng)表空間和非系統(tǒng)表空間。系統(tǒng)表空間是建庫時(shí)自動創(chuàng)建的主要用于存儲數(shù)據(jù)字典、系統(tǒng)回滾段;非系統(tǒng)表空間是由用戶創(chuàng)建的表空間,主要用于分離段,方便用戶的數(shù)據(jù)管理。ORACLE推薦一種最佳靈活結(jié)構(gòu)OFA(OptimalFlexibleArchitecture)可以用于表空間的設(shè)計(jì)。OFA是ORACLE軟件安裝和數(shù)據(jù)文件的推薦目錄結(jié)構(gòu)。OFA只是一組建議,并不是絕對原則。下面介紹基本OFA和擴(kuò)展OFA。基本OFA1)系統(tǒng)表空間(SYSTEM):系統(tǒng)表空間不具有重建性,只用于存放數(shù)據(jù)字典,其他內(nèi)容如數(shù)據(jù)段信息等都應(yīng)從系統(tǒng)表空間中移出。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設(shè)計(jì)ORACLE表空間分為124.4.2.1ORACLE表空間設(shè)計(jì)基本OFA2)分離應(yīng)用程序數(shù)據(jù)段(DATA):應(yīng)用程序數(shù)據(jù)段應(yīng)是一個(gè)獨(dú)立的表空間,即數(shù)據(jù)表空間。建立單獨(dú)數(shù)據(jù)表空間的理由是:應(yīng)用程序與數(shù)據(jù)文件分離有利于減少資源爭用,簡化文件管理;另外,當(dāng)數(shù)據(jù)段產(chǎn)生碎片時(shí)利于管理。3)分離應(yīng)用程序索引段(INDEX):索引段不應(yīng)與相關(guān)的數(shù)據(jù)段存儲在一個(gè)表空間,以免產(chǎn)生資源爭用。由于表增長和不正確的尺寸設(shè)置可能產(chǎn)生索引段的碎片,分離應(yīng)用程序索引段,可以減少整理數(shù)據(jù)表或索引碎片所需的管理代價(jià)。從數(shù)據(jù)表分離相應(yīng)的索引也可以通過ALTERINDEX命令來實(shí)現(xiàn)。4)分離工具段(TOOLS):許多第三方工具會將數(shù)據(jù)存儲在系統(tǒng)表空間中,為了避免這種情況,可將它們的對象移出系統(tǒng)表空間。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設(shè)計(jì)基本OFA北京郵電大學(xué)134.4.2.1ORACLE表空間設(shè)計(jì)基本OFA5)分離回滾段(RBS):回滾段會針對巨型事務(wù)動態(tài)擴(kuò)展尺寸,也會動態(tài)收縮到指定的優(yōu)化尺寸(參見4.3)?;貪L段的I/O通常與數(shù)據(jù)和索引表空間的I/O同步。將回滾段分離出來是出于減少I/O沖突的考慮。6)分離臨時(shí)段(TEMP):臨時(shí)段是數(shù)據(jù)庫中動態(tài)生成的對象,用來存儲巨型排序操作(如SELECTDISTINCT,UNION,CREATEINDEX等)的數(shù)據(jù)。由于動態(tài)特性,臨時(shí)段不應(yīng)與其他類型段一起存儲。通常,在建立用戶時(shí),將這些用戶使用的臨時(shí)數(shù)據(jù)段設(shè)置到臨時(shí)表空間。7)分離用戶(USER):為用戶帳號建立一個(gè)USER表空間,在建立用戶時(shí)將用戶的操作數(shù)據(jù)放在用戶表空間。以上7個(gè)表空間是最基本的表空間,也是傳統(tǒng)OFA的基本組成部分。隨著應(yīng)用的深入,又有擴(kuò)展的OFA。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設(shè)計(jì)基本OFA北京郵電大學(xué)144.4.2.1ORACLE表空間設(shè)計(jì)擴(kuò)展的OFA1)分離低使用數(shù)據(jù)段(DATA_2):在基表中,有一些是動態(tài)數(shù)據(jù),一些是靜態(tài)數(shù)據(jù),而動態(tài)數(shù)據(jù)和靜態(tài)數(shù)據(jù)常常被并發(fā)操作。靜態(tài)數(shù)據(jù)在實(shí)際使用時(shí)只是被提取信息,可以把這些靜態(tài)數(shù)據(jù)表設(shè)置到一個(gè)專用表空間(DATA_2),從而避免并發(fā)操作沖突。2)分離低使用索引段(INDEX_2):數(shù)據(jù)表分為靜態(tài)表和動態(tài)表,則索引亦如此。對于靜態(tài)表的索引表應(yīng)建立靜態(tài)索引表空間(INDEX_2)。如果索引已經(jīng)生成,可以使用ALTERINDEX語句來移動這些索引到一個(gè)新的表空間中。3)分離工具索引(TOOLS_1):如果數(shù)據(jù)庫對TOOLS表空間有較多的操作,則這些工具表索引可以移到另一個(gè)表空間(TOOLS_1),這樣TOOLS表空間就可看成工具數(shù)據(jù)表空間。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設(shè)計(jì)擴(kuò)展的OFA北京郵電大154.4.2.1ORACLE表空間設(shè)計(jì)擴(kuò)展的OFA4)分離特殊回滾段(RBS_2):RBS表空間的回滾段必須有適當(dāng)?shù)拇笮『蛿?shù)量,以適應(yīng)應(yīng)用的使用。但大型事務(wù)可能超過回滾段的配置。為了避免這種情況,可以設(shè)置一個(gè)特殊回滾段,使大型事務(wù)只使用特殊回滾段。建立一個(gè)特殊表空間來容納這個(gè)特殊回滾段。5)分離特殊用戶臨時(shí)段(TEMP_USER):和特殊回滾段一樣,一些特殊用戶在做特殊操作時(shí),可以設(shè)置一個(gè)特殊用戶臨時(shí)表空間,這樣便于系統(tǒng)管理。附加的特殊應(yīng)用OFA擴(kuò)展1)SNAPS:用于快照(Snapshots)??煺毡硎欠植际綌?shù)據(jù)庫處理的一種特殊表,為此類表建立相應(yīng)的表空間。2)PARTITIONS:用于分區(qū)(Partition)。分區(qū)是為了分配I/O并且簡化巨型表的管理。3)TEMP_WORK:用于大型數(shù)據(jù)裝載。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設(shè)計(jì)擴(kuò)展的OFA北京郵電大164.4.2.2數(shù)據(jù)文件設(shè)置根據(jù)ORACLE數(shù)據(jù)庫結(jié)構(gòu)特點(diǎn),每個(gè)表空間至少要有一個(gè)數(shù)據(jù)文件,因此,應(yīng)用系統(tǒng)的每個(gè)表空間均具有各自的數(shù)據(jù)文件。Oracle7.2以后可以支持?jǐn)?shù)據(jù)文件大小的重新定義,當(dāng)表空間需要擴(kuò)充時(shí),不必為其增加數(shù)據(jù)文件,而簡單地將其擴(kuò)充即可,避免了預(yù)先分配過大的存儲空間及過多數(shù)據(jù)文件的問題。同時(shí)可以支持?jǐn)?shù)據(jù)文件的自動擴(kuò)展,避免當(dāng)表空間已滿時(shí),DBA手工擴(kuò)充表空間對用戶使用的影響。對于一個(gè)不太大的數(shù)據(jù)庫,可以將數(shù)據(jù)庫軟件和數(shù)據(jù)文件都放置在一個(gè)磁盤上,將它們設(shè)計(jì)成不同的子文件即可。對于大型數(shù)據(jù)庫,需要指定哪些文件放置在哪個(gè)磁盤上。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.2數(shù)據(jù)文件設(shè)置根據(jù)ORACLE數(shù)據(jù)庫結(jié)構(gòu)特點(diǎn),174.4.2.2數(shù)據(jù)文件設(shè)置表空間的磁盤分配:一般情況下,90%以上的I/O操作集中在系統(tǒng)表空間、數(shù)據(jù)表空間、回滾表空間、索引表空間這4個(gè)表空間上,所以這4個(gè)表空間應(yīng)單獨(dú)存儲在不同的磁盤上。系統(tǒng)文件的規(guī)劃:ORACLE有聯(lián)機(jī)日志文件、歸檔日志文件、控制文件和系統(tǒng)軟件文件等,如何放置這些系統(tǒng)文件也是一件重要的任務(wù)。1)聯(lián)機(jī)日志文件:每個(gè)數(shù)據(jù)庫至少要有兩個(gè)聯(lián)機(jī)日志文件,由于聯(lián)機(jī)日志文件中保留了數(shù)據(jù)庫的當(dāng)前事務(wù),所以它無法從備份中恢復(fù),他們是ORACLE無法用備份工具恢復(fù)的唯一文件類型。這類文件應(yīng)單獨(dú)存儲。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.2數(shù)據(jù)文件設(shè)置表空間的磁盤分配:北京郵電大學(xué)軟184.4.2.2數(shù)據(jù)文件設(shè)置系統(tǒng)文件的規(guī)劃:2)控制文件:前面章節(jié)已經(jīng)說明了控制文件的重要性,每個(gè)數(shù)據(jù)庫應(yīng)當(dāng)至少有3個(gè)控制文件的拷貝,它們被分布在3個(gè)驅(qū)動器中。3)歸檔日志文件:如果歸檔日志文件和聯(lián)機(jī)日志文件放在同一個(gè)磁盤上,當(dāng)LGWR在讀盤時(shí),ARCH也在讀同一磁盤,勢必造成I/O沖突,所以歸檔日志文件和聯(lián)機(jī)日志文件應(yīng)分盤存儲。4)ORACLE軟件:Oracle軟件是系統(tǒng)運(yùn)行的核心,這些軟件應(yīng)放在獨(dú)立的磁盤上。磁盤規(guī)劃設(shè)計(jì):

磁盤規(guī)劃設(shè)計(jì)可以依據(jù)下列準(zhǔn)則:數(shù)據(jù)庫必須可恢復(fù);必須對聯(lián)機(jī)日志文件進(jìn)行鏡像;必須最小化DBWR、LGWR、ARCH之間的沖突;必須最小化DBWR磁盤間的沖突;估計(jì)數(shù)據(jù)庫文件的I/O量。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.2數(shù)據(jù)文件設(shè)置系統(tǒng)文件的規(guī)劃:北京郵電大學(xué)軟件194.4.2.2數(shù)據(jù)文件設(shè)置磁盤規(guī)劃設(shè)計(jì):在磁盤規(guī)劃設(shè)計(jì)過程中需要做一些數(shù)據(jù)庫測量,以估計(jì)其I/O量,以下給出一參照的7磁盤設(shè)計(jì)方案:磁盤存放內(nèi)容1Oracle軟件2SYSTEM表空間,控制文件13RBS,TEMP,TOOLS表空間,控制文件24DATA表空間,控制文件35INDEX表空間6聯(lián)機(jī)日志文件1,2,3,轉(zhuǎn)儲文件7應(yīng)用軟件,歸檔日志文件北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.2數(shù)據(jù)文件設(shè)置磁盤規(guī)劃設(shè)計(jì):磁盤存放內(nèi)容1Or204.4.2.2數(shù)據(jù)文件設(shè)置表空間與數(shù)據(jù)文件設(shè)置舉例:connectsystem/managercreatetablespacetsp_acctdatafile‘d:\oracle\oradata\orcl\apacct.dbf’size32Mreuseautoextendonnext4Mmaxsizeunlimited;createtablespacetsp_publicdatafile‘d:\oracle\oradata\orcl\appublic.dbf’size100Mreuseautoextendonnext16Mmaxsizeunlimited;createtablespacetsp_tempdatafile‘d:\oracle\oradata\orcl\aptemp.dbf’size500Mreuseautoextendonnext32Mmaxsizeunlimited;連接數(shù)據(jù)庫創(chuàng)建tsp_acct表空間創(chuàng)建回滾段表空間創(chuàng)建臨時(shí)表空間北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.2數(shù)據(jù)文件設(shè)置表空間與數(shù)據(jù)文件設(shè)置舉例:連接數(shù)214.4.2.3段存儲分配設(shè)置在數(shù)據(jù)庫中,大量使用的段包括表段和索引段,還有回滾段、臨時(shí)段。表的邏輯定義信息放在DBA_TABLES和DBA_TAB_COLUMNS中,索引的定義信息放在DBA_INDEXS和DBA_IND_COLUMNS中。從存儲管理角度看,表和索引都屬于段,只是類型不同而已,有關(guān)段及存儲定義的系統(tǒng)數(shù)據(jù)字典有DBA_SEGMENTS和DBA_EXTENTS等。在應(yīng)用系統(tǒng)中,對大量使用的段的規(guī)劃主要是它們的存儲方案的設(shè)計(jì),每個(gè)段由區(qū)間組成。每個(gè)段使用的空間由它的存儲參數(shù)決定,在CREATETABLE、CREATEINDEX、CREATECLUSTER、CREATEROLLBACK等命令中都涉及到STORAGE參數(shù)。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.3段存儲分配設(shè)置在數(shù)據(jù)庫中,大量使用的段包括表224.4.2.3段存儲分配設(shè)置如果在創(chuàng)建段的命令中不指定STORAGE參數(shù),則使用它所在表空間的缺省參數(shù)。表空間的存儲參數(shù)或段的存儲參數(shù)設(shè)計(jì)不合理將直接影響數(shù)據(jù)庫的性能,甚至直接影響到數(shù)據(jù)庫的正常運(yùn)行。對存儲參數(shù)的確定問題,前面的討論中已經(jīng)說明,應(yīng)根據(jù)實(shí)際初始數(shù)據(jù)量的估算和數(shù)據(jù)的動態(tài)變化情況以及段的性質(zhì)等多方面來決定。注意,ORACLE數(shù)據(jù)庫在創(chuàng)建回滾段之后,狀態(tài)為脫機(jī),因此必須由DBA將其狀態(tài)改為聯(lián)機(jī),方可使用。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.3段存儲分配設(shè)置如果在創(chuàng)建段的命令中不指定ST234.4.2.3段存儲分配設(shè)置段存儲分配設(shè)置舉例:createtablepat_master(pat_idvarchar2(10),namevarchar2(8),…)pctfree10pctused60storage(initial16Mnext16Mminextents1maxextentsunlimitedpctincrease0)tablespacetsp_acct;createindexpat_master_indexonpat_master(pat_id)pctfree20storage(initial4Mnext4Mminextents1maxextentsunlimitedpctincrease0)tablespacetsp_acct;createpublicrollbacksegmentrbs_publictablespacetsp_publicstorage(initial4Mnext4M);Alterrollbacksegmentrbs_publiconline;創(chuàng)建pat_master表創(chuàng)建pat_master_index索引創(chuàng)建回滾段北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.3段存儲分配設(shè)置段存儲分配設(shè)置舉例:創(chuàng)建pat244.4.2.4數(shù)據(jù)塊利用設(shè)置數(shù)據(jù)塊空間利用參數(shù)可以控制表段和索引段中的空間使用。分兩類:控制并發(fā)性的參數(shù)(INITRANS和MAXTRANS)、控制數(shù)據(jù)空間使用的參數(shù)(PCTFREE和PCTUSED)??梢允褂肐NITRANS和MAXTRANS來確定一個(gè)數(shù)據(jù)庫塊上活動事務(wù)的個(gè)數(shù)。INITRANS是每個(gè)塊的初始化事務(wù)入口數(shù),數(shù)據(jù)段和索引段的INITRANS的缺省值分別為1和2,增大其值則允許多個(gè)事務(wù)同時(shí)操作數(shù)據(jù)塊。MAXTRANS是在每個(gè)塊的最大事務(wù)入口,缺省值為最大值255。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.4數(shù)據(jù)塊利用設(shè)置數(shù)據(jù)塊空間利用參數(shù)可以控制表段254.4.2.4數(shù)據(jù)塊利用設(shè)置通過選擇適當(dāng)?shù)腜CTFREE和PCTUSED可以提高性能和空間利用。對于改動較少的表,在設(shè)置數(shù)據(jù)塊空間利用參數(shù)時(shí),PCTFREE適當(dāng)降低。對于經(jīng)常改動的表,尤其是數(shù)據(jù)行長度增加的改動,應(yīng)該適當(dāng)提高PCTFREE的設(shè)置,以免發(fā)生行轉(zhuǎn)移。數(shù)據(jù)行長度增加這類應(yīng)用的一個(gè)例子:醫(yī)療信息系統(tǒng)中,病案首頁表中行的信息開始長度可能不大(許多字段值為空),但隨著病人住院的過程,行的信息不斷增加。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.4數(shù)據(jù)塊利用設(shè)置通過選擇適當(dāng)?shù)腜CTFREE和264.4.3ORACLE安全設(shè)計(jì)在ORACLE中,DBA定義訪問數(shù)據(jù)庫的用戶名,安全域定義作用于用戶的有關(guān)安全方面的設(shè)置。安全域包括:驗(yàn)證機(jī)制、表空間限額、默認(rèn)表空間、臨時(shí)表空間、帳戶鎖、資源限制、直接權(quán)限、角色權(quán)限8個(gè)方面,如下頁圖。ORACLE的安全性設(shè)計(jì)圍繞用戶的安全域展開。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設(shè)計(jì)在ORACLE中,DBA定義274.4.3ORACLE安全設(shè)計(jì)AccountlockingAuthenticationmechanismRoleprivilegesDirectprivilegesResourcelimitsTablespacequotasTemporarytablespaceDefaulttablespaceSecuritydomain默認(rèn)表空間臨時(shí)表空間表空間限額資源限額直接權(quán)限角色權(quán)限驗(yàn)證機(jī)制帳戶鎖北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設(shè)計(jì)AccountAuthent284.4.3ORACLE安全設(shè)計(jì)安全域內(nèi)容1)驗(yàn)證機(jī)制:用戶訪問數(shù)據(jù)庫可以通過數(shù)據(jù)庫、操作系統(tǒng)、網(wǎng)絡(luò)這三種方式中的一種進(jìn)行驗(yàn)證,一個(gè)用戶究竟使用何種驗(yàn)證方式,根據(jù)具體需求決定。2)表空間限額:表空間限額,可以控制一個(gè)數(shù)據(jù)庫的用戶對數(shù)據(jù)庫中表空間的物理存儲空間的分配數(shù)量。3)默認(rèn)表空間:定義用戶在創(chuàng)建段時(shí)的存儲位置,當(dāng)用戶創(chuàng)建段時(shí),如果指定存儲表空間,則使用定義段時(shí)指定的表空間,否則使用這一默認(rèn)表空間。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設(shè)計(jì)安全域內(nèi)容北京郵電大學(xué)軟件學(xué)294.4.3ORACLE安全設(shè)計(jì)安全域內(nèi)容4)臨時(shí)表空間:當(dāng)用戶執(zhí)行排序操作時(shí),臨時(shí)表空間定義臨時(shí)段分配的位置。5)帳戶鎖:帳戶鎖可以防止非法用戶對系統(tǒng)的登錄。6)資源限制:對用戶使用資源進(jìn)行一定的限制。7)直接權(quán)限:通過GRANT直接授予用戶的系統(tǒng)權(quán)限和對象權(quán)限。8)角色權(quán)限:通過GRANT將系統(tǒng)權(quán)限和對象權(quán)限授予角色,再將角色授予用戶,使用戶間接獲得權(quán)限。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設(shè)計(jì)安全域內(nèi)容北京郵電大學(xué)軟件學(xué)304.4.3ORACLE安全設(shè)計(jì)口令和資源配置文件是命名的一組口令和資源限制的設(shè)置集合。Oracle中存在一個(gè)名為DEFAULT的配置文件,默認(rèn)配置文件中的所有項(xiàng)目都不受限制,如果創(chuàng)建用戶時(shí)沒有指定配置文件子句,則系統(tǒng)將DEFAULT指定給該用戶。Oracle中允許DBA修改DEFAULT和用戶定義的配置文件,用ALTERPROFILE命令。允許刪除DEFAULT和定義的配置文件,用DROPPROFILECASCADE命令。創(chuàng)建用戶時(shí)需確定用戶名和驗(yàn)證機(jī)制、指定默認(rèn)表空間和臨時(shí)表空間、確定有關(guān)表空間的限額、指定用戶的配置文件。ORACLE應(yīng)用系統(tǒng)中一般定義一系列的用戶和配置文件、定義一系列的角色,然后將角色和配置文件授予(或指定給)用戶。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設(shè)計(jì)口令和資源北京郵電大學(xué)軟件學(xué)314.4.3ORACLE安全設(shè)計(jì)權(quán)限和角色Oracle大約有100多種的系統(tǒng)權(quán)限,包括諸如創(chuàng)建表空間的系統(tǒng)范圍級操作權(quán)限、諸如創(chuàng)建表的用戶模式內(nèi)對象管理權(quán)限和諸如創(chuàng)建任意表的任意模式內(nèi)對象管理權(quán)限。系統(tǒng)權(quán)限和對象權(quán)限可以通過GRANT或REVOKE語句授予用戶或收回。角色是被命名的一組相關(guān)的權(quán)限,角色是屬于系統(tǒng)范圍的,既不屬于某個(gè)用戶,也不屬于某個(gè)模式??梢园严到y(tǒng)權(quán)限和對象權(quán)限授予角色,也可以把角色授予另一個(gè)角色,最終把角色授予用戶,由此方便Oracle的安全管理。使用角色的步驟是:創(chuàng)建角色、為角色授予相應(yīng)的權(quán)限、將角色授予特定的用戶。Oracle中有一些預(yù)定義角色可以使用,例如DBA、SELECT_CATALOG_ROLE等,DBA可以直接使用。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設(shè)計(jì)權(quán)限和角色北京郵電大學(xué)軟件學(xué)324.4.3ORACLE安全設(shè)計(jì)應(yīng)用系統(tǒng)的用戶應(yīng)用系統(tǒng)的安全設(shè)計(jì)一般要對用戶進(jìn)行分類,然后根據(jù)用戶類型的不同,對其進(jìn)行設(shè)置、維護(hù)及管理。

數(shù)據(jù)庫管理員(DBA):默認(rèn)的數(shù)據(jù)庫管理員internal、sys和system均具有DBA權(quán)限。數(shù)據(jù)庫打開、關(guān)閉、恢復(fù)等操作時(shí),需使用internal;修改數(shù)據(jù)庫重要參數(shù)時(shí)使用sys;其他一般管理應(yīng)使用system。

所有者(OWNER):對大型的應(yīng)用系統(tǒng),往往根據(jù)不同的用戶所屬將對象進(jìn)行劃分,這樣不同的用戶擁有不同的數(shù)據(jù)庫對象,創(chuàng)建數(shù)據(jù)庫對象的用戶稱為對象的所有者(模式)。此類用戶需要有RESOURCE的權(quán)限。

一般用戶(USER):一般用戶即應(yīng)用系統(tǒng)的最終用戶。此類用戶對數(shù)據(jù)庫而言僅需要有CONNECT的權(quán)限即可,但此類用戶的角色權(quán)限和對象使用權(quán)限需要根據(jù)具體工作和應(yīng)用進(jìn)一步規(guī)劃和設(shè)計(jì)。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設(shè)計(jì)應(yīng)用系統(tǒng)的用戶北京郵電大學(xué)軟334.4.3ORACLE安全設(shè)計(jì)應(yīng)用系統(tǒng)的一般用戶應(yīng)用系統(tǒng)中除創(chuàng)建一系列數(shù)據(jù)庫對象外,還要創(chuàng)建一系列的應(yīng)用程序,不同的應(yīng)用程序執(zhí)行不同的操作。對于一般用戶來講,使用數(shù)據(jù)庫系統(tǒng)是通過使用用戶管理應(yīng)用程序開始的,往往限制其使用一些應(yīng)用程序的權(quán)力。對于這種情形,處理辦法是:在數(shù)據(jù)庫和應(yīng)用程序之間建立用戶管理應(yīng)用程序?qū)哟?,對每一個(gè)用戶,授予相應(yīng)的數(shù)據(jù)庫權(quán)限和使用應(yīng)用程序的權(quán)限。

一般用戶的配置:系統(tǒng)級權(quán)限僅限于角色CONNECT,對象級權(quán)限僅限于相關(guān)應(yīng)用系統(tǒng)的自定義角色,應(yīng)用程序使用權(quán)限僅限于相關(guān)應(yīng)用程序的使用級別。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設(shè)計(jì)應(yīng)用系統(tǒng)的一般用戶北京郵電大344.4.3ORACLE安全設(shè)計(jì)應(yīng)用系統(tǒng)的一般用戶在應(yīng)用系統(tǒng)內(nèi)部進(jìn)行多個(gè)層次的檢查和驗(yàn)證:1)第一層:Oracle數(shù)據(jù)庫系統(tǒng)層,判斷其能否建立會話。2)第二層:應(yīng)用程序的使用權(quán)限,檢查驗(yàn)證用戶能夠使用哪些應(yīng)用程序。3)第三層:Oracle數(shù)據(jù)庫的對象級權(quán)限,判斷用戶能否操縱其相應(yīng)的對象,對象級權(quán)限是通過自定義Oracle角色來設(shè)置的。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設(shè)計(jì)應(yīng)用系統(tǒng)的一般用戶北京郵電大354.4.3ORACLE安全設(shè)計(jì)在ORACLE數(shù)據(jù)庫中,當(dāng)一個(gè)數(shù)據(jù)庫用戶被創(chuàng)建時(shí),系統(tǒng)就為該用戶自動創(chuàng)建一個(gè)與用戶同名的模式。用戶和模式的概念在某種程度上是一樣的。模式或用戶可以擁有的對象如下圖。用戶的定義應(yīng)與數(shù)據(jù)庫的對象定義結(jié)合起來。SchemaObjectsTables表Triggers觸發(fā)器Constraints約束Indexes索引Views視圖Sequences序列發(fā)生器Storedprogramunits存儲過程單元(PL/SQL寫)Synonyms同義詞User_defineddatatypes用戶定義數(shù)據(jù)類型(Oracle8i以后)Databaselinks數(shù)據(jù)庫連接(分布式數(shù)據(jù)庫時(shí)使用)北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設(shè)計(jì)在ORACLE數(shù)據(jù)庫中,當(dāng)一364.4.3ORACLE安全設(shè)計(jì)安全設(shè)計(jì)舉例:createprofilegrace_5limitfailed_login_attempts3password_lock_timeunlimitedpassword_lift_time30password_grace_time5sessions_per_user2cpu_per_session10000idle_time60conenct_time480;createusercommidentifiedbycommdefaulttablespacedatatemporarytablespacetsp_tempquota15Mondataprofilegrace_5;grantconnect,resourcetocomm;創(chuàng)建配置文件創(chuàng)建用戶授權(quán)北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設(shè)計(jì)安全設(shè)計(jì)舉例:創(chuàng)建配置文件創(chuàng)374.4.4ORACLE對象設(shè)計(jì)數(shù)據(jù)庫應(yīng)用系統(tǒng)中肯定要建立大量的模式對象,這些對象應(yīng)作出合理的規(guī)劃,盡量減少因設(shè)計(jì)不周導(dǎo)致性能下降、表空間不足、用戶權(quán)限不夠等問題的出現(xiàn)。表在創(chuàng)建表時(shí),需要注意的事項(xiàng)如下:1)對于表名、列名、約束名、索引名和聚集名使用符合命名規(guī)則的并帶有描述意義的名稱。2)建立相應(yīng)完全的、詳細(xì)的文檔資料。3)所有表都應(yīng)當(dāng)規(guī)范(規(guī)范化至少是第三泛式)。4)定義允許為空的列,并保留一定的存儲空間。5)適當(dāng)?shù)厥褂镁奂?,保留一定的存儲空間。6)表段應(yīng)放在單獨(dú)的表空間中。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.4ORACLE對象設(shè)計(jì)數(shù)據(jù)庫應(yīng)用系統(tǒng)中肯定要建立大384.4.4ORACLE對象設(shè)計(jì)表7)為了減少存儲碎片產(chǎn)生,區(qū)間大小最好是數(shù)據(jù)塊的整數(shù)倍。8)對于應(yīng)用系統(tǒng)中頻繁使用的數(shù)據(jù)行較少的表,考慮使用CACHE選項(xiàng),即允許其長期保持在內(nèi)存中,避免反復(fù)讀取,提高性能。觸發(fā)器觸發(fā)器作為Oracle標(biāo)準(zhǔn)功能的補(bǔ)充提供給用戶。使用它通常實(shí)現(xiàn)如下功能:1)自動生成可以派生的列值。2)防止無效的處理。3)增強(qiáng)復(fù)雜的安全驗(yàn)證。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.4ORACLE對象設(shè)計(jì)表北京郵電大學(xué)軟件學(xué)院394.4.4ORACLE對象設(shè)計(jì)觸發(fā)器4)增強(qiáng)分布式環(huán)境中跨節(jié)點(diǎn)的引用完整性。5)增強(qiáng)復(fù)雜的業(yè)務(wù)規(guī)則。6)提供透明的事件登記。7)提供高級的審計(jì)。8)維護(hù)表復(fù)制的同步。9)采集關(guān)于訪問表的統(tǒng)計(jì)信息。盡管觸發(fā)器可實(shí)現(xiàn)許多功能,但是,能用其他方式實(shí)現(xiàn)的功能盡量避免使用觸發(fā)器。過多的觸發(fā)器導(dǎo)致復(fù)雜的內(nèi)部相關(guān)性,維護(hù)和管理變得復(fù)雜。特別注意觸發(fā)器的語句不要太多,不要創(chuàng)建遞歸調(diào)用的觸發(fā)器(如一個(gè)對象的AFTERUPDATE的活動中又有該對象的UPDATE操作)。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.4ORACLE對象設(shè)計(jì)觸發(fā)器北京郵電大學(xué)軟件學(xué)院404.4.4ORACLE對象設(shè)計(jì)索引索引一旦建立,其使用和維護(hù)都是由Oracle自動實(shí)現(xiàn)的。使用它應(yīng)注意:1)索引可以加速查詢,但會降低修改速度,頻繁改動的表,盡量少建索引。2)索引段應(yīng)存儲在獨(dú)立的表空間中。3)為減少存儲碎片,區(qū)間大小應(yīng)是數(shù)據(jù)塊的整數(shù)倍。4)為了避免索引的建立和改動操作生成大量的重做日志,影響系統(tǒng)的性能,在創(chuàng)建較大索引時(shí),使用NOLOGGING選項(xiàng)。5)由于索引項(xiàng)相對于數(shù)據(jù)項(xiàng)要短,使一個(gè)數(shù)據(jù)塊中容納索引的數(shù)量要比數(shù)據(jù)行多,為了提高索引在數(shù)據(jù)塊一級上操作的并發(fā)性,可適當(dāng)提高INITANS參數(shù)的值。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.4ORACLE對象設(shè)計(jì)索引北京郵電大學(xué)軟件學(xué)院414.4.4ORACLE對象設(shè)計(jì)索引6)索引中PCTFREE只在創(chuàng)建索引時(shí)使用。對于單調(diào)增加的索引列值,可以將PCTFREE設(shè)置得較低。因?yàn)樾碌乃饕?xiàng)始終是對已經(jīng)存在的索引項(xiàng)的追加,不需要在兩個(gè)已經(jīng)存在的索引項(xiàng)之間插入,所以沒必要預(yù)留過多的空間。如果索引列值是任意值時(shí),則可能需要預(yù)留較多的空間。視圖對視圖的操作類似表的使用,表可以使用的地方,視圖一般也可使用。視圖可用于安全控制和簡化查詢的目的,視圖只能創(chuàng)建或刪除,不能修改。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.4ORACLE對象設(shè)計(jì)索引北京郵電大學(xué)軟件學(xué)院424.4.4ORACLE對象設(shè)計(jì)序列應(yīng)用系統(tǒng)中,經(jīng)常使用順序號,并發(fā)用戶中如何保證順序號的連續(xù)且不重復(fù)。序列發(fā)生器是數(shù)據(jù)庫的一種模式對象,可以解決上述問題,為應(yīng)用系統(tǒng)開發(fā)人員提供順序號的自動管理與維護(hù)。Init.ora中的參數(shù)SEQUENCE_CACHE_ENTRIES與序列發(fā)生器有關(guān),影響內(nèi)存中可以保留的順序號個(gè)數(shù)。存儲過程可以調(diào)用存儲過程的環(huán)境有:另一個(gè)存儲過程的過程體或一個(gè)觸發(fā)器中,一個(gè)存儲函數(shù)可以從一個(gè)SQL語句中調(diào)用,其使用方式與調(diào)用Oracle內(nèi)置的SQL函數(shù)是一樣的。創(chuàng)建存儲過程時(shí),應(yīng)當(dāng)注意該存儲過程的模式歸屬。同義詞利用同義詞可以將應(yīng)用系統(tǒng)中模式對象的模式屏蔽掉。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.4ORACLE對象設(shè)計(jì)序列北京郵電大學(xué)軟件學(xué)院434.4.3ORACLE對象設(shè)計(jì)對象設(shè)計(jì)舉例:

createtableemp(empnonumber(5)primarykey,enamevarchar2(15)notnull,deptnonumber(3)notnullconstraintdept_fkeyreferencesdept)pctfree10pctused40tablespaceusersstorage(initial50Knext50Kmaxextents10pctincrease25);createorreplacetriggerinp_bill_detail_insertafterinsertoninp_bill_detailforeachrowbeginupdatepats_in_hospitalsettotal_costs=decode(total_costs,null,0,total_costs)+:new.costs,total_charges=decode(total_charges,null,0,total_charges)+:new.chargeswherepatient_id=:new.patient_idandvisit_id=:new.visit_id;end;/createviewexam_item_dictasselectitem_code,item_namefromclinic_item_dictwhereitem_class=‘D’;grantselectonexam_item_dicttopublic;創(chuàng)建觸發(fā)器授權(quán)創(chuàng)建表創(chuàng)建視圖北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.3ORACLE對象設(shè)計(jì)對象設(shè)計(jì)舉例:創(chuàng)建觸發(fā)器授權(quán)444.4.5DBA工具通常情況下,DBA的操作都是以命令行的方式進(jìn)行,尤其對復(fù)雜任務(wù)。企業(yè)管理器(OracleEnterpriseManager,OEM)給DBA提供了圖形界面。DatabaseAdministrationToolsToolDescriptionOracleUniversalInstaller(OUI)Usedtoinstall,upgrade,orremovesoftwarecomponentsOracleDatabaseConfigurationAssistantAgraphicaluserinterfacetoolthatinteractswiththeOUI,orcanbrusedindependently,tocreate,deleteormodifyadatabasePasswordFileUtilityUtilityfrocreatingadatabasepasswordfileSQL*PlusAutilitytoaccessdatainanOracledatabaseOracleEnterpriseManagerAgraphicalinterfaceusedtoadminister,monitor,andtuneoneormoredatabase北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.5DBA工具通常情況下,DBA的操作都是以命令行的454.4.5DBA工具DBATools(StandardapplicationthatcanbelaunchedfromOEM)ToolDescriptionInstanceManagerPerformsstartup,shutdownandmonitordatabasesSecurityManagerUsedtomanageusersandprivilegesStorageManagerMaintainstablespaces,datafiles,rollbacksegmentsandloggroupsSchemaManagerUsedtocreateandmaintainobjectssuchastables,indexes,andviewsSQL*plusWorksheetProvidesthecapabilitytoissueSQLstatementsagainstanydatabase北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.5DBA工具DBAToolsToolDescri464.4ORACLE數(shù)據(jù)庫規(guī)劃與實(shí)施ORACLE為信息系統(tǒng)提供了一個(gè)開放、綜合、集成的方法。使用ORACLE數(shù)據(jù)庫進(jìn)行信息系統(tǒng)開發(fā)的步驟可以歸納為如下過程:建ORACLE數(shù)據(jù)庫建表空間建回滾段建用戶建數(shù)據(jù)庫對象開發(fā)本節(jié)介紹ORACLE數(shù)據(jù)庫的規(guī)劃與實(shí)施:4.4.1數(shù)據(jù)庫應(yīng)用程序類型4.4.4ORACLE對象設(shè)計(jì)4.4.2ORACLE空間設(shè)計(jì)4.4.5DBA工具4.4.3ORACLE安全設(shè)計(jì)北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4ORACLE數(shù)據(jù)庫規(guī)劃與實(shí)施ORACLE為信息系統(tǒng)提474.4.1數(shù)據(jù)庫應(yīng)用程序類型規(guī)劃和配置數(shù)據(jù)庫,需要知道將要操作數(shù)據(jù)庫的事務(wù)有什么,這些事務(wù)訪問數(shù)據(jù)庫的頻率有多大。針對不同的事務(wù)訪問情形,對內(nèi)存的要求不同,磁盤I/O操作的情形也不同。只有設(shè)置合適的ORACLE實(shí)例,才能使數(shù)據(jù)庫應(yīng)用系統(tǒng)獲得快速、準(zhǔn)確、可靠的事務(wù)響應(yīng)。ORACLE既可以設(shè)置成處理長的密集型事務(wù)的系統(tǒng),也可以設(shè)置成處理大量的小型快速事務(wù)的系統(tǒng)。有三種通用的數(shù)據(jù)庫設(shè)置類型:聯(lián)機(jī)事務(wù)處理(OLTP)決策支持系統(tǒng)(DSS)批量作業(yè)系統(tǒng)混合系統(tǒng)北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型規(guī)劃和配置數(shù)據(jù)庫,需要知道將要484.4.1數(shù)據(jù)庫應(yīng)用程序類型聯(lián)機(jī)事務(wù)處理(OLTP)OLTP系統(tǒng)是一個(gè)包含繁重DML的應(yīng)用,其面向事務(wù)的活動主要包括更新,但也包括一些插入和刪除。典型的例子是用于航空公司和旅館的預(yù)定系統(tǒng)。OLTP系統(tǒng)可以允許有很高的并發(fā)性。

OLTP的特點(diǎn)是有大量短的事務(wù)高頻率地訪問數(shù)據(jù)庫,每一個(gè)事務(wù)操作的數(shù)據(jù)量不是很多,但事務(wù)比較頻繁,而且要求數(shù)據(jù)庫響應(yīng)事務(wù)的速度快。一般來說OLTP系統(tǒng)需要24*7地響應(yīng)對數(shù)據(jù)庫的請求。根據(jù)這些要求,我們應(yīng)該從以下幾方面考慮:1)大量的小回滾段。因?yàn)槭聞?wù)都不太大,對回滾段空間的需求不可能很大,但事務(wù)數(shù)量多,引發(fā)回滾段數(shù)量的增大。應(yīng)該創(chuàng)建大量小的回滾段,把事務(wù)對回滾段的爭用減到最小。標(biāo)準(zhǔn)的配置可以考慮每四個(gè)活動事務(wù)用一個(gè)回滾段,每個(gè)事務(wù)接受一個(gè)區(qū)間。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型聯(lián)機(jī)事務(wù)處理(OLTP)北京郵494.4.1數(shù)據(jù)庫應(yīng)用程序類型聯(lián)機(jī)事務(wù)處理(OLTP)2)OLTP應(yīng)用的表可能插入或者刪除記錄,所以存放易變表和索引的表空間應(yīng)被分配到它們最大的期望容量。3)適當(dāng)?shù)墓烙?jì)重寫日志緩沖區(qū)和日志文件大小,減少日志寫和日志切換的頻率,盡可能降低對響應(yīng)事務(wù)請求的影響,另外頻繁的檢查點(diǎn)也可能影響事務(wù)響應(yīng)速度。4)擁有大型共享池。不同客戶可能執(zhí)行同樣的SQL語句,SQL在共享池中緩沖,性能可提高(應(yīng)用程序的SQL語句應(yīng)當(dāng)統(tǒng)一,另外WHERE中使用綁定變量查詢而不是直接的值查詢,使不同值的查詢共享SQL的執(zhí)行計(jì)劃)。5)數(shù)據(jù)擁有單獨(dú)的索引。OLTP的事務(wù)請求基本在規(guī)劃設(shè)計(jì)范圍之內(nèi),建立單獨(dú)有效的索引,并在獨(dú)立的表空間中創(chuàng)建主鍵和其他索引,且存放在獨(dú)立的存儲器上。6)使用小型臨時(shí)段。需要小的排序應(yīng)在內(nèi)存中完成,盡量避免OLTP系統(tǒng)對臨時(shí)段的請求進(jìn)入磁盤。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型聯(lián)機(jī)事務(wù)處理(OLTP)北京郵504.4.1數(shù)據(jù)庫應(yīng)用程序類型決策支持系統(tǒng)(DSS)DSS系統(tǒng)通常是一個(gè)大型的、包含歷史性內(nèi)容的只讀數(shù)據(jù)庫,通常用于簡單的固定查詢或特別查詢。夜間處理任務(wù)被認(rèn)為是DSS,查詢(選擇)是DSS的主要活動。根據(jù)這些要求,我們應(yīng)該從以下幾方面考慮:1)擁有少量的較大的回滾段。大型工作要創(chuàng)建大型的回滾段,使用SETTRANSACTIONUSERROLLBACKSEGMENT語句使事務(wù)強(qiáng)制使用專用回滾段。2)為分類排序創(chuàng)建大型臨時(shí)表空間,DSS經(jīng)常超出內(nèi)存的使用空間而從內(nèi)存轉(zhuǎn)入磁盤(臨時(shí)表空間)。3)使用較小的共享SQL區(qū)域而采用較大的數(shù)據(jù)緩沖區(qū)高速緩沖。DSS中SQL的執(zhí)行頻率并不大,無需考慮SQL語句的共享,但應(yīng)增加數(shù)據(jù)庫緩沖區(qū)高速緩沖的容量,使得更多的數(shù)據(jù)塊和回滾段在內(nèi)存中高速緩沖。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型決策支持系統(tǒng)(DSS)北京郵電514.4.1數(shù)據(jù)庫應(yīng)用程序類型決策支持系統(tǒng)(DSS)

4)如前所述,DSS希望Oracle塊一次讀取盡可能多的行。因?yàn)镈SS查詢一般觸發(fā)整個(gè)表掃描,所以希望通過讀取多個(gè)連續(xù)的塊使系統(tǒng)讀取的塊達(dá)到最大值。把DB_BLOCK_SIZE和DB_FILE_MULTIBLOCK_READ_COUNT參數(shù)設(shè)置得盡可能高些。5)運(yùn)行的SQL應(yīng)當(dāng)刪除不必要的排序并充分利用索引,以減少對臨時(shí)表空間和回滾段的壓力。2種方法:在沒有可以選擇的良好索引時(shí)不使用任何索引或屏蔽使用某些索引(參見4.3);使用位圖索引。6)不要在DSS應(yīng)用代碼中使用綁定變量。在OLTP下,希望最小化應(yīng)用進(jìn)程開銷(語法分析)。然而,DSS的查詢,語法分析占用整個(gè)查詢時(shí)間的比例會更小。假如使用綁定變量,優(yōu)化程序不能調(diào)用它所存儲的統(tǒng)計(jì)信息(通過ANALYZE命令)以選出存取數(shù)據(jù)的最好方法。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型決策支持系統(tǒng)(DSS)北京郵電524.4.1數(shù)據(jù)庫應(yīng)用程序類型批量作業(yè)系統(tǒng)批作業(yè)處理系統(tǒng)是作用于數(shù)據(jù)庫的非交互性的自動應(yīng)用。它通常含有繁忙DML語句并有較低的并發(fā)性。另外還有一些其他的應(yīng)用類型:OLAP(聯(lián)機(jī)分析處理)系統(tǒng)可提供分析服務(wù)。該系統(tǒng)在數(shù)學(xué)、統(tǒng)計(jì)學(xué)、集合以及大量的計(jì)算方面區(qū)別于OLTP或DSS模型。可以把OLAP看作是在OLTP系統(tǒng)或DSS之上的一個(gè)擴(kuò)展或一個(gè)附加的功能層次。地理信息系統(tǒng)(GeographicInformationSystems,GIS)或有關(guān)空間的數(shù)據(jù)庫和OLAP數(shù)據(jù)庫相集成,提供圖表的映射能力。例如用于社會統(tǒng)計(jì)的人口統(tǒng)計(jì)數(shù)據(jù)庫。VCDB(可變基數(shù)數(shù)據(jù)庫),這類數(shù)據(jù)庫通常被用作一個(gè)處理系統(tǒng)的數(shù)據(jù)庫后端,這樣就會導(dǎo)致在數(shù)據(jù)處理期間,數(shù)據(jù)庫中的表顯著地增長或收縮?;鶖?shù)是指在一個(gè)給定時(shí)間里一個(gè)表中行的數(shù)目。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型批量作業(yè)系統(tǒng)北京郵電大學(xué)軟件學(xué)534.4.1數(shù)據(jù)庫應(yīng)用程序類型混合系統(tǒng)混合系統(tǒng)混合了前面介紹的幾種類型。許多實(shí)際應(yīng)用系統(tǒng)往往是OLTP和DSS甚至其他模型的集成。從前面OLTP和DSS的需求對比來看,OLTP和DSS的基本特征似乎相反,如何協(xié)調(diào)這兩種需求的矛盾?一般有三種解決方法:1)在一個(gè)系統(tǒng)中的OLTP和DSS之間節(jié)流,白天運(yùn)行OLTP,而夜間進(jìn)行批量處理。即白天運(yùn)行OLTP配置的數(shù)據(jù)庫,夜間跳回DSS配置的實(shí)例。這種方法的實(shí)際操作模式可以是以下兩種:OLTP不支持24*7工作方式,DSS時(shí)不支持OLTP;DSS操作的系統(tǒng)反跳之后,OLTP可以使用,但系統(tǒng)性能將受影響。DBA需要測試DSS和服務(wù)器反跳對Web用戶的影響,必要時(shí)選擇其他解決辦法來調(diào)整系統(tǒng)服務(wù)模式。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型混合系統(tǒng)北京郵電大學(xué)軟件學(xué)院544.4.1數(shù)據(jù)庫應(yīng)用程序類型混合系統(tǒng)2)同時(shí)運(yùn)行兩個(gè)數(shù)據(jù)庫,一個(gè)服務(wù)于OLTP,一個(gè)服務(wù)于DSS。OLTP數(shù)據(jù)庫進(jìn)行實(shí)時(shí)更新,在有規(guī)則的時(shí)間間隔內(nèi),將變化傳遞給DSS數(shù)據(jù)庫。這種方法的實(shí)際操作模式可以多種。DBA可以夜間執(zhí)行部分或全部OLTP系統(tǒng)的輸出,并輸入到DSS系統(tǒng)。較好的解決方法是對實(shí)時(shí)方式下傳遞變化的連接數(shù)據(jù)庫使用復(fù)制技術(shù),將變化的數(shù)據(jù)復(fù)制記錄下來,OLTP數(shù)據(jù)庫只傳遞變化的數(shù)據(jù)給DSS數(shù)據(jù)庫。第三種方法是使ORACLE中OLTP數(shù)據(jù)庫的歸檔日志自動應(yīng)用于DSS數(shù)據(jù)庫,保證DSS系統(tǒng)緊跟在OLTP系統(tǒng)之后,DSS數(shù)據(jù)庫不僅作為OLTP的備用數(shù)據(jù)庫,而且自己又獨(dú)立地服務(wù)于決策支持。盡管這種方式可能不能保證OLTP和DSS數(shù)據(jù)庫的絕對同步,但在DSS的實(shí)時(shí)性要求不是很強(qiáng)時(shí),是一種很好的方法。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型混合系統(tǒng)北京郵電大學(xué)軟件學(xué)院554.4.1數(shù)據(jù)庫應(yīng)用程序類型混合系統(tǒng)3)在一個(gè)系統(tǒng)中同時(shí)運(yùn)行OLTP和DSS。這是最普遍的解決方法。系統(tǒng)經(jīng)常作為OLTP開始活動,逐漸加入DSS需求使系統(tǒng)漸漸成為混合系統(tǒng)。在這種情況下,DBA必須在OLTP和批量處理之間尋找平衡,并且應(yīng)該偏向于OLTP用戶,創(chuàng)建與OLTP同樣多的回滾段,而且要創(chuàng)建少量專門為大型事務(wù)指定的大型回滾段,同時(shí)將高速緩沖和共享池保持合理的容量,使系統(tǒng)既支持OLTP對共享池的需求又支持DSS對數(shù)據(jù)庫緩沖區(qū)高速緩沖的需求。還要確保臨時(shí)表空間夠批量排序使用,同時(shí)將OLTP排序控制在內(nèi)存中。推薦在這種情況下使用專用服務(wù)器,并且配置ORACLE并行服務(wù)器(OracleParallelServer,OPS),因?yàn)镺PS允許多個(gè)實(shí)例訪問同一個(gè)物理數(shù)據(jù)庫,一個(gè)實(shí)例為OLTP配置,另一些為批量處理配置。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.1數(shù)據(jù)庫應(yīng)用程序類型混合系統(tǒng)北京郵電大學(xué)軟件學(xué)院564.4.2ORACLE空間設(shè)計(jì)ORACLE數(shù)據(jù)庫的結(jié)構(gòu)包括邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。在進(jìn)行應(yīng)用系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)時(shí),空間設(shè)計(jì)是非常重要的,它與今后運(yùn)行系統(tǒng)的性能、可用、維護(hù)、管理等有密切的關(guān)系。物理結(jié)構(gòu)與邏輯結(jié)構(gòu)之間的關(guān)系如下圖:TablespaceSegmentExtentOracleblockDatafileOSblockDatabaseLogicalPhysical北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2ORACLE空間設(shè)計(jì)ORACLE數(shù)據(jù)庫的結(jié)構(gòu)包括574.4.2.1ORACLE表空間設(shè)計(jì)ORACLE表空間分為兩大類:系統(tǒng)表空間和非系統(tǒng)表空間。系統(tǒng)表空間是建庫時(shí)自動創(chuàng)建的主要用于存儲數(shù)據(jù)字典、系統(tǒng)回滾段;非系統(tǒng)表空間是由用戶創(chuàng)建的表空間,主要用于分離段,方便用戶的數(shù)據(jù)管理。ORACLE推薦一種最佳靈活結(jié)構(gòu)OFA(OptimalFlexibleArchitecture)可以用于表空間的設(shè)計(jì)。OFA是ORACLE軟件安裝和數(shù)據(jù)文件的推薦目錄結(jié)構(gòu)。OFA只是一組建議,并不是絕對原則。下面介紹基本OFA和擴(kuò)展OFA。基本OFA1)系統(tǒng)表空間(SYSTEM):系統(tǒng)表空間不具有重建性,只用于存放數(shù)據(jù)字典,其他內(nèi)容如數(shù)據(jù)段信息等都應(yīng)從系統(tǒng)表空間中移出。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設(shè)計(jì)ORACLE表空間分為584.4.2.1ORACLE表空間設(shè)計(jì)基本OFA2)分離應(yīng)用程序數(shù)據(jù)段(DATA):應(yīng)用程序數(shù)據(jù)段應(yīng)是一個(gè)獨(dú)立的表空間,即數(shù)據(jù)表空間。建立單獨(dú)數(shù)據(jù)表空間的理由是:應(yīng)用程序與數(shù)據(jù)文件分離有利于減少資源爭用,簡化文件管理;另外,當(dāng)數(shù)據(jù)段產(chǎn)生碎片時(shí)利于管理。3)分離應(yīng)用程序索引段(INDEX):索引段不應(yīng)與相關(guān)的數(shù)據(jù)段存儲在一個(gè)表空間,以免產(chǎn)生資源爭用。由于表增長和不正確的尺寸設(shè)置可能產(chǎn)生索引段的碎片,分離應(yīng)用程序索引段,可以減少整理數(shù)據(jù)表或索引碎片所需的管理代價(jià)。從數(shù)據(jù)表分離相應(yīng)的索引也可以通過ALTERINDEX命令來實(shí)現(xiàn)。4)分離工具段(TOOLS):許多第三方工具會將數(shù)據(jù)存儲在系統(tǒng)表空間中,為了避免這種情況,可將它們的對象移出系統(tǒng)表空間。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設(shè)計(jì)基本OFA北京郵電大學(xué)594.4.2.1ORACLE表空間設(shè)計(jì)基本OFA5)分離回滾段(RBS):回滾段會針對巨型事務(wù)動態(tài)擴(kuò)展尺寸,也會動態(tài)收縮到指定的優(yōu)化尺寸(參見4.3)。回滾段的I/O通常與數(shù)據(jù)和索引表空間的I/O同步。將回滾段分離出來是出于減少I/O沖突的考慮。6)分離臨時(shí)段(TEMP):臨時(shí)段是數(shù)據(jù)庫中動態(tài)生成的對象,用來存儲巨型排序操作(如SELECTDISTINCT,UNION,CREATEINDEX等)的數(shù)據(jù)。由于動態(tài)特性,臨時(shí)段不應(yīng)與其他類型段一起存儲。通常,在建立用戶時(shí),將這些用戶使用的臨時(shí)數(shù)據(jù)段設(shè)置到臨時(shí)表空間。7)分離用戶(USER):為用戶帳號建立一個(gè)USER表空間,在建立用戶時(shí)將用戶的操作數(shù)據(jù)放在用戶表空間。以上7個(gè)表空間是最基本的表空間,也是傳統(tǒng)OFA的基本組成部分。隨著應(yīng)用的深入,又有擴(kuò)展的OFA。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設(shè)計(jì)基本OFA北京郵電大學(xué)604.4.2.1ORACLE表空間設(shè)計(jì)擴(kuò)展的OFA1)分離低使用數(shù)據(jù)段(DATA_2):在基表中,有一些是動態(tài)數(shù)據(jù),一些是靜態(tài)數(shù)據(jù),而動態(tài)數(shù)據(jù)和靜態(tài)數(shù)據(jù)常常被并發(fā)操作。靜態(tài)數(shù)據(jù)在實(shí)際使用時(shí)只是被提取信息,可以把這些靜態(tài)數(shù)據(jù)表設(shè)置到一個(gè)專用表空間(DATA_2),從而避免并發(fā)操作沖突。2)分離低使用索引段(INDEX_2):數(shù)據(jù)表分為靜態(tài)表和動態(tài)表,則索引亦如此。對于靜態(tài)表的索引表應(yīng)建立靜態(tài)索引表空間(INDEX_2)。如果索引已經(jīng)生成,可以使用ALTERINDEX語句來移動這些索引到一個(gè)新的表空間中。3)分離工具索引(TOOLS_1):如果數(shù)據(jù)庫對TOOLS表空間有較多的操作,則這些工具表索引可以移到另一個(gè)表空間(TOOLS_1),這樣TOOLS表空間就可看成工具數(shù)據(jù)表空間。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設(shè)計(jì)擴(kuò)展的OFA北京郵電大614.4.2.1ORACLE表空間設(shè)計(jì)擴(kuò)展的OFA4)分離特殊回滾段(RBS_2):RBS表空間的回滾段必須有適當(dāng)?shù)拇笮『蛿?shù)量,以適應(yīng)應(yīng)用的使用。但大型事務(wù)可能超過回滾段的配置。為了避免這種情況,可以設(shè)置一個(gè)特殊回滾段,使大型事務(wù)只使用特殊回滾段。建立一個(gè)特殊表空間來容納這個(gè)特殊回滾段。5)分離特殊用戶臨時(shí)段(TEMP_USER):和特殊回滾段一樣,一些特殊用戶在做特殊操作時(shí),可以設(shè)置一個(gè)特殊用戶臨時(shí)表空間,這樣便于系統(tǒng)管理。附加的特殊應(yīng)用OFA擴(kuò)展1)SNAPS:用于快照(Snapshots)??煺毡硎欠植际綌?shù)據(jù)庫處理的一種特殊表,為此類表建立相應(yīng)的表空間。2)PARTITIONS:用于分區(qū)(Partition)。分區(qū)是為了分配I/O并且簡化巨型表的管理。3)TEMP_WORK:用于大型數(shù)據(jù)裝載。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設(shè)計(jì)擴(kuò)展的OFA北京郵電大624.4.2.2數(shù)據(jù)文件設(shè)置根據(jù)ORACLE數(shù)據(jù)庫結(jié)構(gòu)特點(diǎn),每個(gè)表空間至少要有一個(gè)數(shù)據(jù)文件,因此,應(yīng)用系統(tǒng)的每個(gè)表空間均具有各自的數(shù)據(jù)文件。Oracle7.2以后可以支持?jǐn)?shù)據(jù)文件大小的重新定義,當(dāng)表空間需要擴(kuò)充時(shí),不必為其增加數(shù)據(jù)文件,而簡單地將其擴(kuò)充即可,避免了預(yù)先分配過大的存儲空間及過多數(shù)據(jù)文件的問題。同時(shí)可以支持?jǐn)?shù)據(jù)文件的自動擴(kuò)展,避免當(dāng)表空間已滿時(shí),DBA手工擴(kuò)充表空間對用戶使用的影響。對于一個(gè)不太大的數(shù)據(jù)庫,可以將數(shù)據(jù)庫軟件和數(shù)據(jù)文件都放置在一個(gè)磁盤上,將它們設(shè)計(jì)成不同的子文件即可。對于大型數(shù)據(jù)庫,需要指定哪些文件放置在哪個(gè)磁盤上。北京郵電大學(xué)軟件學(xué)院郭文明2003.06郭文明2003.06.054.4.2.2數(shù)據(jù)文件設(shè)置根據(jù)ORACLE數(shù)據(jù)庫結(jié)構(gòu)特點(diǎn),634.4.2.2數(shù)據(jù)文件設(shè)置表空間的磁盤分配:一般情況下,90%以上的I/O操作集中在系統(tǒng)表空間、數(shù)據(jù)表空間、回滾表空間、索引表空間這4個(gè)表空間上,所以這4個(gè)表空間應(yīng)單獨(dú)存儲在不同的磁盤上。系統(tǒng)文件的規(guī)劃:ORACLE有聯(lián)機(jī)日志文件、歸檔日志文件、控制文件和系統(tǒng)軟件文件等,如何放置這些系統(tǒng)文件也是一件重要的任務(wù)。1)聯(lián)機(jī)日志文件:每個(gè)數(shù)據(jù)庫至少要有兩個(gè)聯(lián)機(jī)日志文件,由于聯(lián)機(jī)日志文件中保留了數(shù)據(jù)庫的當(dāng)前事務(wù),所以它無法從

溫馨提示

  • 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

提交評論