北京郵電大學(xué)軟件工程生的課程---數(shù)據(jù)庫(kù)設(shè)計(jì)開發(fā)-3
單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06,郭文明 2003.06.05,*,4.4,ORACLE,數(shù)據(jù)庫(kù)規(guī)劃與實(shí)施,ORACLE為信息系統(tǒng)提供了一個(gè)開放、綜合、集成的方法。使用ORACLE數(shù)據(jù)庫(kù)進(jìn)行信息系統(tǒng)開發(fā)的步驟可以歸納為如下過程:,建ORACLE,數(shù)據(jù)庫(kù),建表空間,建回滾段,建用戶,建數(shù)據(jù)庫(kù)對(duì)象,開發(fā),本節(jié)介紹ORACLE數(shù)據(jù)庫(kù)的規(guī)劃與實(shí)施:,4.4.1 數(shù)據(jù)庫(kù)應(yīng)用程序類型 4.4.4 ORACLE對(duì)象設(shè)計(jì),4.4.2 ORACLE空間設(shè)計(jì) 4.4.5 DBA工具,4.4.3 ORACLE安全設(shè)計(jì),北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫(kù)應(yīng)用程序類型,規(guī)劃和配置數(shù)據(jù)庫(kù),需要知道將要操作數(shù)據(jù)庫(kù)的事務(wù)有什么,這些事務(wù)訪問數(shù)據(jù)庫(kù)的頻率有多大。針對(duì)不同的事務(wù)訪問情形,對(duì)內(nèi)存的要求不同,磁盤I/O操作的情形也不同。,只有設(shè)置合適的ORACLE實(shí)例,才能使數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)獲得快速、準(zhǔn)確、可靠的事務(wù)響應(yīng)。,ORACLE既可以設(shè)置成處理長(zhǎng)的密集型事務(wù)的系統(tǒng),也可以設(shè)置成處理大量的小型快速事務(wù)的系統(tǒng)。有三種通用的數(shù)據(jù)庫(kù)設(shè)置類型:,聯(lián)機(jī)事務(wù)處理(OLTP),決策支持系統(tǒng)(DSS),批量作業(yè)系統(tǒng),混合系統(tǒng),北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫(kù)應(yīng)用程序類型,聯(lián)機(jī)事務(wù)處理(OLTP),OLTP系統(tǒng)是一個(gè)包含繁重DML的應(yīng)用,其面向事務(wù)的活動(dòng)主要包括更新,但也包括一些插入和刪除。典型的例子是用于航空公司和旅館的預(yù)定系統(tǒng)。OLTP系統(tǒng)可以允許有很高的并發(fā)性。,OLTP的特點(diǎn)是有大量短的事務(wù)高頻率地訪問數(shù)據(jù)庫(kù),每一個(gè)事務(wù)操作的數(shù)據(jù)量不是很多,但事務(wù)比較頻繁,而且要求數(shù)據(jù)庫(kù)響應(yīng)事務(wù)的速度快。,一般來說OLTP系統(tǒng)需要24*7地響應(yīng)對(duì)數(shù)據(jù)庫(kù)的請(qǐng)求。根據(jù)這些要求,我們應(yīng)該從以下幾方面考慮:,1)大量的小回滾段。因?yàn)槭聞?wù)都不太大,對(duì)回滾段空間的需求不可能很大,但事務(wù)數(shù)量多,引發(fā)回滾段數(shù)量的增大。應(yīng)該創(chuàng)建大量小的回滾段,把事務(wù)對(duì)回滾段的爭(zhēng)用減到最小。標(biāo)準(zhǔn)的配置可以考慮每四個(gè)活動(dòng)事務(wù)用一個(gè)回滾段,每個(gè)事務(wù)接受一個(gè)區(qū)間。,北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫(kù)應(yīng)用程序類型,聯(lián)機(jī)事務(wù)處理(OLTP),2)OLTP應(yīng)用的表可能插入或者刪除記錄,所以存放易變表和索引的表空間應(yīng)被分配到它們最大的期望容量。,3)適當(dāng)?shù)墓烙?jì)重寫日志緩沖區(qū)和日志文件大小,減少日志寫和日志切換的頻率,盡可能降低對(duì)響應(yīng)事務(wù)請(qǐng)求的影響,另外頻繁的檢查點(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ù)請(qǐng)求基本在規(guī)劃設(shè)計(jì)范圍之內(nèi),建立單獨(dú)有效的索引,并在獨(dú)立的表空間中創(chuàng)建主鍵和其他索引,且存放在獨(dú)立的存儲(chǔ)器上。,6)使用小型臨時(shí)段。需要小的排序應(yīng)在內(nèi)存中完成,盡量避免OLTP系統(tǒng)對(duì)臨時(shí)段的請(qǐng)求進(jìn)入磁盤。,北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫(kù)應(yīng)用程序類型,決策支持系統(tǒng)(DSS),DSS系統(tǒng)通常是一個(gè)大型的、包含歷史性內(nèi)容的只讀數(shù)據(jù)庫(kù),通常用于簡(jiǎn)單的固定查詢或特別查詢。夜間處理任務(wù)被認(rèn)為是DSS,,查詢(選擇)是DSS的主要活動(dòng),。,根據(jù)這些要求,我們應(yīng)該從以下幾方面考慮:,1)擁有少量的較大的回滾段。大型工作要?jiǎng)?chuàng)建大型的回滾段,使用SET TRANSACTION USER ROLLBACK SEGMENT語句使事務(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ù)庫(kù)緩沖區(qū)高速緩沖的容量,使得更多的數(shù)據(jù)塊和回滾段在內(nèi)存中高速緩沖。,北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫(kù)應(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)刪除不必要的排序并充分利用索引,以減少對(duì)臨時(shí)表空間和回滾段的壓力。2種方法:在沒有可以選擇的良好索引時(shí)不使用任何索引或屏蔽使用某些索引(參見4.3);使用位圖索引。,6)不要在DSS應(yīng)用代碼中使用綁定變量。在OLTP下,希望最小化應(yīng)用進(jìn)程開銷(語法分析)。然而,DSS的查詢,語法分析占用整個(gè)查詢時(shí)間的比例會(huì)更小。假如使用綁定變量,優(yōu)化程序不能調(diào)用它所存儲(chǔ)的統(tǒng)計(jì)信息(通過ANALYZE命令)以選出存取數(shù)據(jù)的最好方法。,北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫(kù)應(yīng)用程序類型,批量作業(yè)系統(tǒng),批作業(yè)處理系統(tǒng)是作用于數(shù)據(jù)庫(kù)的非交互性的自動(dòng)應(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)(Geographic Information Systems,GIS)或有關(guān)空間的數(shù)據(jù)庫(kù)和OLAP數(shù)據(jù)庫(kù)相集成,提供圖表的映射能力。例如用于社會(huì)統(tǒng)計(jì)的人口統(tǒng)計(jì)數(shù)據(jù)庫(kù)。,VCDB(可變基數(shù)數(shù)據(jù)庫(kù)),這類數(shù)據(jù)庫(kù)通常被用作一個(gè)處理系統(tǒng)的數(shù)據(jù)庫(kù)后端,這樣就會(huì)導(dǎo)致在數(shù)據(jù)處理期間,數(shù)據(jù)庫(kù)中的表顯著地增長(zhǎng)或收縮?;鶖?shù)是指在一個(gè)給定時(shí)間里一個(gè)表中行的數(shù)目。,北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫(kù)應(yīng)用程序類型,混合系統(tǒng),混合系統(tǒng)混合了前面介紹的幾種類型。許多實(shí)際應(yīng)用系統(tǒng)往往是OLTP和DSS甚至其他模型的集成。,從前面OLTP和DSS的需求對(duì)比來看,OLTP和DSS的基本特征似乎相反,如何協(xié)調(diào)這兩種需求的矛盾?一般有三種解決方法:,1),在一個(gè)系統(tǒng)中的OLTP和DSS之間節(jié)流,,白天運(yùn)行OLTP,而夜間進(jìn)行批量處理。即白天運(yùn)行OLTP配置的數(shù)據(jù)庫(kù),夜間跳回DSS配置的實(shí)例。,這種方法的實(shí)際操作模式可以是以下兩種:OLTP不支持24*7工作方式,DSS時(shí)不支持OLTP;DSS操作的系統(tǒng)反跳之后,OLTP可以使用,但系統(tǒng)性能將受影響。DBA需要測(cè)試DSS和服務(wù)器反跳對(duì)Web用戶的影響,必要時(shí)選擇其他解決辦法來調(diào)整系統(tǒng)服務(wù)模式。,北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫(kù)應(yīng)用程序類型,混合系統(tǒng),2),同時(shí)運(yùn)行兩個(gè)數(shù)據(jù)庫(kù),一個(gè)服務(wù)于OLTP,一個(gè)服務(wù)于DSS。,OLTP數(shù)據(jù)庫(kù)進(jìn)行實(shí)時(shí)更新,在有規(guī)則的時(shí)間間隔內(nèi),將變化傳遞給DSS數(shù)據(jù)庫(kù)。,這種方法的實(shí)際操作模式可以多種。DBA可以夜間執(zhí)行部分或全部OLTP系統(tǒng)的輸出,并輸入到DSS系統(tǒng)。較好的解決方法是對(duì)實(shí)時(shí)方式下傳遞變化的連接數(shù)據(jù)庫(kù)使用復(fù)制技術(shù),將變化的數(shù)據(jù)復(fù)制記錄下來,OLTP數(shù)據(jù)庫(kù)只傳遞變化的數(shù)據(jù)給DSS數(shù)據(jù)庫(kù)。第三種方法是使ORACLE中OLTP數(shù)據(jù)庫(kù)的歸檔日志自動(dòng)應(yīng)用于DSS數(shù)據(jù)庫(kù),保證DSS系統(tǒng)緊跟在OLTP系統(tǒng)之后,DSS數(shù)據(jù)庫(kù)不僅作為OLTP的備用數(shù)據(jù)庫(kù),而且自己又獨(dú)立地服務(wù)于決策支持。盡管這種方式可能不能保證OLTP和DSS數(shù)據(jù)庫(kù)的絕對(duì)同步,但在DSS的實(shí)時(shí)性要求不是很強(qiáng)時(shí),是一種很好的方法。,北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06,郭文明 2003.06.05,4.4.1 數(shù)據(jù)庫(kù)應(yīng)用程序類型,混合系統(tǒng),3),在一個(gè)系統(tǒng)中同時(shí)運(yùn)行OLTP和DSS,。這是最普遍的解決方法。系統(tǒng)經(jīng)常作為OLTP開始活動(dòng),逐漸加入DSS需求使系統(tǒng)漸漸成為混合系統(tǒng)。,在這種情況下,DBA必須在OLTP和批量處理之間尋找平衡,并且應(yīng)該偏向于OLTP用戶,創(chuàng)建與OLTP同樣多的回滾段,而且要?jiǎng)?chuàng)建少量專門為大型事務(wù)指定的大型回滾段,同時(shí)將高速緩沖和共享池保持合理的容量,使系統(tǒng)既支持OLTP對(duì)共享池的需求又支持DSS對(duì)數(shù)據(jù)庫(kù)緩沖區(qū)高速緩沖的需求。還要確保臨時(shí)表空間夠批量排序使用,同時(shí)將OLTP排序控制在內(nèi)存中。,推薦在這種情況下使用專用服務(wù)器,并且配置ORACLE并行服務(wù)器(Oracle Parallel Server,OPS),因?yàn)镺PS允許多個(gè)實(shí)例訪問同一個(gè)物理數(shù)據(jù)庫(kù),一個(gè)實(shí)例為OLTP配置,另一些為批量處理配置。,北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06,郭文明 2003.06.05,4.4.2ORACLE空間設(shè),計(jì),計(jì),ORACLE數(shù)據(jù)庫(kù)的,結(jié),結(jié)構(gòu)包括邏,輯,輯結(jié)構(gòu)和物,理,理結(jié)構(gòu)。在,進(jìn),進(jìn)行應(yīng)用系,統(tǒng),統(tǒng)數(shù)據(jù)庫(kù)設(shè),計(jì),計(jì)時(shí),空間,設(shè),設(shè)計(jì)是非常,重,重要的,它,與,與今后運(yùn)行,系,系統(tǒng)的性能,、,、可用、維,護(hù),護(hù)、管理等,有,有密切的關(guān),系,系。物理結(jié),構(gòu),構(gòu)與邏輯結(jié),構(gòu),構(gòu)之間的關(guān),系,系如下圖:,Tablespace,Segment,Extent,Oracle block,Datafile,OS block,Database,Logical,Physical,北京郵電大,學(xué),學(xué)軟件學(xué)院,郭,郭,文,文明2003.06,郭文明2003.06.05,4.4.2.1 ORACLE表,空,空間設(shè)計(jì),ORACLE表空間分,為,為兩大類:,系,系統(tǒng)表空間,和,和非系統(tǒng)表,空,空間。系統(tǒng),表,表空間是建,庫(kù),庫(kù)時(shí)自動(dòng)創(chuàng),建,建的主要用,于,于存儲(chǔ)數(shù)據(jù),字,字典、系統(tǒng),回,回滾段;非,系,系統(tǒng)表空間,是,是由用戶創(chuàng),建,建的表空間,,,,主要用于,分,分離段,方,便,便用戶的數(shù),據(jù),據(jù)管理。ORACLE,推,推薦一種最,佳,佳靈活結(jié)構(gòu)OFA(Optimal FlexibleArchitecture)可,以,以用于表空,間,間的設(shè)計(jì)。,OFA是ORACLE,軟,軟件安裝和,數(shù),數(shù)據(jù)文件的,推,推薦目錄結(jié),構(gòu),構(gòu),。OFA只,是,是一組建議,,,,并不是絕,對(duì),對(duì)原則。下,面,面介紹基本OFA和擴(kuò),展,展OFA。,基本OFA,1)系統(tǒng)表,空,空間(SYSTEM),:,:系統(tǒng)表空,間,間不具有重,建,建性,只用,于,于存放數(shù)據(jù),字,字典,其他,內(nèi),內(nèi)容如數(shù)據(jù),段,段信息等都,應(yīng),應(yīng)從系統(tǒng)表,空,空間中移出,。,。,北京郵電大,學(xué),學(xué)軟件學(xué)院,郭,郭,文,文明2003.06,郭文明2003.06.05,4.4.2.1 ORACLE表,空,空間設(shè)計(jì),基本OFA,2)分離應(yīng),用,用程序數(shù)據(jù),段,段(DATA):應(yīng)用,程,程序數(shù)據(jù)段,應(yīng),應(yīng)是一個(gè)獨(dú),立,立的表空間,,,,即數(shù)據(jù)表,空,空間。建立,單,單獨(dú)數(shù)據(jù)表,空,空間的理由,是,是:應(yīng)用程,序,序與數(shù)據(jù)文,件,件分離有利,于,于減少資源,爭(zhēng),爭(zhēng)用,簡(jiǎn)化,文,文件管理;,另,另外,當(dāng)數(shù),據(jù),據(jù)段產(chǎn)生碎,片,片時(shí)利于管,理,理。,3)分離應(yīng),用,用程序索引,段,段(INDEX):索,引,引段不應(yīng)與,相,相關(guān)的數(shù)據(jù),段,段存儲(chǔ)在一,個(gè),個(gè)表空間,,以,以免產(chǎn)生資,源,源爭(zhēng)用。由,于,于表增長(zhǎng)和,不,不正確的尺,寸,寸設(shè)置可能,產(chǎn),產(chǎn)生索引段,的,的碎片,分,離,離應(yīng)用程序,索,索引段,可,以,以減少整理,數(shù),數(shù)據(jù)表或索,引,引碎片所需,的,的管理代價(jià),。,。從數(shù)據(jù)表,分,分離相應(yīng)的,索,索引也可以,通,通過ALTER INDEX命令,來,來實(shí)現(xiàn)。,4)分離工,具,具段(TOOLS):,許,許多第三方,工,工具會(huì)將數(shù),