oracle大的儲存層次體系為:
1.資料庫由乙個或者多個表空間組成
2.表空間由乙個或多個資料檔案(種類有系統cooked檔案,asm資料檔案,原始分割槽資料檔案,分割槽資料檔案)。乙個表空間包含多個段。
3.段(table,index等)由乙個或多個區段組成。段在表空間中,可以包含表空間中的多個資料檔案上的資料。
4.區段是磁碟上一組邏輯連續的塊。區段只在乙個表空間中,並且盡在表空間中的乙個資料檔案中
5.塊是資料庫中的最小分配單位,也是資料庫使用的最小i/o單位。
其中資料庫,表空間,檔案,段,區段的關係如下圖:
[img]
表空間只是oracle的乙個邏輯容器,位於儲存層次體系的頂層。
儲存層次體系中比較重要的兩個概念是段和塊。
段:段(segment)就是占用儲存空間的資料庫物件,如表,索引,回滾段等。建立表示會建立乙個表段,建立索引時會建立乙個索引段,建立分割槽表是會為每個分割槽建立乙個段。占用儲存空間的每個物件都會儲存在乙個段中。另外還有回滾段,臨時段,聚簇段,索引段等。
注意:一條create語句可能建立多個段(如建立表時可能包含表段,索引段,lob段等)。
區段就是一段連續的儲存空間,多個區段組成乙個段。
塊:塊是oracle中最小的額空間分配單位。資料行,索引條目,臨時排序結果等都儲存在塊中。
段,區段,塊的關係如下圖:
[img]
塊的組成基本如下圖(也有例外,如lob段,exadata段):
[img]
首部包含塊型別有關的資訊(表塊,索引塊等),塊上正在發生和已經發生的資料庫事務資訊及在磁碟上的位址。
表目錄(如果有)儲存的是把行記錄存放在這個塊上的表的資訊,行目錄包含塊中資料行的資訊(就是行的索引)。首部、表目錄、行目錄統稱為塊開銷,不用來存放實際的資料,而是由oracle用來管理塊本身。
塊中剩餘的兩部分乙個是空閒空間,乙個是已經存放了資料的已用空間。
oracle 資料檔案移動
1.連線 sqlplus nolog sql conn sys prd1 as sysdba 2.一些基本的操作 1 檢視表空間 sql select from v tablespace 2 檢視資料檔案 sql select from v datafile 3 檢視tablespace 和data...
oracle資料檔案丟失。
今天來上班聽說我們的資料庫伺服器連不上,說是昨晚停電伺服器都掛掉了。初步考慮應該是資料庫沒有自動拉起造成的,手動執行拉起指令碼資料庫仍然無法連線。後來檢視oracle啟動日誌以及跟蹤日誌如下 cd opt oracle admin oracle9i bdump more alert oracle9i...
遷移oracle資料檔案
引言 現在的生產環境,底層大多使用asm技術了。但這並不妨礙使用者把檔案 資料檔案 引數檔案 控制檔案等 放到檔案系統上。在一些不規範的操作場景下,乙個不小心,檔案位置就放錯了。此時,可能沒辦法將檔案刪除 再重建,只能將該檔案遷移到asm中。還有一種情況,某個存在asm中的檔案,要挪到檔案系統中,這...