oracle物理結構和邏輯結構物理結構查看oracle資料庫的物理檔案路徑一定要用命令查看,除非該資料庫是你親自安裝,並做過所有的安全配置,否則非常有可能你的前任對資料庫進行了更改,而在一不小心釀成大錯。
查看控制檔案DESC v$controlfile查看控制檔案的狀態和名稱(顯示路徑)SELECT status,name FROM v$controlfile;
查看資料檔案DESC v$datafile比如查看資料檔案的檔案號和狀態SELECT file#,status,name FROM v$datafile;
看記錄檔DESC v$logfile查看記錄檔路徑資訊SELECT member FROM v$logfile;
Oracle的檔案系統:控制檔案(.CTL),資料檔案(.DBF),記錄檔(.LOG)
這三種檔案系統一般在以下路徑可以找到:(預設安裝路徑)/u01/app/oracle/oradata/oracleSID
除此三種檔案還有一種參數檔案,參數檔案不是資料庫系統中的有效組成部分,在啟動資料庫時,參數檔案不直接參与工作,只是控制檔案是由參數檔案尋找的。參數檔案位置:/u01/app/oracle/product/10.2.0/db_1/dbs/spfileorac leSID.ora控制檔案的內容會顯示在參數檔案中。參數檔案的作用起到尋找控制檔案的作用。
Oracle中有兩種記錄檔,一種為聯機記錄檔(重做記錄檔),一種為歸檔記錄檔。REDO01.LOG和REDO02.LOG,REDO03.LOG是典型的聯機記錄檔,特點是順序寫檔案,寫滿後寫下一個,寫滿第三個迴圈寫第一個,並且覆蓋掉不做備份。歸檔記錄檔,在熱備份的時候要選擇的一種歸檔方式。
由控制檔案控制資料檔案和記錄檔。資料庫啟動時啟動對應執行個體後,首先啟動控制檔案,在由控制檔案開啟資料檔案。現象是:資料庫裝載:Database Mount,然後開啟資料庫:Database Open。其實就是先開啟控制檔案,在開啟資料檔案。
物理結構下,這些路徑是可以隨意遷移的,可以存放在任何儲存下,包括裸裝置。
邏輯結構資料庫的邏輯結構相對於物理結構要複雜很多。學邏輯結構,非一日之功,我僅學到相關的大概。以後有時間繼續深入學習。資料庫儲存空間由一個或多個資料表空間構成。(如system、sysaux.)1、資料表空間(tablespace)組織資料庫空間的邏輯結構,其對物理結構是資料檔案,一個資料表空間物理上由一個或多個資料檔案組成,邏輯上由一個或多個資料區段組成。2、資料區段(segment)邏輯對象所佔用空間,如表段,索引段,復原段等,段存在於資料表空間中,並對應一定的儲存空間。資料區段又劃分為一個或多個區間。3、區(extent)區間是用於為資料一次性預留的一個邏輯上連續的一組disk空間(預設8塊),每個區間佔用一定數量的資料區塊。區不能跨資料檔案。4、塊(block)資料庫最小的儲存單位(預設8k),是所有邏輯結構的基本配置單位。以上時邏輯結構的基本結構
1.資料表空間概述資料表空間功能·組織資料區段空間,控制儲存空間的分配·通過使單個資料表空間線上或離線,控制資料的可用性·通過資料表空間劃分實現跨越裝置分配資料存放區,以提高效能·通過指定使用者使用指定資料表空間實現對使用者的限制·執行部分資料的後備和恢複動作表空間特點·資料中的最大邏輯單位·一個資料庫邏輯上至少由一個系統資料表空間構成·一個資料表空間物理上至少由一個資料檔案構成·一個資料表空間至少包括一個段(控制資訊)·資料表空間的大小等於所有從屬於它的資料檔案大小的總和查詢資料表空間使用狀況SQL select*from dba_tablespaces;查詢資料庫中所有資料表空間資訊SQL select*from dba_data_files;查詢資料表空間所含資料檔案資訊,不含暫存資料表空間SQL select*from dba_temp_files;專查暫存資料表空間所含資料檔案SQL select tablespace_name,sum(bytes)from dba_data_files group by tablespace_name;查詢資料表空間大小SQL select tablespace_name,sum(bytes)from dba_free_space group by tablespace_name;查詢資料表空間空閑空間大小
建立資料表空間SQL create tablespace test datafile’/u01/a.dat’size 5m;更改資料表空間SQL alter tablespace test add datafile’/u01/b.dat’size 6m;查詢資料表空間SQL select tablespace_name,sum(bytes)from dba_data_files group by tablespace_name;資料表空間更名SQL alter tablespace test rename to fff;資料表空間離線SQL alter tablespace test offline;資料表空間聯機SQL alter tablespace test online;設定資料表空間唯讀SQL alter tablespace test read only;設定資料表空間可讀寫SQL alter tablespace test read write;擴充資料表空間SQL alter tablespace test add datafile’/u01/c.dat’size 500M;增加資料檔案個數以擴充資料表空間(資料檔案大約5~20個)SQL alter database datafile’/u01/a.dat’resize 80M;擴充資料檔案大小擴充資料表空間SQL alter database datafile’/u01/a.dat’autoextend on maxsize 100M;設定自動擴充參數以自動擴充資料表空間刪除資料表空間SQL drop tablespace test including contents and datafiles;刪除資料表空間和資料檔案
資料表空間分類資料表空間主要分為系統資料表空間(system、sysaux),資料資料表空間(user),復原資料表空間(undotbs),暫存資料表空間(temp)。1、系統資料表空間每個資料庫都必須具備一個system資料表空間,該資料表空間是在資料庫建立或資料庫安裝時自動建立的,名稱不能更改,任何時候均必須保持online狀態,用於儲存系統的資料字典表,程式系統單元,過程函數,包和觸發器等,也可用於儲存使用者資料表,索引對象。為避免系統資料表空間產生磁場片段以及爭用系統資源的問題,應單獨建立至少一個獨立的資料表空間用來單獨抽出使用者資料。sysaux資料表空間也隨資料庫的建立而建立,是system資料表空間的輔助資料表空間,主要儲存存放支援oracle系統活動的多種工具如logminer等,sysaux降低了system資料表空間的負荷。2、資料和索引資料表空間由使用者在資料建立完畢自行建立,是資料庫空間的最主要組成部分,資料資料表空間應該建立多個,建立不同使用者及性質的資料庫物件時應指定其存放在指定的資料資料表空間中,索引資料表空間也應建立多個,並分類將不同對象的索引按大小及訪問頻度分別指定存放到指定的資料資料表空間中。通常情況下,資料和索引資料表空間應建立適當多個,太少則單個資料表空間過大,資料不安全且回複費時,太小則難管理。資料庫建立時預設建立users資料表空間,包含一個資料檔案user01.dbf,建立使用者的未指定儲存資料表空間時預設使用該資料表空間。3、復原資料表空間undo資料又稱復原(rollback)資料,使用者確保資料的一致性,當執行DML操作時,事務操作前的資料被稱undo記錄,undo資料表空間用於儲存undo記錄。undo資料表空間使用者儲存undo記錄,是資料庫空間的最關鍵的組成部分,其對資料庫的運行影響很大。資料庫建立時預設建立一個復原段資料表空間undotbs1,包含一個資料檔案undotbs01.dbs。SQL show parameter undo;
4、暫存資料表空間暫存資料表空間(temp tablespace)主要用於儲存oracle資料庫運行期間所產生的曆史資料,及用於進行排序。資料庫關閉後,暫存資料表空間中所有資料將全部被清除,故暫存資料表空間外地其他所有資料表空間都屬於永久性資料表空間資料庫建立時預設建立一暫存資料表空間temp。包含一資料檔案temp01.dbf,對於大型操作頻繁的環境,應建立多個暫存資料表空間,並分別歸屬不同暫存資料表空間,以避免多使用者及多任務競爭該暫存資料表空間查看系統預設暫存資料表空間及對應資料檔案SQL select tablespace_name from dba_tablespaces;SQL select*from dba_temp_files;
-