北郵數(shù)據庫設計與開發(fā)_第1頁
北郵數(shù)據庫設計與開發(fā)_第2頁
北郵數(shù)據庫設計與開發(fā)_第3頁
北郵數(shù)據庫設計與開發(fā)_第4頁
北郵數(shù)據庫設計與開發(fā)_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3 4.3 ORACLE數(shù)據庫存取管理數(shù)據庫存取管理 數(shù)據庫管理員的任務是使所有運行Oracle數(shù)據庫的系統(tǒng)能夠有效的工作。數(shù)據庫管理員為每一個用戶提供技術支持,并且應當對Oracle軟件中出現(xiàn)的所有問題都相當熟悉。除上一節(jié)介紹的ORACLE實例設置外,ORACLE數(shù)據庫的存儲對數(shù)據庫的性能也有很大影響,另外ORACLE的安全性、備份與恢復機制也在本節(jié)中介紹。 4.3.1 管理ORACLE存儲 4.3.2 ORACLE安全管理 4.3.3 ORACLE備份與恢復 北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義

2、4.3.1 4.3.1 管理管理ORACLEORACLE存儲存儲 在2.1的數(shù)據庫數(shù)據存儲介紹中,我們已經知道ORACLE的數(shù)據存取是面向數(shù)據塊(頁)的;在4.1中,我們知道ORACLE數(shù)據庫的存儲體系是表空間、段、區(qū)間、塊,下面將集中討論ORACLE存儲對性能的影響。 4.3.1.1管理數(shù)據庫對象 4.3.1.2理解數(shù)據庫碎片 4.3.1.3管理回滾段 4.3.1.4鑒別存儲問題 北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.1 4.3.1.1 管理管理ORACLEORACLE數(shù)據庫對象數(shù)據庫對象管理Oracle塊 Oracle服務器尋址的最小存儲單元是Orac

3、le塊。無論段是一個表、索引、簇或者其他對象,塊結構是相同的。設計一個性能最優(yōu)的數(shù)據庫要從設計一個性能最優(yōu)的數(shù)據庫要從對對OracleOracle塊適塊適當?shù)呐渲煤凸芾黹_始當?shù)呐渲煤凸芾黹_始。 Oracle塊是由三部分組成的:塊頭、數(shù)據存儲區(qū)、自由空間區(qū)。塊頭包含有關塊的信息(什么類型的段數(shù)據存儲在塊中,什么段在塊中有數(shù)據,塊地址以及指向存儲在其中的實際行的指針)。塊頭由一個固定部分和一個可變部分組成,在塊中塊頭通常使用85到100字節(jié)。 在在OracleOracle塊中,主要關注管理數(shù)據存儲區(qū)域和自由塊中,主要關注管理數(shù)據存儲區(qū)域和自由空間區(qū)域空間區(qū)域。數(shù)據區(qū)域是塊中實際存儲行的地方。自由空

4、間區(qū)是一個保留的區(qū)域,被定義為總的可用空間的百分數(shù),用于存儲有關在塊中的行將來更新的信息。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.1 4.3.1.1 管理管理ORACLEORACLE數(shù)據庫對象數(shù)據庫對象理解PCTFREE與PCTUSED PCTFREEPCTFREE和和PCTUSEDPCTUSED是應用于段的兩個存儲是應用于段的兩個存儲參數(shù)參數(shù),當Oracle向數(shù)據庫中寫信息時,它必須首先在一個段的分配區(qū)中找到一個或更多塊來存儲信息。 如果在塊中自由空間的百分數(shù)比PCTFREE參數(shù)大得多,它就可以用來存儲新信息。當自由空間的百分數(shù)低于PCTFREE時,塊就被

5、認為是“滿的”。 當塊中使用空間的百分數(shù)低于PCTUSED時,它就可以被用來存儲新信息。 北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.1 4.3.1.1 管理管理ORACLEORACLE數(shù)據庫對象數(shù)據庫對象理解PCTFREE與PCTUSED 使使OracleOracle保持足夠的額外空間用于行增長保持足夠的額外空間用于行增長( (修改結構修改結構) ),而不需要跨塊,而不需要跨塊存儲存儲。保持行被限制在一個單獨的塊中有助于使數(shù)據庫以最高性能運行。 PCTFREE和PCTUSED的值不能等于100%。由數(shù)據庫引擎處理引起的系統(tǒng)開銷可以通過在PCTFREE和PCTU

6、SED之間留至少20%的裕量而得到解決。缺省PCTFREE為10,PCTUSED為40。 PCTFREE和PCTUSED在數(shù)據庫段的存儲子句中被指定??梢杂胐ba_tables、dba_clusters或者dba_indexes數(shù)據字典視圖查詢它們目前的值。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.1 4.3.1.1 管理管理ORACLEORACLE數(shù)據庫對象數(shù)據庫對象索引與PCTUSED/PCTFREE 索引使用PCTFREE和PCTUSED與表相比不同。只有當一個索引最初建立時這些參數(shù)適用只有當一個索引最初建立時這些參數(shù)適用。PCTFREE的設置應讓索引結

7、構最初在葉塊中建立時就有足夠的空間,這樣就可以增加輔助關鍵字,而不必拆分已存在的葉塊提供給新關鍵字。索引不索引不必必設置設置PCTUSEDPCTUSED。 當為一個已存在的表建立新索引時,如果預料到表中的數(shù)據較穩(wěn)定,修改不多時,可選擇較小的PCTFREE,反之則應選擇較大的值。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.1 4.3.1.1 管理管理ORACLEORACLE數(shù)據庫對象數(shù)據庫對象管理表存儲區(qū) 創(chuàng)建表時,系統(tǒng)自動在表空間中分配一個區(qū)間,構成數(shù)據段。表的空間需求是平均行長與行數(shù)的乘積。確定表的容量應該在表建立之前的設計階段完成。預期的增長和存儲參數(shù)值等問

8、題應該在建表時處理。ORACLEORACLE用如下方式用如下方式來為未來的數(shù)據預留空間來為未來的數(shù)據預留空間(參看2.1內容): 1)為表的數(shù)據段設置存儲參數(shù),控制每次分配的區(qū)間大小。 2)用存儲參數(shù)PCTFREE和PCTUSED控制構成數(shù)據段的區(qū)間中各個塊的空間利用率。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.1 4.3.1.1 管理管理ORACLEORACLE數(shù)據庫對象數(shù)據庫對象管理索引 當查詢語句中的WHERE子句表達式含有被索引的關鍵字時,ORACLE將自動啟動索引。 許多應用程序員(以及DBA)通過申請更多索引的辦法解決數(shù)據庫的性能問題。但更多的索更

9、多的索引引不僅會影響不僅會影響修改性能,修改性能,而且在一個查詢中并而且在一個查詢中并不是子句中涉及的索引都啟用不是子句中涉及的索引都啟用。 過多的索引過多的索引并不會一直提供比較好的并不會一直提供比較好的SELECTSELECT性能性能。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.1 4.3.1.1 管理管理ORACLEORACLE數(shù)據庫對象數(shù)據庫對象管理索引: 關于索引的管理和使用的幾點技巧: 1)組合索引是提高性能的有力工具,特別是針對只需從索引段讀出而不用從數(shù)據段的查詢。 2)如果在查詢子句中包含IS NULL或IS NOT NULL,索引將不在啟用。

10、3)在查詢條件中涉及多個索引,而又無明顯優(yōu)先可選項的查詢中,ORACLE一般按索引類型及列的性質選擇啟動索引,當有唯一性和非唯一性索引均可使用時,選擇只啟用唯一性索引。 4)在關鍵字列上進行運算可以屏蔽定義在此列上的索引。 5)在WHERE子句中若包含不等于(!=或NOT)運算,ORACLE將不在啟用索引,但可對其他列使用索引。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.1 4.3.1.1 管理管理ORACLEORACLE數(shù)據庫對象數(shù)據庫對象監(jiān)控回滾段 回滾段實際上是動態(tài)的,DBA應該集中精力保證每個回滾段及與之聯(lián)系的表空間有足夠保證每個回滾段及與之聯(lián)系的表空間

11、有足夠的空間用于增長的空間用于增長。 關心回滾段的目的在于合理地配置系統(tǒng)資源,提高回滾段的利用率,關鍵是各個事務要占用多大的存儲空間,其活動時間有多長。 北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.1 4.3.1.1 管理管理ORACLEORACLE數(shù)據庫對象數(shù)據庫對象管理臨時表空間和段 臨時段是SELECT語句在需要的時候向ORACLE申請的存儲資源,隨SELECT語句結束而注銷。只有查詢的直接結果與查詢的顯示結果有差異時才會申請臨時段,保存中間結果,比如DISTINCT、ORDER BY等。 在缺省情況下,臨時段創(chuàng)建在系統(tǒng)表空間中,而臨時段頻繁的創(chuàng)建和刪除勢

12、必造成系統(tǒng)表空間的效率降低,還會使系統(tǒng)表空間中的碎片增加,影響存儲器的有效使用。 應該設計一個專門的表空間來存放應該設計一個專門的表空間來存放臨時段,臨時段,最好將最好將其分配在與系統(tǒng)表空間和數(shù)據段不同的存儲器上,減其分配在與系統(tǒng)表空間和數(shù)據段不同的存儲器上,減少少I/OI/O沖突沖突。在創(chuàng)建用戶時,應同時為其指定臨時段所使用的表空間。臨時段臨時段表空間最起碼的容積應有兩倍表空間最起碼的容積應有兩倍的單個數(shù)據表信息量,還要考慮用戶數(shù)的單個數(shù)據表信息量,還要考慮用戶數(shù)。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.2 4.3.1.2 ORACLE數(shù)據庫碎片數(shù)據庫碎片

13、 DBA面對的最常見問題就是處理數(shù)據庫對象的處理數(shù)據庫對象的碎片碎片。碎片浪費空間,導致性能問題,并給數(shù)據庫對象的管理帶來困難。數(shù)據庫碎片通常是行被插入、修改和刪除以及對象被建立和刪除的結果,一個新建立的數(shù)據庫不會有碎片。只有當在數(shù)據庫上運行了一個或更多的活動應用程序后,才開始看到數(shù)據庫碎片的跡象。 數(shù)據庫碎片包括分裂成碎片的數(shù)據庫對象,分數(shù)據庫碎片包括分裂成碎片的數(shù)據庫對象,分裂成碎片的表空間、鏈接行和轉移行裂成碎片的表空間、鏈接行和轉移行。DBA應該,注意數(shù)據庫應用程序是如何執(zhí)行任務的,盡量避免數(shù)據庫應用程序運行過程中產生碎片,并且監(jiān)測數(shù)據庫運行狀態(tài),對產生的碎片進行必要的處理。北京郵電大

14、學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.2 4.3.1.2 ORACLE數(shù)據庫碎片數(shù)據庫碎片分裂成了碎片的表空間 表空間變成碎片是由于表空間變成碎片是由于運行運行錯誤錯誤或者或者表空間中的數(shù)表空間中的數(shù)據庫對象的無計劃撤消和重建造成的據庫對象的無計劃撤消和重建造成的。表空間不會由于任何行級動作而變成碎片。 Oracle盡力幫助DBA進行空間分配和管理。例如假定一開始表空間有四個10MB表段,現(xiàn)在刪除其中的兩個表,這兩個表都位于表空間的“中間”位置,SMON后臺進程自動地把兩個10MB的區(qū)間聚合為一個20MB區(qū)間。如果要刪除的兩個表不是位于表空間的“中間”位置,則形成表

15、空間碎片。 表空間碎片會導致:表空間中的空間被分離且不能有效地使用。 DBA_FREE_SPACEDBA_FREE_SPACE和和DBA_EXTENTSDBA_EXTENTS數(shù)據字典數(shù)據字典可以查詢數(shù)據庫的每個表空間中有多少自由空間是可用的和最大自由區(qū)間的容量以及每個表空間中自由區(qū)間的數(shù)目。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.2 4.3.1.2 ORACLE數(shù)據庫碎片數(shù)據庫碎片處理分裂成碎片的表空間 處理表空間碎片的最好方法是避免它,這需要仔細地計劃和管理。避免碎片的幾種提示方法: 1)把對象用相似的空間和增長特性聚合在一起。 2)如果可能,把它們的區(qū)間

16、設成相同的容量,這樣所有的對象可以共享釋放對象回收的區(qū)間。 3)使每個段的PCTINCREASE保持為0(注意Oracle7.3后,設置PCTINCREASE比0大會導致SMON自動聚合相鄰的自由區(qū)域)。 對確實需要對確實需要整理整理的的分裂成碎片的表空間,簡單分裂成碎片的表空間,簡單的的方方法是在表空間中導出損壞了的對象,刪除該對象,再法是在表空間中導出損壞了的對象,刪除該對象,再把它們導入回來把它們導入回來。這不僅能夠聚合自由空間,而且導出操作也可以把數(shù)據庫對象聚合到一個區(qū)域中。 北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.2 4.3.1.2 ORACLE數(shù)

17、據庫碎片數(shù)據庫碎片對象碎片 碎片問題可能發(fā)生在對象級。對象碎片會導致:由于在表和索引塊中的自由空間空洞導致空間的浪費;讀性能下降,因為數(shù)據不再被緊緊地排在一起,物理磁盤驅動器必需從一個比需要的大的磁盤表面區(qū)域中搜尋和讀數(shù)據。 對象碎片對象碎片的的三個特殊碎片類型:行轉移、行鏈接和三個特殊碎片類型:行轉移、行鏈接和過分擴展的段過分擴展的段。 DELETE操作可能會產生稀疏的塊稀疏的塊,因為這些塊不滿足PCTUSED條件,以至沒有成為自由空間。處理對象碎片的操作也會處理這類稀疏的塊問題。 DBA在一個經常改變的表空間中發(fā)現(xiàn)空間分配問題,并重建了表空間和它的所有對象,隨后數(shù)據庫性能提高了。這種在性能

18、上的提高是消除表空間碎片的結果,但也可能是消除對象級碎片帶來的性能的提高。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.2 4.3.1.2 ORACLE數(shù)據庫碎片數(shù)據庫碎片行轉移:行轉移在對行的修改引起行的長度比塊中可行轉移在對行的修改引起行的長度比塊中可利用空間大時發(fā)生利用空間大時發(fā)生。當發(fā)生行轉移時,行的一部分轉移到一個新的數(shù)據塊中,這個新數(shù)據塊的地址存儲在原始行單元中。當Oracle需要讀這個行時,它首先讀原始單元并找到一些數(shù)據和指向另一個塊的指針,再在這個塊中找到剩下的行數(shù)據。 為什么Oracle執(zhí)行行轉移而不是把整個行移到一個新塊中?因為移動一個行的單元

19、會引發(fā)ROWID的變化,而ROWID的變化引發(fā)一系列的變動,代價太大。 行轉移存在兩個問題: 1)Oracle必須讀每一個包括行數(shù)據的一部分或者是指向另一個包含著行數(shù)據的塊的指針的塊,無疑這會導致相當大地全系統(tǒng)的額外開銷。 2)Oracle必須和行數(shù)據一起存儲額外的指針來供給行轉移機制,浪費了一些磁盤空間。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.2 4.3.1.2 ORACLE數(shù)據庫碎片數(shù)據庫碎片行鏈接:行鏈接在行太長以致于不能放入任何一個數(shù)行鏈接在行太長以致于不能放入任何一個數(shù)據塊時發(fā)生據塊時發(fā)生。這導致該行被存儲在一個或多個數(shù)據塊的鏈中。行鏈接伴隨著包含

20、LONG、LONG RAW或者LOB數(shù)據類型的大行時發(fā)生。消除鏈接和轉移的行 鏈接和轉移的行會對數(shù)據庫的整體性能造成一系列的問題??梢酝ㄟ^下面的SQL語句檢查鏈接和轉移的行: analyze table customer list chained rows into cha; 這個命令把ROWID和數(shù)據庫中所有鏈接和轉移行的表存儲到cha表中。直接查詢cha表,即可找出行和表的特定信息。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.2 4.3.1.2 ORACLE數(shù)據庫碎片數(shù)據庫碎片消除鏈接和轉移的行 消除轉移的行的方法消除轉移的行的方法是直接查詢cha表,把轉移

21、的行從表中移出放入一臨時表中,然后再集中將臨時表中數(shù)據添加進表,即可消除轉移的行,該方法可能使原來相鄰存放的數(shù)據變得不再相鄰,并不一定能提高性能;另一個方法是使用全表導出,刪除表,之后使用導入重建該表,該方法最簡單、最全面,肯定會消除行轉移引起的性能問題,但無疑是消耗時間最長的。 行鏈接行鏈接是非常難調整的。唯一的解決辦法是縮短表解決辦法是縮短表的行長或者增加數(shù)據庫塊的大小的行長或者增加數(shù)據庫塊的大小。選擇前一種方法通常需要對表結構進行重新設計,但是后一種方法需要導出整個數(shù)據庫,重新創(chuàng)建數(shù)據庫然后全部導入,因為塊的大小調整必須重構數(shù)據庫。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與

22、開發(fā)講義4.3.1.3 4.3.1.3 管理回退段管理回退段 像其他段一樣,回滾段被定位在表空間中并且包含區(qū)間。每個數(shù)據庫有一個SYSTEM回滾段,它位于系統(tǒng)表空間中并在數(shù)據庫建立時建立,用戶不允許使用它并且它不能被刪除。正象第三章所述,ORACLE數(shù)據庫應該建立附加回滾段。 在有許多并行事務的系統(tǒng)上需要有更多區(qū)間的更多回滾段。事務越大,回滾段也就需要越大。因為回滾段通常允許增長,然后收縮回回滾段通常允許增長,然后收縮回到到存儲存儲參數(shù)參數(shù)OPTIMUMOPTIMUM的值的值,一定要特別小心以確保一個回滾段需要的空間裕量。 當創(chuàng)建的回滾段空間太小或者創(chuàng)建的回滾段太少時,Oracle通常出現(xiàn)“快

23、照太舊”的錯誤信息。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.3 4.3.1.3 管理回退段管理回退段回滾段操作 事務可以通過顯式或者隱式方式被指定到一個特殊的回滾段中。Oracle用擴展(存儲子句)和循環(huán)(釋放的空間可以重用)的方式使用回滾段。如果達到了一如果達到了一個回滾段的個回滾段的maxextentsmaxextents,或者表空間中沒有更多的空,或者表空間中沒有更多的空間分配給回滾段的話,擴展就失敗了間分配給回滾段的話,擴展就失敗了。應該給回滾段分配預留擴展的表空間。 包含在任何給定的表空間中的所有回滾段應該被精確地分配成相同的大小,如果設置了不匹配

24、的區(qū)間大小,那么可能出現(xiàn)前面討論過的碎片問題。也即盡量盡量為活動時間大致相同的事務創(chuàng)建一個回滾段,這樣可為活動時間大致相同的事務創(chuàng)建一個回滾段,這樣可以使回滾段的區(qū)間利用率達到最好水平以使回滾段的區(qū)間利用率達到最好水平。 特殊回滾段是為特殊事務類(如DSS和OLTP)創(chuàng)建的,這些可能被設置為不通用大小的回滾段,它們應該存儲在它們自己的表空間中以使碎片減到最小。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.3 4.3.1.3 管理回退段管理回退段設定回滾段大小 數(shù)據庫設計者對回滾段通??紤]如下問題: 1)使用多少個回滾段; 2)給每個回滾段分配多少空間; 3)各個回

25、滾段是專用的還是共享的; 4)各個回滾段分別住留在哪些表空間中。 當設定回滾段大小時,應該被設置得足夠大,這樣系統(tǒng)就不必馬上重新使用剛被一個完成的事務釋放的塊,同時有足夠的空間來存儲非活動的或者被提交的數(shù)據事務,而這些數(shù)據事務可能是其他長時間運行的查詢所需要的(讀一致性)。 使用SET TRANSACTION USE ROLLBACK語句在事務開始時明確地使用某個回滾段。可以建立一個只被長時間運行的批量工作使用的大回滾段。 北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.3 4.3.1.3 管理回退段管理回退段使用OPTIMAL參數(shù) 當建立回滾段時,回滾段的目標容量

26、可以用存儲參數(shù)OPTIMAL定義。OPTIMAL參數(shù)指定了回滾段要縮小到的尺寸。例: create rollback segment r05 tablespace rbs storage (initial 10M next 10M optimal 20M minextents 2 maxextents 100); ORACLEORACLE盡力把回滾段的尺寸維持在指定的最佳值盡力把回滾段的尺寸維持在指定的最佳值20MB上。當回滾段開始寫入另一個區(qū)間時,Oracle總是檢查段是否比OPTIMAL的尺寸大,如果大,并且下一個區(qū)域是完全空閑的,Oracle就釋放該區(qū)間。 如果回滾段的尺寸設置不適當,回

27、滾段會由于OPTIMAL子句的緣故持續(xù)地收縮,這種不斷的區(qū)間分配和釋放會影響到性能。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.3 4.3.1.3 管理回退段管理回退段進行裝載測試以獲得回滾段估算 為了正確地設置回滾段的尺寸,需要對將由較大事務產生的撤消信息的數(shù)量有個了解??梢栽跇颖臼聞罩袌?zhí)行一個裝載測試裝載測試: 1)建立兩個表保存統(tǒng)計信息:undo_begin和undo_end。 2)在與數(shù)據庫連接后,發(fā)出一系列事務處理命令,使用動態(tài)性能視圖v$rollstat把寫入指定回滾段的原始數(shù)據捕獲到表undo_begin中。 3)在事務處理結束后,再把寫入指定回滾

28、段的數(shù)據放到表undo_end中。 4)在表undo_begin和undo_end中已經有了開始和結束值,將這兩個值相減便可得到寫入指定回滾段的數(shù)據。這些值可以用于確定你的回滾段的尺寸需求。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.4 4.3.1.4 鑒別存儲問題鑒別存儲問題 當數(shù)據庫啟動和運行時,也需要查看數(shù)據庫的每個主要組件有多大。目的是要確保表空間足確保表空間足夠大,能夠存儲它們所包含的段夠大,能夠存儲它們所包含的段。開發(fā)表空間 表空間的開發(fā)包括了解表空間的總尺寸以及表空間使用什么樣的數(shù)據文件兩方面。DBA_DATA_FILESDBA_DATA_FILE

29、S表包含所有關于數(shù)據文件的信息表包含所有關于數(shù)據文件的信息,表空間的尺寸是它的數(shù)據文件的總和。DBA_FREE_SPACEDBA_FREE_SPACE表中保存數(shù)表中保存數(shù)據庫中所有自由區(qū)間的清單據庫中所有自由區(qū)間的清單,通過合計表空間中自由區(qū)間的尺寸,會看到還剩多少自由空間、每個表空間中的最大自由區(qū)域多少。DBA_SEGMENTSDBA_SEGMENTS表表包含包含了數(shù)據庫了數(shù)據庫的區(qū)間信息的區(qū)間信息。應該通過這三個表定期評價你的表空間被分裂成碎片的程度。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.1.4 4.3.1.4 鑒別存儲問題鑒別存儲問題表檢查 表檢查包括估

30、計總的容量以及實際使用的空間。一個已用空間與分配空間的比值很低的區(qū)間意味著INITIAL和NEXT區(qū)域值可能被設置得太高了??梢栽贒BA_EXTENTS表中找到區(qū)間信息。優(yōu)化簇存儲和檢查索引 理想情況下,每個簇剛好有一個區(qū)間理想情況下,每個簇剛好有一個區(qū)間。可以查詢DBA_EXTENTS計算每個簇的區(qū)間數(shù)目。可能的情況下,重新計算最佳的存儲參數(shù),并重建一個簇。 同簇一樣,理想情況下每個索引剛好有一個區(qū)間。監(jiān)控臨時表空間 排序、鏈接和GROUP BY子句等操作要使用臨時表空間。要監(jiān)控臨時段,可以檢查DBA_SEGMENTSDBA_SEGMENTS中類中類型為型為TEMPORARYTEMPORAR

31、Y的所有段信息的所有段信息。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.2 ORACLE4.3.2 ORACLE安全管理安全管理 Oracle安全模型原理是基于最小特權原則。此原則認為用戶應該僅有完成他的任務所必需的特權。ORACLE的安全性主要通過用戶(USER)管理、權限(PRIVILEGE)管理、角色(ROLE)管理來實現(xiàn)。ORACLE的安全管理在第二章中已經作過介紹,下面的內容是第二章的繼續(xù)。 4.3.2.1 用戶驗證 4.3.2.2 權限管理 4.3.2.3 審計 北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.2.1 4.3.2.

32、1 用戶驗證用戶驗證數(shù)據庫驗證 當創(chuàng)建用戶時,可以為其選擇資源限制文件。 資源限制文件(profile)可以使用企業(yè)管理器(OEM)或SQL*Plus創(chuàng)建環(huán)境資源文件,使資源限制文件生效需在init.ora中設置resource_limit=TURE。 資源限制文件可以做到口令限制和資源限制資源限制文件可以做到口令限制和資源限制。 資源限制包括會話級限制(當達到限制要求時則斷開會話)和調用級限制(當達到限制要求時回退語句)。 具體有:限制會話的數(shù)量、每個會話使用CPU時間(100秒為單位)、CPU調用的次數(shù)、邏輯讀的次數(shù)、每次調用的邏輯讀的次數(shù)、空閑時間以及連接時間等等。 北京郵電大學軟件學院

33、 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.2.1 4.3.2.1 用戶驗證用戶驗證數(shù)據庫驗證 口令限制包括 用戶帳戶的鎖定:當一個用戶多次注冊失敗后,該帳戶能夠被鎖定一段指定的時間; 口令使用期與到期:一個給定的口令在使用一段時間后過期,此時必須修改該口令; 口令歷史:口令歷史選項檢查每一個新近設定的口令以確保口令在指定長度的時間內或指定次數(shù)的口令修改中未重復使用; 口令復雜性驗證:復雜性驗證檢查口令的長度以使它更難被計算機破壞者所破解(長度上至少為4個字符,不要與用戶標識相同,至少包含一個字母字符、一個數(shù)字字符和一個標點符號,不要與簡單單詞的一個內部列表上的任何單詞匹配,與以前的口

34、令至少有3個字符不同)。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.2.1 4.3.2.1 用戶驗證用戶驗證數(shù)據庫驗證例:CREATE PROFILE d_prof LIMIT SESSIONS_PER_USER 2 -限制會話的數(shù)量 CPU_PER_SESSION 10000 -會話使用CPU時間(100秒為單位) IDLE_TIME 60 -空閑時間 CONNECT_TIME 480;-連接時間例:CREATE PROFILE grace LIMIT FAILED_LOGIN_ATTEMPTS 3 -3次失敗則鎖定 PASSWORD_LIFT_TIME 30 -

35、可以使用30天 PASSWORD_GRACE_TIME 5; -30天到期后再提示5天北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.2.1 4.3.2.1 用戶驗證用戶驗證外部驗證 外部驗證依賴于操作系統(tǒng)或網絡驗證服務。此類登錄不需要數(shù)據庫口令。要使用外部驗證, init.ora參數(shù)REMOTE_OS_AUTHENT必須被設置為TRUE(缺省值是FALSE)。另外在init.ora文件中設置OS_AUTHENT_PREFIX參數(shù)表示任何同此值有相同前綴的用戶將在外部得到驗證。比如,該值被設置為ops那么所有以ops打頭的用戶將在外部得到驗證。企業(yè)驗證 企業(yè)驗證啟用一個

36、中央資源用于口令管理,該用戶被稱為全局用戶(global user)并且必須在每個使用全局口令的數(shù)據庫中創(chuàng)建。假如口令得到驗證,用戶便能夠訪問Oracle數(shù)據庫。Oracle安全服務與Oracle企業(yè)管理器的接口集中了安全角色管理和企業(yè)驗證。這使得當前正在被管理的用戶具有全局同一性。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.2.2 4.3.2.2 權限管理權限管理 ORACLE權限有系統(tǒng)權限和對象權限,通過將權限直接授予用戶或通過將角色(一定權限的集合)賦予用戶完成用戶的權限管理(見第二章)。 兩種特權:Category ExamplesSYSOPERSTARTU

37、PSHUNTDOWNALTER DATABASE OPEN|MOUNTALTER DATABASE BACKUP CONTROLFILE TORECOVER DATABASEALTER DATABASE ARCHIVELOGSYSDBA不僅具有SYSOPER權限,而且CREATE DATABASEALTER DATABASE BEGIN/END BACKUPRESTRICTED SESSEIONRECOVER DATABASE UNTIL北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.2.3 4.3.2.3 審計審計 Oracle能夠審計并記錄數(shù)據庫中發(fā)生的活動。可以使

38、用AUDIT命令允許審計操作或使用NOAUDIT命令禁止審計操作。有三種類型的審計操作:登錄嘗試、對象存取(具體對象上的具體語句)和數(shù)據庫操作(具體的系統(tǒng)特權和語句,不考慮對象)。 任何一條命令,不管是成功的還是不成功的都可以進行審計。要創(chuàng)建審計系統(tǒng)視圖,以用戶SYS的身份運行CATAUDIT.SQL文件腳本,并設置init.ora參數(shù)AUDIT_TRAIL,該參數(shù)可以設置為寫入數(shù)據庫或一個操作系統(tǒng)文件:AUDIT_TRAIL=DB 寫入數(shù)據庫,所有已審計的活動被寫入SYS.AUD$表中;AUDIT_TRAIL=OS 寫入一個操作系統(tǒng)文件。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計

39、與開發(fā)講義4.3.3 ORACLE4.3.3 ORACLE備份與恢復備份與恢復 數(shù)據丟失分為物理丟失和邏輯丟失兩類。 物理數(shù)據丟失是指操作系統(tǒng)級的數(shù)據庫組件的丟失,例如數(shù)據文件、控制文件、重做日志以及存檔日志。 邏輯數(shù)據丟失是諸如表、索引或表記錄的數(shù)據庫級組件的丟失。 OracleOracle能夠實現(xiàn)物理數(shù)據備份與邏輯能夠實現(xiàn)物理數(shù)據備份與邏輯數(shù)據備份數(shù)據備份。有效的備份計劃必須把兩種方案都包含在內才能完全避免數(shù)據丟失。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.3 ORACLE4.3.3 ORACLE備份與恢復備份與恢復 物理數(shù)據備份即為數(shù)據文件、控制文件、歸檔重

40、做日志的拷貝。 物理備份應用于相同的Oracle版本以及引起物理備份的實例上的恢復,因此,物理備份被認為是不可移植的,它們通常僅用于保護同一臺機器和實例中的數(shù)據免遭數(shù)據丟失。物理備份通常按照預定的時間間隔運行以防止數(shù)據庫的物理丟失。 物理備份可以進一步分為冷備份(脫機備份offline backup)與熱備份(聯(lián)機備份online backup)。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.3 ORACLE4.3.3 ORACLE備份與恢復備份與恢復 邏輯數(shù)據備份通常是SQL語句的集合,這些SQL語句重新創(chuàng)建數(shù)據庫對象(表、索引、授權、角色等)和記錄。 當需要在不同

41、實例之間移動指定的數(shù)據,或者需要在不同的系統(tǒng)結構、操作系統(tǒng)版本或Oracle版本之間拷貝一個實例的全部數(shù)據時可以使用Oracle的邏輯備份系統(tǒng)。邏輯備份用于實現(xiàn)數(shù)據庫對象的恢復,用來保證數(shù)據庫能夠從無意中的修改(例如DELETE、DROP等)中恢復出來。 在開發(fā)者環(huán)境中,應該設計一個邏輯備份策略。一般存在兩個數(shù)據庫拷貝,一個是成品數(shù)據庫,另一個由開發(fā)者使用,用來調試他們的程序。開發(fā)數(shù)據庫將與成品數(shù)據庫定期地保持同步。 北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.3.1 ORACLE4.3.3.1 ORACLE邏輯備份邏輯備份 Oracle提供了邏輯備份工具EXP(I

42、MP用于邏輯恢復)。命令格式如下: EXP keyword=value, keyword=value完全邏輯備份 EXP可用于完全邏輯數(shù)據庫備份。但條件是必須有EXP_FULL_DATABASE權限和足夠的存儲空間。 寫入缺省輸出文件中的完全邏輯備份的例子: exp USERID=SYSTEM/MANAGER FULL=Y指定用戶模式的邏輯備份 EXP支持指定用戶模式的備份。導出一個指定的用戶組會導出用戶定義的所有表、索引等相關的數(shù)據。 把TGASPER模式導出到標準輸出文件中的示例: exp USERID=SYSTEM/MANAGER OWNER=TGASPER北京郵電大學軟件學院 郭文明

43、2003.06數(shù)據庫設計與開發(fā)講義4.3.3.1 ORACLE4.3.3.1 ORACLE邏輯備份邏輯備份指定表的邏輯備份 導出一組表的處理方法與用戶導出的方法一樣。用TABLES關鍵字列舉表的名字,可以導出一個或一組表。 下面的例子把ABC表與XYZ表從BGE模式中導出到缺省輸出文件中: exp USERID=SYSTEM/MANAGER OWNER=BGE TABLES =XYZ,ABC 注意EXP缺乏一些主要的功能,EXP使你不能導出一條基于SQL WHERE子句的信息。Oracle的導出文件實際上是一種專有格式。市場上有許多第三方的工具提供了這些缺少的功能。 運行exp HELP=Y會

44、顯示EXP的所有關鍵字及其描述。 ORACLE邏輯備份工具EXP的對應恢復工具是IMP,其用法可以參照EXP。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.3.2 ORACLE4.3.3.2 ORACLE冷物理備份冷物理備份 冷物理備份是數(shù)據庫管理員用來保護數(shù)據庫系統(tǒng)整體上免遭各種類型數(shù)據破壞的工具。定期的冷備份以及一組好的歸檔重做日志與當前重做日志能夠把數(shù)據庫恢復到失敗前的最后一次提交狀態(tài)。 在NT桌面環(huán)境出現(xiàn)以前,往往借助操作系統(tǒng)工具執(zhí)行冷物理備份。NT環(huán)境是圖形化界面,所以Oracle創(chuàng)建了一個叫做備份管理器的圖形化產品,備份管理器使用一個標準的NT圖形用戶界面

45、程序執(zhí)行物理備份與恢復。從Oracle 8開始,Oracle引入了一個稱為恢復管理器(簡稱為RWAN)的新的備份與恢復系統(tǒng)。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.3.2 ORACLE4.3.3.2 ORACLE冷物理備份冷物理備份 無論采用什么方法,冷物理備份都應包含如下數(shù)據庫元素:控制文件、數(shù)據文件、重做日志文件、歸檔日志文件。命令行驅動冷物理備份 在備份過程開始以前,要確保數(shù)據庫已有足夠長的時間停留在脫機狀態(tài),這樣才能得到完全備份。 執(zhí)行一個冷備份所需要的基本步驟如下: 1)建立一個需要備份的操作系統(tǒng)級文件的列表。 2)選擇使用NORMAL或IMMEDIA

46、TE方式關閉數(shù)據庫。注意僅在使用IMMEDIATE或NORMAL模式關閉數(shù)據庫后才對它進行備份。 3)執(zhí)行步驟1中文件列表的操作系統(tǒng)級備份。 4)正常啟動數(shù)據庫。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.3.2 ORACLE4.3.3.2 ORACLE冷物理備份冷物理備份命令行驅動冷物理備份 建立一個需要備份的操作系統(tǒng)級文件的列表并不建立一個需要備份的操作系統(tǒng)級文件的列表并不是簡單的過程是簡單的過程,下面提供一個方法。 1)init.ora文件必須備份。還要查看一下此文件是否有一個ifile行,假如有一個使用ifile關鍵字列出的文件名,還必須備份那個文件。 2)

47、查看可用的init.ora文件,生成由數(shù)據庫使用的控制文件列表。 3)使用DBA_DATA_FILES獲得所有數(shù)據庫數(shù)據文件。 4)下面的語句可生成重做日志文件的清單: SELECT MEMBER FROM V$LOGFILE; 5)歸檔日志可由歸檔進程自動寫到一個目錄中。init.ora文件中的log_archive_dest關鍵字被設置為目的目錄,歸檔日志將被寫入這里。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.3.2 ORACLE4.3.3.2 ORACLE冷物理備份冷物理備份桌面驅動冷備份 Oracle的備份管理器作為一個工具用于Oracle數(shù)據庫的備份。備

48、份管理器的界面操作相當容易。執(zhí)行一個冷物理備份步驟: 1)確保Oracle數(shù)據庫運行正常。(因為備份管理器需要在關閉數(shù)據庫以前對該數(shù)據庫進行訪問以便它能建立一個需要備份的數(shù)據庫文件列表。) 2)備份管理器中選擇備份方式(offline_full database)。 3)確定備份目標:數(shù)據備份到磁盤或磁帶中。 4)開始備份,備份管理器完成工作后重啟數(shù)據庫。 一般不把數(shù)據備份在數(shù)據庫所駐留的物理設備中。 備份管理器不備份init.ora、config.ora或歸檔日志文件。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.3.3 ORACLE4.3.3.3 ORACLE熱物

49、理備份熱物理備份 熱備份要求對Oracle和操作系統(tǒng)具有較高的專業(yè)知識。由于熱備份的復雜性,必須事先測試備份策略。只有從一個測試系統(tǒng)中的大量失敗中恢復出來時,熱備份系統(tǒng)才被認為是可靠的。 Oracle提供了兩種熱備份方法,一種用于命令行UNIX環(huán)境,另一種用于桌面(Windows)環(huán)境。熱備份復雜性 Oracle基本存儲單元是數(shù)據塊。數(shù)據塊中存儲數(shù)據,數(shù)據塊頭存儲包含在塊中的數(shù)據的信息。數(shù)據庫處于聯(lián)機狀態(tài)時,備份程序和Oracle可能都工作于同一個塊上。假定當Oracle寫新的數(shù)據和更新數(shù)據塊頭時,備份程序僅完成了對塊頭部分的備份,那么完成備份之后,該塊具有老的塊頭和新的數(shù)據。這個數(shù)據塊成為不純的數(shù)據塊不純的數(shù)據塊。北京郵電大學軟件學院 郭文明 2003.06數(shù)據庫設計與開發(fā)講義4.3.3.3 ORACLE4.3.3.3 ORACLE熱物理備份熱物理備份熱備份復雜性 針對不純的數(shù)據塊,Oracle的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論