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