Oracle表空間管理邏輯_第1頁
Oracle表空間管理邏輯_第2頁
Oracle表空間管理邏輯_第3頁
Oracle表空間管理邏輯_第4頁
Oracle表空間管理邏輯_第5頁
已閱讀5頁,還剩1頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、.:.;表空間Tablespace為數據庫提供運用空間的邏輯構造,其對應物理構造是數據文件,一個表空間可以包含 多個數據文件。本地管理表空間Locally Managed Tablespace簡稱LMT8i以后出現的一種新的表空間的管理模 式,經過本位置圖來管理表空間的空間運用。 字典管理表空間Dictionary-Managed Tablespace簡稱DMT8i以 前包括以后都還可以運用的一種表空間管理方式,經過數據字典管理表空間的空間。本地化管理:就是指Oracle不再利用數據字典表來記錄Oracle表 空間里面的區的運用情況,而是在每個表空間的數據文件的頭部參與了一個位圖區,在其中記錄

2、每個區的運用情況。每當一個區被運用,或者被釋放以供重新運用 時,Oracle都會更新數據文件頭部的這個記錄,反映這個變化。本地化管理的表空間的創建過程:語 法:CREATE TABLESPACE表空間名字 DATAFILE數據文件詳細信息 EXTENT MANAGEMENT LOCAL AUTOALLOCATE | UNIFORM SIZE INTETER K|M 關鍵字EXTENT MANAGEMENT LOCAL指 定這是一個本地化管理的表空間。 對于系統表空間,只能在創建數據庫的時候指定EXTENT MANGEMENT LOCAL,由于 它是數據庫創建時建立的第一個表空間。 在8i中,字

3、典管理還是默許的管理方式,中選擇了LOCAL關鍵字,即闡明這是一個本地管理的表空間。當然還可以繼續選擇更細的管理方式:是AUTOALLOCATE還是UNIFORM.。 假設為AUTOALLOCATE,那么闡明讓Oracle來 決議區塊的運用方法;假設選擇了UNIFORM,那么還可以詳細指定每個區塊的大小,假設不加指定,那么為 每個區運用1M大小。本地管理表空間的優點:1減少了 遞歸空間管理本地管理 表空間是本人管理分配,而不是象字典管理表空間需求系統來管理空間分配,本地表空間是經過在表空間的每個數據文件中維持一個位圖來跟蹤在此文件中 塊的剩余空間及運用情況。并及時做更新。這種更新只對表空間的額

4、度情況做修正而不對其他數據字典表做任何update操 作,所以不會產生任何回退信息,從 而大大減少了空間管理,提高了管理效率。同時由于本地管理表空間可以采用一致大小分配方式(UNIFORM),因 此也大大減小了空間管理,提高了數據庫性 能。2系統自動管理extents大小或采用一致extents大 小本地管理 表空間有自動分配(AUTOALLOCATE)和一致大小分配(UNIFORM)兩種空間分配方式,自動分配方式(AUTOALLOCATE)是 由系統動決議extents大小,而一致大小分配(UNIFORM)那么 是由用戶指定extents大小。這兩種分配方式都提高了空間管理效率。3減少了數據

5、字典之間的競爭由于本地 管理表空間經過維持每個數據文件的一個位圖來跟蹤在此文件中塊的空間情況并做更新,這種更新只修正表空間的額度情況,而不涉及到其他數據字典表,從而大大 減少了數據字典表之間的競爭,提高了數據庫性能。4不產生回退信息由于本地 管理表空間的空間管理除對表空間的額度情況做更新之外不修正其它任何數據字典表,因此不產生回退信息,從而大大提高了數據庫的運轉速度。5不需合并相鄰的剩余空間由于本地 管理表空間的extents空間管理睬自動跟蹤相鄰的剩余空間并由系統自動管理,因此不需求去合并 相鄰的剩余空間。同時,本地管理表空間的一切extents還可以具有一樣的大小,從而也減少了空 間碎片。

6、6減少了空間碎片7對暫時表空間提供了更好的管理表空間管理方式轉換:字典管理表空間每當表或其他對象需求擴展的時候都檢查其數據字典以確保有可用的空間分配給對象,然后給對象分配一個新區段并更新其可用空間信息。本地管理表空間保 存數據文件本身的空間管理信息,而且表空間自動跟蹤每個數據文件塊的可用或已用形狀。在事務比較多的數據庫中顯然字典管理每次插入數據時都會檢查數據字 典,這就使得數據庫性能有所損耗。1命令方式轉移。首先他要新建一個oracle表空間,在oracle 10g以后默許都是采用本地管理表空間的。對于表空間的轉移運用命令:ALTER TABLE temp MOVE TABLESPACE ne

7、w_temp;對于索引他需求重建:ALTER TABLE index REBUILD TABLESPACE new_index;顯然上面的方法并不適用于對system表進展轉 換,由于他不能建立2個同名的system表。2采用oracle提供的PL/SQL數據包中的DBMS_SPACE_ADMIN.在轉換system表前,他必需把一切的其他表空間轉換為本地管理。EXECUTE dbms_space_admin.tablespace_migrate_to_localtablespace; 轉行表空間然后同樣的方法將system表空間也進展轉換。EXECUTE dbms_space_admin.t

8、ablespace_migrate_to_localsystem;運用這種方法很好,但是它建立的表空間沒有automatic segment space managerment選 項,一切字典管理表空間都是用默許手動段空間管理,而且在轉換為本地管理的表空間是不能進展修正。還有一個缺陷,就是表空間假設存在空間碎片的話,此方法 也不能處理碎片問題。管理表空間的幾個根本準那么運用多個表空間運用多個表空間是有益處的,從硬件上說:我們可以將不同運用的數據存放在不同的表空間內,并且放在不同的分區上,這樣可以防止多個運用搶占磁盤的I/O資源,另外當磁盤有損壞時不會同時影響到多個運用。從數據庫上說:運用多個表

9、空間可以將不同的用戶數據從數據字典中分別,以減少一個數據文件的數據字典對象和方式對象之間的競爭。同樣的暫時表空間也是需求創建多個,用來匹配表空間,保證在執行操作過程中,得到更優化的呼應。指定表空間的存儲參數這個主要是針對不同的特殊運用來做比如只做查詢的表空間,暫時沒研討。普通的運用就讓oracle本人管理吧。為表空間指定限額合理的限額對表空間的利用率是有很大協助 的,假設一個只會用到20M的空間,而他卻給它分配幾百M,是不是就成為一個很嚴重的資源浪費。另外要提的是當表空間不夠用的時候,需求做的是添加表空間所在文件的數據文件的大小,或者新建幾個比較大的數據文件,而不是創建很多個比較小的數據文件,

10、這么做理由應該是很好了解的。值得留意的表空間存儲參數:MINIMUM:CREATE TABLESPACE的一個參數,它能影響表空間段的分配,換句話說是能影響到表空間中空閑空間碎片的一個參數,當為它指定大小后,它能確保一切空閑的或者已分配的盤區的大小一定是它的倍數,以K或者M計算,系統的默許值似乎是64K。ALTER TABLESPACE語句的限制:ALTER TABLESPACE語句可以用來修正一個表空間的存儲參數,但是它不能用來修正INITIAL和MINEXTENTS,一個表空間的默許參數的新值只能影響到未來該表空間為段分配的盤區,而已有分配的還是照創建時的設定值。因此一旦設定了默許參數,最

11、好不要隨意修正。合并表空間中的空閑空間:先來看看空閑空間是如何存儲的:一個表空間的空閑空間是一些相鄰的空閑塊構成的,這些空閑塊的大小不用說當然是由MINIMUM設定的,當需求創建一個新的表空間存儲段的時候,系統會在這些延續的空閑塊中尋覓大小大于新存儲段大小的區間進展創建,而當一個表空間存儲段被取消時它的空間將直接被標志成空閑塊,這樣就會呵斥表空間中,延續的空閑塊大小越來越小,越來越不延續,那么在之后需求創建新的表空間段時,就無法保證新的表空間段的空間是延續的塊,當然oracle會自動去做合并這個事,那我們可以經過管理來減輕系統的負擔。手動合并空閑的空間:ALTER TABLESPACE . C

12、OALESCE 這個語句用來合一切的空閑空間,起到的作用類似于WINDOWS的磁盤整理,對操作者的權限要求是有 ALTER TABLESPACE 權限似乎是句廢話,但是假設發現無法執行的時候,無妨GRANT .ALTER TABLESPACE,不過這條語句不能用來合并一個表空間中不同盤區的一切空閑空間,假設要做到一切盤區的空閑空間的整理,除非導出空間數據再重新創建表空間再導入數據,而且最好只需一個盤區。那么如何才干了解表空間中空閑空間的分布呢就是如何監控空閑空間?有幾個視圖幫我們記錄了這些數據:DBA_FREE_SPACE 、 DBA_FREE_SPACE_COALESCE。我們要做的就是在上

13、面做查詢,得到某個表空間中空閑空間的分布:SELECT BLOCK_ID, BYTES, BLOCKS, FROM DBA_FREE_SPACE WHERE TABLESPACE_NAME = * ORDER BY BLOCK_ID; 結果顯而易見。另外表空間的管理還有 設置表空間能否聯機。表空間可以有兩種形狀:脫機和聯機,什么意思?脫機就是證明這表空間雖然存在但是它不能被運用,聯機那么相反。修正語句就是 : ALTER TABLESPACE ONLINE/OFFLINE。運用只讀表空間只讀表空間:從字面意思了解就是一個只能執行查詢等不影響表空間內存儲的數據的事務的一個表空間。那如今來看看它的

14、定義:只讀表空間的主要目的是消除執行數據庫大量的靜態部分的備份和恢復的需求。因此只讀表空間應該有如下特性:任何用戶都不可以在表空間創建或修正數據沒有回滾段可以隨意拷貝,甚至刻錄到光盤中那么如何使一個表空間變成只讀形狀呢?我們知道任何一個表空間在創建后默許都是可讀寫形狀,我們就需求改動這種形狀:ALTER TABLESPACEREAD ONLY;這條命令需求用戶擁有ALTER/MANAGE TABLE權限。要設定一個表空間成為只讀表空間需求留意幾點:表空間必需是聯機的表空間沒有包括任何的活動回滾段表空間不能是SYSTEM正是由于SYSTEM總是有活動的回滾段該表空間沒有涉及的聯機備份,由于在備份

15、的最后會要求更新表空間中一切的頭文件新特性:在運用ALTER TABLEREAD ONLY;之前不需求等待表空間完成一切的事務,系統會自動轉入過渡的只讀方式,該方式將阻止一切新的事務進展,但是允許現有事務進展提交和回滾。留意:過渡形狀只在初始化參數COMPATIBLE和數據庫版本有關的參數的值為8.1.0以上才會出現,假設是小于8.1.0的值,當READ ONLY語句會在有活動的事務的情況下失敗。小竅門:在執行ALTER TABLEREAD ONLY;語句之前可以先對每個表先執行SELECT * FROM之類的查詢語句,這樣可以保證在表空間的數據塊可以在隨后被最有效的訪問,同時也去除了orac

16、le需求檢查最近修正塊的事務形狀的必要,由于最后執行的是查詢事務。兩個有用的視圖:V$SESSION:我們可以經過利用它的SQL_TEXT字段來查詢一個語句的事務的會話地址V$TRANSACTION:它記載著當前活動事務的啟動SCN,我們可以根據經過上面那張視圖查詢到的事務會話地址來查詢該事務的形狀。延遲只讀表空間的翻開當一個非常大的數據庫的本質性部分存儲在位于低速訪問設備如光盤的只讀表空間中或分級存儲時,要思索將初始化參數READ_ONLY_OPEN_DELAYED設置為TRUE,這將加速某些操作,主要是翻開數據庫,其緣由是在需求讀取存儲它的數據時,使只讀表空間的數據文件只在第一次被訪問。但

17、是,這么做有缺陷:表空間中只讀文件不會被再訪問到,除非是RECOVER TABLESPACE和ALTER TALESPACE OPEN RESETLOGS由于它們忽視初始化參數可以繼續訪問只讀文件。既然表空間可以改為只讀形狀,那么一定也有方法把只讀形狀的表空間轉為可讀寫形狀:ALTER TABLESPACEREAD AND WRITE;需求的權限和改只讀的一樣,條件就是該只讀表空間必需是聯機的。取消表空間刪除表空間假設不需求一個表空間及其內容,我們就需求在數據庫中取消這個表空間,語句:DROP TABLESPASE【INCLUDING CONTENTS】;需求DROP TABLESPACE權限

18、。假設這個表空間本來就是空的沒有表、視圖及其他構造那么不需求INCLUDING CONTENTS字句。不過這個語句并不會刪除與表空間關聯的數據文件,假設在取消表空間時也想把和表空間有關聯的數據文件一并刪除就需求如下語句:DROP TABLESPACEINCLUDING CONTENTS AND DATAFILES;一個重要的包DBMS_SPACE_ADMIN:這個包為本地管理的一切表空間提供帶有缺點診斷和修復功能的管理程序。包含的管理程序有:SEGMENT_VERIFY:驗證該段盤區映射的一致性SEGMENT_CURRUPT:標注該段為損壞或有效,以便執行恰當的錯誤恢復SEGMENT_DROP

19、_CORRUPT:取消一個當前標注為損壞的段(不回收空間)SEGMENT_DUMP:卸下一個給定段的段頭部和盤區映射TABLESPACE_VERIFY:驗證該表空間中段的位圖和盤區映射能否同步TABLESPACE_REBUILD_BITMAPS:重建適當的位圖TABLESPACE_FIX_BITMAPS:在位圖中標注適當的數據塊地址范圍為空閑或已用TABLESPACE_REBUILED_QUOTAS:為給定表空間重建限額TABLESPACE_MIGERATE_FROM_LOCAL:將一個本地管理的表空間移植為字典管理的表空間TABLESPACE_MIGRATE_TO_LOCAL:將一個字典管理的表空間移植為本地管理的表空間TABLESPACE_RELOCATE_BITMAPES:將位圖重定位到指定

溫馨提示

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

評論

0/150

提交評論