程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> oracle物理結構和邏輯結構

oracle物理結構和邏輯結構

編輯:Oracle數據庫基礎
 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;
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved