




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
4.4ORACLE數據庫規劃與實施ORACLE為信息系統提供了一個開放、綜合、集成的方法。使用ORACLE數據庫進行信息系統開發的步驟可以歸納為如下過程:建ORACLE數據庫建表空間建回滾段建用戶建數據庫對象開發本節介紹ORACLE數據庫的規劃與實施:4.4.1數據庫應用程序類型4.4.4ORACLE對象設計4.4.2ORACLE空間設計4.4.5DBA工具4.4.3ORACLE安全設計北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4ORACLE數據庫規劃與實施ORACLE為信息系統提14.4.1數據庫應用程序類型規劃和配置數據庫,需要知道將要操作數據庫的事務有什么,這些事務訪問數據庫的頻率有多大。針對不同的事務訪問情形,對內存的要求不同,磁盤I/O操作的情形也不同。只有設置合適的ORACLE實例,才能使數據庫應用系統獲得快速、準確、可靠的事務響應。ORACLE既可以設置成處理長的密集型事務的系統,也可以設置成處理大量的小型快速事務的系統。有三種通用的數據庫設置類型:聯機事務處理(OLTP)決策支持系統(DSS)批量作業系統混合系統北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型規劃和配置數據庫,需要知道將要24.4.1數據庫應用程序類型聯機事務處理(OLTP)OLTP系統是一個包含繁重DML的應用,其面向事務的活動主要包括更新,但也包括一些插入和刪除。典型的例子是用于航空公司和旅館的預定系統。OLTP系統可以允許有很高的并發性。
OLTP的特點是有大量短的事務高頻率地訪問數據庫,每一個事務操作的數據量不是很多,但事務比較頻繁,而且要求數據庫響應事務的速度快。一般來說OLTP系統需要24*7地響應對數據庫的請求。根據這些要求,我們應該從以下幾方面考慮:1)大量的小回滾段。因為事務都不太大,對回滾段空間的需求不可能很大,但事務數量多,引發回滾段數量的增大。應該創建大量小的回滾段,把事務對回滾段的爭用減到最小。標準的配置可以考慮每四個活動事務用一個回滾段,每個事務接受一個區間。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型聯機事務處理(OLTP)北京郵34.4.1數據庫應用程序類型聯機事務處理(OLTP)2)OLTP應用的表可能插入或者刪除記錄,所以存放易變表和索引的表空間應被分配到它們最大的期望容量。3)適當的估計重寫日志緩沖區和日志文件大小,減少日志寫和日志切換的頻率,盡可能降低對響應事務請求的影響,另外頻繁的檢查點也可能影響事務響應速度。4)擁有大型共享池。不同客戶可能執行同樣的SQL語句,SQL在共享池中緩沖,性能可提高(應用程序的SQL語句應當統一,另外WHERE中使用綁定變量查詢而不是直接的值查詢,使不同值的查詢共享SQL的執行計劃)。5)數據擁有單獨的索引。OLTP的事務請求基本在規劃設計范圍之內,建立單獨有效的索引,并在獨立的表空間中創建主鍵和其他索引,且存放在獨立的存儲器上。6)使用小型臨時段。需要小的排序應在內存中完成,盡量避免OLTP系統對臨時段的請求進入磁盤。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型聯機事務處理(OLTP)北京郵44.4.1數據庫應用程序類型決策支持系統(DSS)DSS系統通常是一個大型的、包含歷史性內容的只讀數據庫,通常用于簡單的固定查詢或特別查詢。夜間處理任務被認為是DSS,查詢(選擇)是DSS的主要活動。根據這些要求,我們應該從以下幾方面考慮:1)擁有少量的較大的回滾段。大型工作要創建大型的回滾段,使用SETTRANSACTIONUSERROLLBACKSEGMENT語句使事務強制使用專用回滾段。2)為分類排序創建大型臨時表空間,DSS經常超出內存的使用空間而從內存轉入磁盤(臨時表空間)。3)使用較小的共享SQL區域而采用較大的數據緩沖區高速緩沖。DSS中SQL的執行頻率并不大,無需考慮SQL語句的共享,但應增加數據庫緩沖區高速緩沖的容量,使得更多的數據塊和回滾段在內存中高速緩沖。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型決策支持系統(DSS)北京郵電54.4.1數據庫應用程序類型決策支持系統(DSS)
4)如前所述,DSS希望Oracle塊一次讀取盡可能多的行。因為DSS查詢一般觸發整個表掃描,所以希望通過讀取多個連續的塊使系統讀取的塊達到最大值。把DB_BLOCK_SIZE和DB_FILE_MULTIBLOCK_READ_COUNT參數設置得盡可能高些。5)運行的SQL應當刪除不必要的排序并充分利用索引,以減少對臨時表空間和回滾段的壓力。2種方法:在沒有可以選擇的良好索引時不使用任何索引或屏蔽使用某些索引(參見4.3);使用位圖索引。6)不要在DSS應用代碼中使用綁定變量。在OLTP下,希望最小化應用進程開銷(語法分析)。然而,DSS的查詢,語法分析占用整個查詢時間的比例會更小。假如使用綁定變量,優化程序不能調用它所存儲的統計信息(通過ANALYZE命令)以選出存取數據的最好方法。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型決策支持系統(DSS)北京郵電64.4.1數據庫應用程序類型批量作業系統批作業處理系統是作用于數據庫的非交互性的自動應用。它通常含有繁忙DML語句并有較低的并發性。另外還有一些其他的應用類型:OLAP(聯機分析處理)系統可提供分析服務。該系統在數學、統計學、集合以及大量的計算方面區別于OLTP或DSS模型。可以把OLAP看作是在OLTP系統或DSS之上的一個擴展或一個附加的功能層次。地理信息系統(GeographicInformationSystems,GIS)或有關空間的數據庫和OLAP數據庫相集成,提供圖表的映射能力。例如用于社會統計的人口統計數據庫。VCDB(可變基數數據庫),這類數據庫通常被用作一個處理系統的數據庫后端,這樣就會導致在數據處理期間,數據庫中的表顯著地增長或收縮。基數是指在一個給定時間里一個表中行的數目。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型批量作業系統北京郵電大學軟件學74.4.1數據庫應用程序類型混合系統混合系統混合了前面介紹的幾種類型。許多實際應用系統往往是OLTP和DSS甚至其他模型的集成。從前面OLTP和DSS的需求對比來看,OLTP和DSS的基本特征似乎相反,如何協調這兩種需求的矛盾?一般有三種解決方法:1)在一個系統中的OLTP和DSS之間節流,白天運行OLTP,而夜間進行批量處理。即白天運行OLTP配置的數據庫,夜間跳回DSS配置的實例。這種方法的實際操作模式可以是以下兩種:OLTP不支持24*7工作方式,DSS時不支持OLTP;DSS操作的系統反跳之后,OLTP可以使用,但系統性能將受影響。DBA需要測試DSS和服務器反跳對Web用戶的影響,必要時選擇其他解決辦法來調整系統服務模式。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型混合系統北京郵電大學軟件學院84.4.1數據庫應用程序類型混合系統2)同時運行兩個數據庫,一個服務于OLTP,一個服務于DSS。OLTP數據庫進行實時更新,在有規則的時間間隔內,將變化傳遞給DSS數據庫。這種方法的實際操作模式可以多種。DBA可以夜間執行部分或全部OLTP系統的輸出,并輸入到DSS系統。較好的解決方法是對實時方式下傳遞變化的連接數據庫使用復制技術,將變化的數據復制記錄下來,OLTP數據庫只傳遞變化的數據給DSS數據庫。第三種方法是使ORACLE中OLTP數據庫的歸檔日志自動應用于DSS數據庫,保證DSS系統緊跟在OLTP系統之后,DSS數據庫不僅作為OLTP的備用數據庫,而且自己又獨立地服務于決策支持。盡管這種方式可能不能保證OLTP和DSS數據庫的絕對同步,但在DSS的實時性要求不是很強時,是一種很好的方法。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型混合系統北京郵電大學軟件學院94.4.1數據庫應用程序類型混合系統3)在一個系統中同時運行OLTP和DSS。這是最普遍的解決方法。系統經常作為OLTP開始活動,逐漸加入DSS需求使系統漸漸成為混合系統。在這種情況下,DBA必須在OLTP和批量處理之間尋找平衡,并且應該偏向于OLTP用戶,創建與OLTP同樣多的回滾段,而且要創建少量專門為大型事務指定的大型回滾段,同時將高速緩沖和共享池保持合理的容量,使系統既支持OLTP對共享池的需求又支持DSS對數據庫緩沖區高速緩沖的需求。還要確保臨時表空間夠批量排序使用,同時將OLTP排序控制在內存中。推薦在這種情況下使用專用服務器,并且配置ORACLE并行服務器(OracleParallelServer,OPS),因為OPS允許多個實例訪問同一個物理數據庫,一個實例為OLTP配置,另一些為批量處理配置。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型混合系統北京郵電大學軟件學院104.4.2ORACLE空間設計ORACLE數據庫的結構包括邏輯結構和物理結構。在進行應用系統數據庫設計時,空間設計是非常重要的,它與今后運行系統的性能、可用、維護、管理等有密切的關系。物理結構與邏輯結構之間的關系如下圖:TablespaceSegmentExtentOracleblockDatafileOSblockDatabaseLogicalPhysical北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2ORACLE空間設計ORACLE數據庫的結構包括114.4.2.1ORACLE表空間設計ORACLE表空間分為兩大類:系統表空間和非系統表空間。系統表空間是建庫時自動創建的主要用于存儲數據字典、系統回滾段;非系統表空間是由用戶創建的表空間,主要用于分離段,方便用戶的數據管理。ORACLE推薦一種最佳靈活結構OFA(OptimalFlexibleArchitecture)可以用于表空間的設計。OFA是ORACLE軟件安裝和數據文件的推薦目錄結構。OFA只是一組建議,并不是絕對原則。下面介紹基本OFA和擴展OFA。基本OFA1)系統表空間(SYSTEM):系統表空間不具有重建性,只用于存放數據字典,其他內容如數據段信息等都應從系統表空間中移出。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設計ORACLE表空間分為124.4.2.1ORACLE表空間設計基本OFA2)分離應用程序數據段(DATA):應用程序數據段應是一個獨立的表空間,即數據表空間。建立單獨數據表空間的理由是:應用程序與數據文件分離有利于減少資源爭用,簡化文件管理;另外,當數據段產生碎片時利于管理。3)分離應用程序索引段(INDEX):索引段不應與相關的數據段存儲在一個表空間,以免產生資源爭用。由于表增長和不正確的尺寸設置可能產生索引段的碎片,分離應用程序索引段,可以減少整理數據表或索引碎片所需的管理代價。從數據表分離相應的索引也可以通過ALTERINDEX命令來實現。4)分離工具段(TOOLS):許多第三方工具會將數據存儲在系統表空間中,為了避免這種情況,可將它們的對象移出系統表空間。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設計基本OFA北京郵電大學134.4.2.1ORACLE表空間設計基本OFA5)分離回滾段(RBS):回滾段會針對巨型事務動態擴展尺寸,也會動態收縮到指定的優化尺寸(參見4.3)。回滾段的I/O通常與數據和索引表空間的I/O同步。將回滾段分離出來是出于減少I/O沖突的考慮。6)分離臨時段(TEMP):臨時段是數據庫中動態生成的對象,用來存儲巨型排序操作(如SELECTDISTINCT,UNION,CREATEINDEX等)的數據。由于動態特性,臨時段不應與其他類型段一起存儲。通常,在建立用戶時,將這些用戶使用的臨時數據段設置到臨時表空間。7)分離用戶(USER):為用戶帳號建立一個USER表空間,在建立用戶時將用戶的操作數據放在用戶表空間。以上7個表空間是最基本的表空間,也是傳統OFA的基本組成部分。隨著應用的深入,又有擴展的OFA。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設計基本OFA北京郵電大學144.4.2.1ORACLE表空間設計擴展的OFA1)分離低使用數據段(DATA_2):在基表中,有一些是動態數據,一些是靜態數據,而動態數據和靜態數據常常被并發操作。靜態數據在實際使用時只是被提取信息,可以把這些靜態數據表設置到一個專用表空間(DATA_2),從而避免并發操作沖突。2)分離低使用索引段(INDEX_2):數據表分為靜態表和動態表,則索引亦如此。對于靜態表的索引表應建立靜態索引表空間(INDEX_2)。如果索引已經生成,可以使用ALTERINDEX語句來移動這些索引到一個新的表空間中。3)分離工具索引(TOOLS_1):如果數據庫對TOOLS表空間有較多的操作,則這些工具表索引可以移到另一個表空間(TOOLS_1),這樣TOOLS表空間就可看成工具數據表空間。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設計擴展的OFA北京郵電大154.4.2.1ORACLE表空間設計擴展的OFA4)分離特殊回滾段(RBS_2):RBS表空間的回滾段必須有適當的大小和數量,以適應應用的使用。但大型事務可能超過回滾段的配置。為了避免這種情況,可以設置一個特殊回滾段,使大型事務只使用特殊回滾段。建立一個特殊表空間來容納這個特殊回滾段。5)分離特殊用戶臨時段(TEMP_USER):和特殊回滾段一樣,一些特殊用戶在做特殊操作時,可以設置一個特殊用戶臨時表空間,這樣便于系統管理。附加的特殊應用OFA擴展1)SNAPS:用于快照(Snapshots)。快照表是分布式數據庫處理的一種特殊表,為此類表建立相應的表空間。2)PARTITIONS:用于分區(Partition)。分區是為了分配I/O并且簡化巨型表的管理。3)TEMP_WORK:用于大型數據裝載。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設計擴展的OFA北京郵電大164.4.2.2數據文件設置根據ORACLE數據庫結構特點,每個表空間至少要有一個數據文件,因此,應用系統的每個表空間均具有各自的數據文件。Oracle7.2以后可以支持數據文件大小的重新定義,當表空間需要擴充時,不必為其增加數據文件,而簡單地將其擴充即可,避免了預先分配過大的存儲空間及過多數據文件的問題。同時可以支持數據文件的自動擴展,避免當表空間已滿時,DBA手工擴充表空間對用戶使用的影響。對于一個不太大的數據庫,可以將數據庫軟件和數據文件都放置在一個磁盤上,將它們設計成不同的子文件即可。對于大型數據庫,需要指定哪些文件放置在哪個磁盤上。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.2數據文件設置根據ORACLE數據庫結構特點,174.4.2.2數據文件設置表空間的磁盤分配:一般情況下,90%以上的I/O操作集中在系統表空間、數據表空間、回滾表空間、索引表空間這4個表空間上,所以這4個表空間應單獨存儲在不同的磁盤上。系統文件的規劃:ORACLE有聯機日志文件、歸檔日志文件、控制文件和系統軟件文件等,如何放置這些系統文件也是一件重要的任務。1)聯機日志文件:每個數據庫至少要有兩個聯機日志文件,由于聯機日志文件中保留了數據庫的當前事務,所以它無法從備份中恢復,他們是ORACLE無法用備份工具恢復的唯一文件類型。這類文件應單獨存儲。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.2數據文件設置表空間的磁盤分配:北京郵電大學軟184.4.2.2數據文件設置系統文件的規劃:2)控制文件:前面章節已經說明了控制文件的重要性,每個數據庫應當至少有3個控制文件的拷貝,它們被分布在3個驅動器中。3)歸檔日志文件:如果歸檔日志文件和聯機日志文件放在同一個磁盤上,當LGWR在讀盤時,ARCH也在讀同一磁盤,勢必造成I/O沖突,所以歸檔日志文件和聯機日志文件應分盤存儲。4)ORACLE軟件:Oracle軟件是系統運行的核心,這些軟件應放在獨立的磁盤上。磁盤規劃設計:
磁盤規劃設計可以依據下列準則:數據庫必須可恢復;必須對聯機日志文件進行鏡像;必須最小化DBWR、LGWR、ARCH之間的沖突;必須最小化DBWR磁盤間的沖突;估計數據庫文件的I/O量。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.2數據文件設置系統文件的規劃:北京郵電大學軟件194.4.2.2數據文件設置磁盤規劃設計:在磁盤規劃設計過程中需要做一些數據庫測量,以估計其I/O量,以下給出一參照的7磁盤設計方案:磁盤存放內容1Oracle軟件2SYSTEM表空間,控制文件13RBS,TEMP,TOOLS表空間,控制文件24DATA表空間,控制文件35INDEX表空間6聯機日志文件1,2,3,轉儲文件7應用軟件,歸檔日志文件北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.2數據文件設置磁盤規劃設計:磁盤存放內容1Or204.4.2.2數據文件設置表空間與數據文件設置舉例: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;連接數據庫創建tsp_acct表空間創建回滾段表空間創建臨時表空間北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.2數據文件設置表空間與數據文件設置舉例:連接數214.4.2.3段存儲分配設置在數據庫中,大量使用的段包括表段和索引段,還有回滾段、臨時段。表的邏輯定義信息放在DBA_TABLES和DBA_TAB_COLUMNS中,索引的定義信息放在DBA_INDEXS和DBA_IND_COLUMNS中。從存儲管理角度看,表和索引都屬于段,只是類型不同而已,有關段及存儲定義的系統數據字典有DBA_SEGMENTS和DBA_EXTENTS等。在應用系統中,對大量使用的段的規劃主要是它們的存儲方案的設計,每個段由區間組成。每個段使用的空間由它的存儲參數決定,在CREATETABLE、CREATEINDEX、CREATECLUSTER、CREATEROLLBACK等命令中都涉及到STORAGE參數。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.3段存儲分配設置在數據庫中,大量使用的段包括表224.4.2.3段存儲分配設置如果在創建段的命令中不指定STORAGE參數,則使用它所在表空間的缺省參數。表空間的存儲參數或段的存儲參數設計不合理將直接影響數據庫的性能,甚至直接影響到數據庫的正常運行。對存儲參數的確定問題,前面的討論中已經說明,應根據實際初始數據量的估算和數據的動態變化情況以及段的性質等多方面來決定。注意,ORACLE數據庫在創建回滾段之后,狀態為脫機,因此必須由DBA將其狀態改為聯機,方可使用。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.3段存儲分配設置如果在創建段的命令中不指定ST234.4.2.3段存儲分配設置段存儲分配設置舉例: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;創建pat_master表創建pat_master_index索引創建回滾段北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.3段存儲分配設置段存儲分配設置舉例:創建pat244.4.2.4數據塊利用設置數據塊空間利用參數可以控制表段和索引段中的空間使用。分兩類:控制并發性的參數(INITRANS和MAXTRANS)、控制數據空間使用的參數(PCTFREE和PCTUSED)。可以使用INITRANS和MAXTRANS來確定一個數據庫塊上活動事務的個數。INITRANS是每個塊的初始化事務入口數,數據段和索引段的INITRANS的缺省值分別為1和2,增大其值則允許多個事務同時操作數據塊。MAXTRANS是在每個塊的最大事務入口,缺省值為最大值255。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.4數據塊利用設置數據塊空間利用參數可以控制表段254.4.2.4數據塊利用設置通過選擇適當的PCTFREE和PCTUSED可以提高性能和空間利用。對于改動較少的表,在設置數據塊空間利用參數時,PCTFREE適當降低。對于經常改動的表,尤其是數據行長度增加的改動,應該適當提高PCTFREE的設置,以免發生行轉移。數據行長度增加這類應用的一個例子:醫療信息系統中,病案首頁表中行的信息開始長度可能不大(許多字段值為空),但隨著病人住院的過程,行的信息不斷增加。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.4數據塊利用設置通過選擇適當的PCTFREE和264.4.3ORACLE安全設計在ORACLE中,DBA定義訪問數據庫的用戶名,安全域定義作用于用戶的有關安全方面的設置。安全域包括:驗證機制、表空間限額、默認表空間、臨時表空間、帳戶鎖、資源限制、直接權限、角色權限8個方面,如下頁圖。ORACLE的安全性設計圍繞用戶的安全域展開。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設計在ORACLE中,DBA定義274.4.3ORACLE安全設計AccountlockingAuthenticationmechanismRoleprivilegesDirectprivilegesResourcelimitsTablespacequotasTemporarytablespaceDefaulttablespaceSecuritydomain默認表空間臨時表空間表空間限額資源限額直接權限角色權限驗證機制帳戶鎖北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設計AccountAuthent284.4.3ORACLE安全設計安全域內容1)驗證機制:用戶訪問數據庫可以通過數據庫、操作系統、網絡這三種方式中的一種進行驗證,一個用戶究竟使用何種驗證方式,根據具體需求決定。2)表空間限額:表空間限額,可以控制一個數據庫的用戶對數據庫中表空間的物理存儲空間的分配數量。3)默認表空間:定義用戶在創建段時的存儲位置,當用戶創建段時,如果指定存儲表空間,則使用定義段時指定的表空間,否則使用這一默認表空間。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設計安全域內容北京郵電大學軟件學294.4.3ORACLE安全設計安全域內容4)臨時表空間:當用戶執行排序操作時,臨時表空間定義臨時段分配的位置。5)帳戶鎖:帳戶鎖可以防止非法用戶對系統的登錄。6)資源限制:對用戶使用資源進行一定的限制。7)直接權限:通過GRANT直接授予用戶的系統權限和對象權限。8)角色權限:通過GRANT將系統權限和對象權限授予角色,再將角色授予用戶,使用戶間接獲得權限。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設計安全域內容北京郵電大學軟件學304.4.3ORACLE安全設計口令和資源配置文件是命名的一組口令和資源限制的設置集合。Oracle中存在一個名為DEFAULT的配置文件,默認配置文件中的所有項目都不受限制,如果創建用戶時沒有指定配置文件子句,則系統將DEFAULT指定給該用戶。Oracle中允許DBA修改DEFAULT和用戶定義的配置文件,用ALTERPROFILE命令。允許刪除DEFAULT和定義的配置文件,用DROPPROFILECASCADE命令。創建用戶時需確定用戶名和驗證機制、指定默認表空間和臨時表空間、確定有關表空間的限額、指定用戶的配置文件。ORACLE應用系統中一般定義一系列的用戶和配置文件、定義一系列的角色,然后將角色和配置文件授予(或指定給)用戶。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設計口令和資源北京郵電大學軟件學314.4.3ORACLE安全設計權限和角色Oracle大約有100多種的系統權限,包括諸如創建表空間的系統范圍級操作權限、諸如創建表的用戶模式內對象管理權限和諸如創建任意表的任意模式內對象管理權限。系統權限和對象權限可以通過GRANT或REVOKE語句授予用戶或收回。角色是被命名的一組相關的權限,角色是屬于系統范圍的,既不屬于某個用戶,也不屬于某個模式。可以把系統權限和對象權限授予角色,也可以把角色授予另一個角色,最終把角色授予用戶,由此方便Oracle的安全管理。使用角色的步驟是:創建角色、為角色授予相應的權限、將角色授予特定的用戶。Oracle中有一些預定義角色可以使用,例如DBA、SELECT_CATALOG_ROLE等,DBA可以直接使用。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設計權限和角色北京郵電大學軟件學324.4.3ORACLE安全設計應用系統的用戶應用系統的安全設計一般要對用戶進行分類,然后根據用戶類型的不同,對其進行設置、維護及管理。
數據庫管理員(DBA):默認的數據庫管理員internal、sys和system均具有DBA權限。數據庫打開、關閉、恢復等操作時,需使用internal;修改數據庫重要參數時使用sys;其他一般管理應使用system。
所有者(OWNER):對大型的應用系統,往往根據不同的用戶所屬將對象進行劃分,這樣不同的用戶擁有不同的數據庫對象,創建數據庫對象的用戶稱為對象的所有者(模式)。此類用戶需要有RESOURCE的權限。
一般用戶(USER):一般用戶即應用系統的最終用戶。此類用戶對數據庫而言僅需要有CONNECT的權限即可,但此類用戶的角色權限和對象使用權限需要根據具體工作和應用進一步規劃和設計。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設計應用系統的用戶北京郵電大學軟334.4.3ORACLE安全設計應用系統的一般用戶應用系統中除創建一系列數據庫對象外,還要創建一系列的應用程序,不同的應用程序執行不同的操作。對于一般用戶來講,使用數據庫系統是通過使用用戶管理應用程序開始的,往往限制其使用一些應用程序的權力。對于這種情形,處理辦法是:在數據庫和應用程序之間建立用戶管理應用程序層次,對每一個用戶,授予相應的數據庫權限和使用應用程序的權限。
一般用戶的配置:系統級權限僅限于角色CONNECT,對象級權限僅限于相關應用系統的自定義角色,應用程序使用權限僅限于相關應用程序的使用級別。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設計應用系統的一般用戶北京郵電大344.4.3ORACLE安全設計應用系統的一般用戶在應用系統內部進行多個層次的檢查和驗證:1)第一層:Oracle數據庫系統層,判斷其能否建立會話。2)第二層:應用程序的使用權限,檢查驗證用戶能夠使用哪些應用程序。3)第三層:Oracle數據庫的對象級權限,判斷用戶能否操縱其相應的對象,對象級權限是通過自定義Oracle角色來設置的。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設計應用系統的一般用戶北京郵電大354.4.3ORACLE安全設計在ORACLE數據庫中,當一個數據庫用戶被創建時,系統就為該用戶自動創建一個與用戶同名的模式。用戶和模式的概念在某種程度上是一樣的。模式或用戶可以擁有的對象如下圖。用戶的定義應與數據庫的對象定義結合起來。SchemaObjectsTables表Triggers觸發器Constraints約束Indexes索引Views視圖Sequences序列發生器Storedprogramunits存儲過程單元(PL/SQL寫)Synonyms同義詞User_defineddatatypes用戶定義數據類型(Oracle8i以后)Databaselinks數據庫連接(分布式數據庫時使用)北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設計在ORACLE數據庫中,當一364.4.3ORACLE安全設計安全設計舉例:createprofilegrace_5limitfailed_login_attempts3password_lock_timeunlimitedpassword_lift_time30password_grace_time5sessions_per_user2cpu_per_session10000idle_time60conenct_time480;createusercommidentifiedbycommdefaulttablespacedatatemporarytablespacetsp_tempquota15Mondataprofilegrace_5;grantconnect,resourcetocomm;創建配置文件創建用戶授權北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.3ORACLE安全設計安全設計舉例:創建配置文件創374.4.4ORACLE對象設計數據庫應用系統中肯定要建立大量的模式對象,這些對象應作出合理的規劃,盡量減少因設計不周導致性能下降、表空間不足、用戶權限不夠等問題的出現。表在創建表時,需要注意的事項如下:1)對于表名、列名、約束名、索引名和聚集名使用符合命名規則的并帶有描述意義的名稱。2)建立相應完全的、詳細的文檔資料。3)所有表都應當規范(規范化至少是第三泛式)。4)定義允許為空的列,并保留一定的存儲空間。5)適當地使用聚集表,保留一定的存儲空間。6)表段應放在單獨的表空間中。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.4ORACLE對象設計數據庫應用系統中肯定要建立大384.4.4ORACLE對象設計表7)為了減少存儲碎片產生,區間大小最好是數據塊的整數倍。8)對于應用系統中頻繁使用的數據行較少的表,考慮使用CACHE選項,即允許其長期保持在內存中,避免反復讀取,提高性能。觸發器觸發器作為Oracle標準功能的補充提供給用戶。使用它通常實現如下功能:1)自動生成可以派生的列值。2)防止無效的處理。3)增強復雜的安全驗證。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.4ORACLE對象設計表北京郵電大學軟件學院394.4.4ORACLE對象設計觸發器4)增強分布式環境中跨節點的引用完整性。5)增強復雜的業務規則。6)提供透明的事件登記。7)提供高級的審計。8)維護表復制的同步。9)采集關于訪問表的統計信息。盡管觸發器可實現許多功能,但是,能用其他方式實現的功能盡量避免使用觸發器。過多的觸發器導致復雜的內部相關性,維護和管理變得復雜。特別注意觸發器的語句不要太多,不要創建遞歸調用的觸發器(如一個對象的AFTERUPDATE的活動中又有該對象的UPDATE操作)。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.4ORACLE對象設計觸發器北京郵電大學軟件學院404.4.4ORACLE對象設計索引索引一旦建立,其使用和維護都是由Oracle自動實現的。使用它應注意:1)索引可以加速查詢,但會降低修改速度,頻繁改動的表,盡量少建索引。2)索引段應存儲在獨立的表空間中。3)為減少存儲碎片,區間大小應是數據塊的整數倍。4)為了避免索引的建立和改動操作生成大量的重做日志,影響系統的性能,在創建較大索引時,使用NOLOGGING選項。5)由于索引項相對于數據項要短,使一個數據塊中容納索引的數量要比數據行多,為了提高索引在數據塊一級上操作的并發性,可適當提高INITANS參數的值。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.4ORACLE對象設計索引北京郵電大學軟件學院414.4.4ORACLE對象設計索引6)索引中PCTFREE只在創建索引時使用。對于單調增加的索引列值,可以將PCTFREE設置得較低。因為新的索引項始終是對已經存在的索引項的追加,不需要在兩個已經存在的索引項之間插入,所以沒必要預留過多的空間。如果索引列值是任意值時,則可能需要預留較多的空間。視圖對視圖的操作類似表的使用,表可以使用的地方,視圖一般也可使用。視圖可用于安全控制和簡化查詢的目的,視圖只能創建或刪除,不能修改。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.4ORACLE對象設計索引北京郵電大學軟件學院424.4.4ORACLE對象設計序列應用系統中,經常使用順序號,并發用戶中如何保證順序號的連續且不重復。序列發生器是數據庫的一種模式對象,可以解決上述問題,為應用系統開發人員提供順序號的自動管理與維護。Init.ora中的參數SEQUENCE_CACHE_ENTRIES與序列發生器有關,影響內存中可以保留的順序號個數。存儲過程可以調用存儲過程的環境有:另一個存儲過程的過程體或一個觸發器中,一個存儲函數可以從一個SQL語句中調用,其使用方式與調用Oracle內置的SQL函數是一樣的。創建存儲過程時,應當注意該存儲過程的模式歸屬。同義詞利用同義詞可以將應用系統中模式對象的模式屏蔽掉。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.4ORACLE對象設計序列北京郵電大學軟件學院434.4.3ORACLE對象設計對象設計舉例:
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;創建觸發器授權創建表創建視圖北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.3ORACLE對象設計對象設計舉例:創建觸發器授權444.4.5DBA工具通常情況下,DBA的操作都是以命令行的方式進行,尤其對復雜任務。企業管理器(OracleEnterpriseManager,OEM)給DBA提供了圖形界面。DatabaseAdministrationToolsToolDescriptionOracleUniversalInstaller(OUI)Usedtoinstall,upgrade,orremovesoftwarecomponentsOracleDatabaseConfigurationAssistantAgraphicaluserinterfacetoolthatinteractswiththeOUI,orcanbrusedindependently,tocreate,deleteormodifyadatabasePasswordFileUtilityUtilityfrocreatingadatabasepasswordfileSQL*PlusAutilitytoaccessdatainanOracledatabaseOracleEnterpriseManagerAgraphicalinterfaceusedtoadminister,monitor,andtuneoneormoredatabase北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.5DBA工具通常情況下,DBA的操作都是以命令行的454.4.5DBA工具DBATools(StandardapplicationthatcanbelaunchedfromOEM)ToolDescriptionInstanceManagerPerformsstartup,shutdownandmonitordatabasesSecurityManagerUsedtomanageusersandprivilegesStorageManagerMaintainstablespaces,datafiles,rollbacksegmentsandloggroupsSchemaManagerUsedtocreateandmaintainobjectssuchastables,indexes,andviewsSQL*plusWorksheetProvidesthecapabilitytoissueSQLstatementsagainstanydatabase北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.5DBA工具DBAToolsToolDescri464.4ORACLE數據庫規劃與實施ORACLE為信息系統提供了一個開放、綜合、集成的方法。使用ORACLE數據庫進行信息系統開發的步驟可以歸納為如下過程:建ORACLE數據庫建表空間建回滾段建用戶建數據庫對象開發本節介紹ORACLE數據庫的規劃與實施:4.4.1數據庫應用程序類型4.4.4ORACLE對象設計4.4.2ORACLE空間設計4.4.5DBA工具4.4.3ORACLE安全設計北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4ORACLE數據庫規劃與實施ORACLE為信息系統提474.4.1數據庫應用程序類型規劃和配置數據庫,需要知道將要操作數據庫的事務有什么,這些事務訪問數據庫的頻率有多大。針對不同的事務訪問情形,對內存的要求不同,磁盤I/O操作的情形也不同。只有設置合適的ORACLE實例,才能使數據庫應用系統獲得快速、準確、可靠的事務響應。ORACLE既可以設置成處理長的密集型事務的系統,也可以設置成處理大量的小型快速事務的系統。有三種通用的數據庫設置類型:聯機事務處理(OLTP)決策支持系統(DSS)批量作業系統混合系統北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型規劃和配置數據庫,需要知道將要484.4.1數據庫應用程序類型聯機事務處理(OLTP)OLTP系統是一個包含繁重DML的應用,其面向事務的活動主要包括更新,但也包括一些插入和刪除。典型的例子是用于航空公司和旅館的預定系統。OLTP系統可以允許有很高的并發性。
OLTP的特點是有大量短的事務高頻率地訪問數據庫,每一個事務操作的數據量不是很多,但事務比較頻繁,而且要求數據庫響應事務的速度快。一般來說OLTP系統需要24*7地響應對數據庫的請求。根據這些要求,我們應該從以下幾方面考慮:1)大量的小回滾段。因為事務都不太大,對回滾段空間的需求不可能很大,但事務數量多,引發回滾段數量的增大。應該創建大量小的回滾段,把事務對回滾段的爭用減到最小。標準的配置可以考慮每四個活動事務用一個回滾段,每個事務接受一個區間。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型聯機事務處理(OLTP)北京郵494.4.1數據庫應用程序類型聯機事務處理(OLTP)2)OLTP應用的表可能插入或者刪除記錄,所以存放易變表和索引的表空間應被分配到它們最大的期望容量。3)適當的估計重寫日志緩沖區和日志文件大小,減少日志寫和日志切換的頻率,盡可能降低對響應事務請求的影響,另外頻繁的檢查點也可能影響事務響應速度。4)擁有大型共享池。不同客戶可能執行同樣的SQL語句,SQL在共享池中緩沖,性能可提高(應用程序的SQL語句應當統一,另外WHERE中使用綁定變量查詢而不是直接的值查詢,使不同值的查詢共享SQL的執行計劃)。5)數據擁有單獨的索引。OLTP的事務請求基本在規劃設計范圍之內,建立單獨有效的索引,并在獨立的表空間中創建主鍵和其他索引,且存放在獨立的存儲器上。6)使用小型臨時段。需要小的排序應在內存中完成,盡量避免OLTP系統對臨時段的請求進入磁盤。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型聯機事務處理(OLTP)北京郵504.4.1數據庫應用程序類型決策支持系統(DSS)DSS系統通常是一個大型的、包含歷史性內容的只讀數據庫,通常用于簡單的固定查詢或特別查詢。夜間處理任務被認為是DSS,查詢(選擇)是DSS的主要活動。根據這些要求,我們應該從以下幾方面考慮:1)擁有少量的較大的回滾段。大型工作要創建大型的回滾段,使用SETTRANSACTIONUSERROLLBACKSEGMENT語句使事務強制使用專用回滾段。2)為分類排序創建大型臨時表空間,DSS經常超出內存的使用空間而從內存轉入磁盤(臨時表空間)。3)使用較小的共享SQL區域而采用較大的數據緩沖區高速緩沖。DSS中SQL的執行頻率并不大,無需考慮SQL語句的共享,但應增加數據庫緩沖區高速緩沖的容量,使得更多的數據塊和回滾段在內存中高速緩沖。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型決策支持系統(DSS)北京郵電514.4.1數據庫應用程序類型決策支持系統(DSS)
4)如前所述,DSS希望Oracle塊一次讀取盡可能多的行。因為DSS查詢一般觸發整個表掃描,所以希望通過讀取多個連續的塊使系統讀取的塊達到最大值。把DB_BLOCK_SIZE和DB_FILE_MULTIBLOCK_READ_COUNT參數設置得盡可能高些。5)運行的SQL應當刪除不必要的排序并充分利用索引,以減少對臨時表空間和回滾段的壓力。2種方法:在沒有可以選擇的良好索引時不使用任何索引或屏蔽使用某些索引(參見4.3);使用位圖索引。6)不要在DSS應用代碼中使用綁定變量。在OLTP下,希望最小化應用進程開銷(語法分析)。然而,DSS的查詢,語法分析占用整個查詢時間的比例會更小。假如使用綁定變量,優化程序不能調用它所存儲的統計信息(通過ANALYZE命令)以選出存取數據的最好方法。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型決策支持系統(DSS)北京郵電524.4.1數據庫應用程序類型批量作業系統批作業處理系統是作用于數據庫的非交互性的自動應用。它通常含有繁忙DML語句并有較低的并發性。另外還有一些其他的應用類型:OLAP(聯機分析處理)系統可提供分析服務。該系統在數學、統計學、集合以及大量的計算方面區別于OLTP或DSS模型。可以把OLAP看作是在OLTP系統或DSS之上的一個擴展或一個附加的功能層次。地理信息系統(GeographicInformationSystems,GIS)或有關空間的數據庫和OLAP數據庫相集成,提供圖表的映射能力。例如用于社會統計的人口統計數據庫。VCDB(可變基數數據庫),這類數據庫通常被用作一個處理系統的數據庫后端,這樣就會導致在數據處理期間,數據庫中的表顯著地增長或收縮。基數是指在一個給定時間里一個表中行的數目。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型批量作業系統北京郵電大學軟件學534.4.1數據庫應用程序類型混合系統混合系統混合了前面介紹的幾種類型。許多實際應用系統往往是OLTP和DSS甚至其他模型的集成。從前面OLTP和DSS的需求對比來看,OLTP和DSS的基本特征似乎相反,如何協調這兩種需求的矛盾?一般有三種解決方法:1)在一個系統中的OLTP和DSS之間節流,白天運行OLTP,而夜間進行批量處理。即白天運行OLTP配置的數據庫,夜間跳回DSS配置的實例。這種方法的實際操作模式可以是以下兩種:OLTP不支持24*7工作方式,DSS時不支持OLTP;DSS操作的系統反跳之后,OLTP可以使用,但系統性能將受影響。DBA需要測試DSS和服務器反跳對Web用戶的影響,必要時選擇其他解決辦法來調整系統服務模式。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型混合系統北京郵電大學軟件學院544.4.1數據庫應用程序類型混合系統2)同時運行兩個數據庫,一個服務于OLTP,一個服務于DSS。OLTP數據庫進行實時更新,在有規則的時間間隔內,將變化傳遞給DSS數據庫。這種方法的實際操作模式可以多種。DBA可以夜間執行部分或全部OLTP系統的輸出,并輸入到DSS系統。較好的解決方法是對實時方式下傳遞變化的連接數據庫使用復制技術,將變化的數據復制記錄下來,OLTP數據庫只傳遞變化的數據給DSS數據庫。第三種方法是使ORACLE中OLTP數據庫的歸檔日志自動應用于DSS數據庫,保證DSS系統緊跟在OLTP系統之后,DSS數據庫不僅作為OLTP的備用數據庫,而且自己又獨立地服務于決策支持。盡管這種方式可能不能保證OLTP和DSS數據庫的絕對同步,但在DSS的實時性要求不是很強時,是一種很好的方法。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型混合系統北京郵電大學軟件學院554.4.1數據庫應用程序類型混合系統3)在一個系統中同時運行OLTP和DSS。這是最普遍的解決方法。系統經常作為OLTP開始活動,逐漸加入DSS需求使系統漸漸成為混合系統。在這種情況下,DBA必須在OLTP和批量處理之間尋找平衡,并且應該偏向于OLTP用戶,創建與OLTP同樣多的回滾段,而且要創建少量專門為大型事務指定的大型回滾段,同時將高速緩沖和共享池保持合理的容量,使系統既支持OLTP對共享池的需求又支持DSS對數據庫緩沖區高速緩沖的需求。還要確保臨時表空間夠批量排序使用,同時將OLTP排序控制在內存中。推薦在這種情況下使用專用服務器,并且配置ORACLE并行服務器(OracleParallelServer,OPS),因為OPS允許多個實例訪問同一個物理數據庫,一個實例為OLTP配置,另一些為批量處理配置。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.1數據庫應用程序類型混合系統北京郵電大學軟件學院564.4.2ORACLE空間設計ORACLE數據庫的結構包括邏輯結構和物理結構。在進行應用系統數據庫設計時,空間設計是非常重要的,它與今后運行系統的性能、可用、維護、管理等有密切的關系。物理結構與邏輯結構之間的關系如下圖:TablespaceSegmentExtentOracleblockDatafileOSblockDatabaseLogicalPhysical北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2ORACLE空間設計ORACLE數據庫的結構包括574.4.2.1ORACLE表空間設計ORACLE表空間分為兩大類:系統表空間和非系統表空間。系統表空間是建庫時自動創建的主要用于存儲數據字典、系統回滾段;非系統表空間是由用戶創建的表空間,主要用于分離段,方便用戶的數據管理。ORACLE推薦一種最佳靈活結構OFA(OptimalFlexibleArchitecture)可以用于表空間的設計。OFA是ORACLE軟件安裝和數據文件的推薦目錄結構。OFA只是一組建議,并不是絕對原則。下面介紹基本OFA和擴展OFA。基本OFA1)系統表空間(SYSTEM):系統表空間不具有重建性,只用于存放數據字典,其他內容如數據段信息等都應從系統表空間中移出。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設計ORACLE表空間分為584.4.2.1ORACLE表空間設計基本OFA2)分離應用程序數據段(DATA):應用程序數據段應是一個獨立的表空間,即數據表空間。建立單獨數據表空間的理由是:應用程序與數據文件分離有利于減少資源爭用,簡化文件管理;另外,當數據段產生碎片時利于管理。3)分離應用程序索引段(INDEX):索引段不應與相關的數據段存儲在一個表空間,以免產生資源爭用。由于表增長和不正確的尺寸設置可能產生索引段的碎片,分離應用程序索引段,可以減少整理數據表或索引碎片所需的管理代價。從數據表分離相應的索引也可以通過ALTERINDEX命令來實現。4)分離工具段(TOOLS):許多第三方工具會將數據存儲在系統表空間中,為了避免這種情況,可將它們的對象移出系統表空間。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設計基本OFA北京郵電大學594.4.2.1ORACLE表空間設計基本OFA5)分離回滾段(RBS):回滾段會針對巨型事務動態擴展尺寸,也會動態收縮到指定的優化尺寸(參見4.3)。回滾段的I/O通常與數據和索引表空間的I/O同步。將回滾段分離出來是出于減少I/O沖突的考慮。6)分離臨時段(TEMP):臨時段是數據庫中動態生成的對象,用來存儲巨型排序操作(如SELECTDISTINCT,UNION,CREATEINDEX等)的數據。由于動態特性,臨時段不應與其他類型段一起存儲。通常,在建立用戶時,將這些用戶使用的臨時數據段設置到臨時表空間。7)分離用戶(USER):為用戶帳號建立一個USER表空間,在建立用戶時將用戶的操作數據放在用戶表空間。以上7個表空間是最基本的表空間,也是傳統OFA的基本組成部分。隨著應用的深入,又有擴展的OFA。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設計基本OFA北京郵電大學604.4.2.1ORACLE表空間設計擴展的OFA1)分離低使用數據段(DATA_2):在基表中,有一些是動態數據,一些是靜態數據,而動態數據和靜態數據常常被并發操作。靜態數據在實際使用時只是被提取信息,可以把這些靜態數據表設置到一個專用表空間(DATA_2),從而避免并發操作沖突。2)分離低使用索引段(INDEX_2):數據表分為靜態表和動態表,則索引亦如此。對于靜態表的索引表應建立靜態索引表空間(INDEX_2)。如果索引已經生成,可以使用ALTERINDEX語句來移動這些索引到一個新的表空間中。3)分離工具索引(TOOLS_1):如果數據庫對TOOLS表空間有較多的操作,則這些工具表索引可以移到另一個表空間(TOOLS_1),這樣TOOLS表空間就可看成工具數據表空間。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設計擴展的OFA北京郵電大614.4.2.1ORACLE表空間設計擴展的OFA4)分離特殊回滾段(RBS_2):RBS表空間的回滾段必須有適當的大小和數量,以適應應用的使用。但大型事務可能超過回滾段的配置。為了避免這種情況,可以設置一個特殊回滾段,使大型事務只使用特殊回滾段。建立一個特殊表空間來容納這個特殊回滾段。5)分離特殊用戶臨時段(TEMP_USER):和特殊回滾段一樣,一些特殊用戶在做特殊操作時,可以設置一個特殊用戶臨時表空間,這樣便于系統管理。附加的特殊應用OFA擴展1)SNAPS:用于快照(Snapshots)。快照表是分布式數據庫處理的一種特殊表,為此類表建立相應的表空間。2)PARTITIONS:用于分區(Partition)。分區是為了分配I/O并且簡化巨型表的管理。3)TEMP_WORK:用于大型數據裝載。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.1ORACLE表空間設計擴展的OFA北京郵電大624.4.2.2數據文件設置根據ORACLE數據庫結構特點,每個表空間至少要有一個數據文件,因此,應用系統的每個表空間均具有各自的數據文件。Oracle7.2以后可以支持數據文件大小的重新定義,當表空間需要擴充時,不必為其增加數據文件,而簡單地將其擴充即可,避免了預先分配過大的存儲空間及過多數據文件的問題。同時可以支持數據文件的自動擴展,避免當表空間已滿時,DBA手工擴充表空間對用戶使用的影響。對于一個不太大的數據庫,可以將數據庫軟件和數據文件都放置在一個磁盤上,將它們設計成不同的子文件即可。對于大型數據庫,需要指定哪些文件放置在哪個磁盤上。北京郵電大學軟件學院郭文明2003.06郭文明2003.06.054.4.2.2數據文件設置根據ORACLE數據庫結構特點,634.4.2.2數據文件設置表空間的磁盤分配:一般情況下,90%以上的I/O操作集中在系統表空間、數據表空間、回滾表空間、索引表空間這4個表空間上,所以這4個表空間應單獨存儲在不同的磁盤上。系統文件的規劃:ORACLE有聯機日志文件、歸檔日志文件、控制文件和系統軟件文件等,如何放置這些系統文件也是一件重要的任務。1)聯機日志文件:每個數據庫至少要有兩個聯機日志文件,由于聯機日志文件中保留了數據庫的當前事務,所以它無法從
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 客戶禮品費管理制度
- 家樂福考勤管理制度
- 家居實訓室管理制度
- 庫房輔料庫管理制度
- 引進種雞苗管理制度
- 影視類項目管理制度
- 微商代理商管理制度
- 快易購銷售管理制度
- 念佛堂值班管理制度
- 總公司安全管理制度
- 2024年高考物理熱點磁場中的旋轉圓、放縮圓、平移圓、磁聚焦模型(學生版)
- 三年級下冊語文單元字詞專項練習-第1單元
- 鳥巢建筑分析
- 聯合體施工組織設計審批流程
- 中華民族共同體概論課件專家版10第十講 中外會通與中華民族鞏固壯大(明朝時期)
- 2021年10月自考02326操作系統試題及答案含解析
- 中華民族共同體概論課件專家版5第五講 大一統與中華民族共同體初步形成(秦漢時期)
- MOOC 大數據與法律檢索-湖南師范大學 中國大學慕課答案
- GB/T 19964-2024光伏發電站接入電力系統技術規定
- MSDS基礎知識培訓課件
- 疝氣護理課件
評論
0/150
提交評論