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