Oracle兩個(gè)基本概念了解體系結(jié)構(gòu)
一、數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)(database)是一個(gè)數(shù)據(jù)集合。無(wú)論數(shù)據(jù)庫(kù)是采用關(guān)系結(jié)構(gòu)還是面向?qū)ο蠼Y(jié)構(gòu),oracle數(shù)據(jù)庫(kù)都將其數(shù)據(jù)存放在數(shù)據(jù)文件中。在其內(nèi)部,數(shù)據(jù)庫(kù)結(jié)構(gòu)數(shù)據(jù)對(duì)文件的邏輯映射,使不同的數(shù)據(jù)分開(kāi)存儲(chǔ),這些邏輯劃分稱(chēng)為表空間。
表空間和文件介紹:
1、表空間
表空間(tablespace)是數(shù)據(jù)庫(kù)的邏輯劃分,每個(gè)數(shù)據(jù)庫(kù)至少有一個(gè)表空間,叫做系統(tǒng)表空間(system表空間)。一個(gè)表空間只能屬于一個(gè)數(shù)據(jù)庫(kù)。每個(gè)表空間由同一個(gè)磁盤(pán)上的一個(gè)或多個(gè)文件組成,這些文件稱(chēng)為數(shù)據(jù)文件。
表空間的特性:
1)控制數(shù)據(jù)庫(kù)數(shù)據(jù)磁盤(pán)分配; 2)限制用戶在表空間中可以使用的磁盤(pán)空間大小; 3)表空間具有online,offline,readonly,readwrite屬性;修改表空間的屬性:
SQL>altertablespace表空間名稱(chēng)屬性;
查詢表空間狀態(tài):
SQL>selecttablespace_name,statusfromdba_tablespaces;
注意:system,undo,temp表空間不能設(shè)為offline屬性。
4)完成部分?jǐn)?shù)據(jù)庫(kù)的備份與恢復(fù); 5)表空間通過(guò)數(shù)據(jù)文件來(lái)擴(kuò)大,表空間的大小等于構(gòu)成該表空間的所以數(shù)據(jù)文件的大小之和。
查詢表空間與數(shù)據(jù)文件對(duì)應(yīng)關(guān)系:
SQL>selecttablespace_name,bytes,file_namefromdba_data_files;
基于表空間的幾個(gè)操作:
1)查詢用戶缺省表空間:
SQL>selectusername,default_tablespacefromdba_users;
2)查詢表與存儲(chǔ)該表的表空間:
SQL>selecttable_name,tablespace_namefromuser_tables;
3)修改用戶缺省表空間:
SQL>alteruserusernamedefaulttablespacetablespace_name;
4)將數(shù)據(jù)從一個(gè)表空間移動(dòng)到另一個(gè)表空間:
SQL>altertabletable_namemovetablespacetablespace_name;
2、數(shù)據(jù)文件
每個(gè)表空間由同一個(gè)磁盤(pán)上的一個(gè)或多個(gè)文件組成,這些文件叫做數(shù)據(jù)文件(datafile),數(shù)據(jù)文件只能屬于一個(gè)表空間。數(shù)據(jù)文件創(chuàng)建后可以改變大小。創(chuàng)建新的表空間需要?jiǎng)?chuàng)建新的數(shù)據(jù)文件。數(shù)據(jù)文件一旦加入到表空間中,就不能從表空間中移走,也不能與其他表空間發(fā)生聯(lián)系。
數(shù)據(jù)庫(kù)必須的三類(lèi)文件是datafile,controlfile,redologfile。其他文件prameterfile,passwordfile,archivedlogfiles并不是數(shù)據(jù)庫(kù)必須的,他們只是輔助數(shù)據(jù)庫(kù)的。
查看數(shù)據(jù)庫(kù)的物理文件組成:
1)查看數(shù)據(jù)文件:SQL>select*fromv$datafile; 2)查看控制文件:SQL>select*fromv$controlfile; 3)查看日志文件:SQL>select*fromv$logfile。
二、實(shí)例
通俗的講實(shí)例就是操作oracle數(shù)據(jù)庫(kù)的一種手段。數(shù)據(jù)庫(kù)實(shí)例也稱(chēng)作服務(wù)器,是用來(lái)訪問(wèn)數(shù)據(jù)庫(kù)文件集的存儲(chǔ)結(jié)構(gòu)及后臺(tái)進(jìn)程的集合。一個(gè)數(shù)據(jù)庫(kù)可以被多個(gè)實(shí)例訪問(wèn)(稱(chēng)為真正的應(yīng)用群集選項(xiàng))。決定實(shí)例的大小及組成的各種參數(shù)或者存儲(chǔ)在名稱(chēng)init.ora的初始化文件中,或者隱藏在數(shù)據(jù)庫(kù)內(nèi)部的服務(wù)器參數(shù)文件中。通過(guò)spfile引用該文件,spfile存儲(chǔ)在spfile.ora文件中。實(shí)例啟動(dòng)時(shí)讀取初始化文件,數(shù)據(jù)庫(kù)系統(tǒng)管理員可以修改該文件,對(duì)初始化文件的修改只有在下次啟動(dòng)時(shí)才有效。
Instance分為兩部分:
1、memorystructure(內(nèi)存結(jié)構(gòu))
memorystructure分為兩部分:SGA(SystemGlobalArea)區(qū)是用于存儲(chǔ)數(shù)據(jù)庫(kù)信息的內(nèi)存區(qū),該信息為數(shù)據(jù)庫(kù)進(jìn)程所共享。它包含Oracle服務(wù)器的數(shù)據(jù)和控制信息,它是在Oracle服務(wù)器所駐留的計(jì)算機(jī)的實(shí)際內(nèi)存中得以分配,如果實(shí)際內(nèi)存不夠再往虛擬內(nèi)存中寫(xiě)。
包括:
◆sharepool ◆datafasebuffercache ◆redologbuffer ◆otherstructures
PGA(ProgramGlobalArea)區(qū)包含單個(gè)服務(wù)器進(jìn)程或單個(gè)后臺(tái)進(jìn)程的數(shù)據(jù)和控制信息,與幾個(gè)進(jìn)程共享的SGA正相反PGA是只被一個(gè)進(jìn)程使用的區(qū)域,PGA在創(chuàng)建進(jìn)程時(shí)分配在終止進(jìn)程時(shí)回收。
2、backgroundprocess(后臺(tái)進(jìn)程)
包括:PMON負(fù)責(zé)在一個(gè)Oracle進(jìn)程失敗時(shí)清理資源。
◆SMON檢查數(shù)據(jù)庫(kù)的一致性如有必要還會(huì)在數(shù)據(jù)庫(kù)打開(kāi)時(shí)啟動(dòng)數(shù)據(jù)庫(kù)的恢復(fù)。 ◆DBWR負(fù)責(zé)將更改的數(shù)據(jù)從數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存寫(xiě)入數(shù)據(jù)文件。 ◆LGWR將重做日志緩沖區(qū)中的更改寫(xiě)入在線重做日志文件。 ◆CKPT負(fù)責(zé)在每當(dāng)緩沖區(qū)高速緩存中的更改永久地記錄在數(shù)據(jù)庫(kù)中時(shí),更新控制文件和數(shù)據(jù)文件中的數(shù)據(jù)庫(kù)狀態(tài)信息。
相關(guān)文章:
1. sql中exists的基本用法示例2. oracle基本概念和術(shù)語(yǔ)3. 正確認(rèn)識(shí)DB2數(shù)據(jù)庫(kù)分區(qū)兼容性和并置概念4. Oracle觸發(fā)器和程序包的基本介紹5. SQL Server 2000安裝和基本框架6. mysql數(shù)據(jù)庫(kù)常見(jiàn)基本操作實(shí)例分析【創(chuàng)建、查看、修改及刪除數(shù)據(jù)庫(kù)】7. 循序漸進(jìn)講解Oracle數(shù)據(jù)庫(kù)的完整性概念8. Mysql數(shù)據(jù)庫(kù)的增刪改查、備份、還原等基本操作大全9. MySQL中explain語(yǔ)句的基本使用教程10. MySQL 表空間碎片的概念及相關(guān)問(wèn)題解決
