oracle-11g-R2體系結(jié)構(gòu)和用戶(hù)管理_第1頁(yè)
oracle-11g-R2體系結(jié)構(gòu)和用戶(hù)管理_第2頁(yè)
oracle-11g-R2體系結(jié)構(gòu)和用戶(hù)管理_第3頁(yè)
oracle-11g-R2體系結(jié)構(gòu)和用戶(hù)管理_第4頁(yè)
oracle-11g-R2體系結(jié)構(gòu)和用戶(hù)管理_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1.1. Oracle 11g R2體系結(jié)構(gòu)安裝oracle軟件-創(chuàng)建數(shù)據(jù)庫(kù)-在數(shù)據(jù)庫(kù)中創(chuàng)建表-表里存儲(chǔ)信息-這些表文件需要存儲(chǔ)在物理硬盤(pán)上面。假如有一個(gè)用戶(hù)(這個(gè)用戶(hù)可以是遠(yuǎn)程用戶(hù),也可以是本地的,也可以是一個(gè)應(yīng)用程序)連接到oracle數(shù)據(jù)庫(kù)上面,用戶(hù)是不能直接連接在硬盤(pán)上存儲(chǔ)的數(shù)據(jù)文件,所以在oracle中要運(yùn)行一個(gè)實(shí)例,實(shí)例并不是保存在硬盤(pán)上面的,實(shí)例是內(nèi)存的一部分,而庫(kù)和表文件是存放在硬盤(pán)上面的,用戶(hù)不能直接訪(fǎng)問(wèn)庫(kù)里面的數(shù)據(jù),只能訪(fǎng)問(wèn)實(shí)例,實(shí)例是一個(gè)特殊的內(nèi)存塊,只有實(shí)例能和數(shù)據(jù)庫(kù)直接通信,在咱們的實(shí)驗(yàn)環(huán)境中實(shí)例和數(shù)據(jù)庫(kù)是在同一臺(tái)機(jī)器上,我們稱(chēng)之為單實(shí)例環(huán)境,對(duì)于用戶(hù)而言所有的操作都

2、是在實(shí)例中完成的,oracle為實(shí)例劃分了一個(gè)內(nèi)存塊,這個(gè)內(nèi)存塊我們稱(chēng)之為SGA,其實(shí)oracle實(shí)例啟動(dòng)的時(shí)候,將會(huì)分配一個(gè)SGA系統(tǒng)全局區(qū)并啟動(dòng)一些oracle的后臺(tái)進(jìn)程(守護(hù)進(jìn)程)。SGA核心組件介紹:在oracle中內(nèi)存=SGA+PGA一個(gè)實(shí)例只能有一個(gè)SGA,所有的服務(wù)器進(jìn)程和后臺(tái)進(jìn)程都共享一個(gè)SGAPGA:我們先看一下一個(gè)select語(yǔ)句是如何被執(zhí)行的?如果hr用戶(hù)寫(xiě)了一個(gè)select * from scott.emp;第一步:先做編譯,編譯包含了語(yǔ)法的檢查和語(yǔ)義的檢查。第二步:如果編譯沒(méi)有問(wèn)題會(huì)進(jìn)入shared pool(共享池 )中,而shared pool 是由library

3、 cache和data dictionary cache(數(shù)據(jù)字典緩存)組成。Sql語(yǔ)句第一時(shí)間會(huì)進(jìn)入library cache中,即library cache中會(huì)存放被編譯過(guò)的正確的sql語(yǔ)句,僅僅是sql語(yǔ)句而已。library cache中沒(méi)有緩存的sql語(yǔ)句需要進(jìn)行硬解析(即需要耗費(fèi)設(shè)備的I/0資源從硬盤(pán)讀取)。假設(shè)library cache中有這個(gè)sql語(yǔ)句,就不需要做硬解析,接著會(huì)查 data dictionary cache。data dictionary cache中緩存了權(quán)限和對(duì)象數(shù)據(jù)及屬性,所有data dictionary cache檢查hr用戶(hù)是否對(duì)scott.emp表

4、是否具有訪(fǎng)問(wèn)權(quán)限,如果有權(quán)限繼續(xù)往下執(zhí)行,如果沒(méi)有權(quán)限,直接給hr用戶(hù)返回一個(gè)結(jié)果。如果一條語(yǔ)句從來(lái)都沒(méi)有被執(zhí)行過(guò),這條語(yǔ)句首先被緩存在share pool中的library cache中,下一次被執(zhí)行的時(shí)候直接從share pool中取sql語(yǔ)句。存放sql語(yǔ)句也需要占用空間,share pool的空間也是有限的,為了防止share pool空間不夠用,采用先進(jìn)先出的規(guī)則即后執(zhí)行的sql語(yǔ)句會(huì)覆蓋先執(zhí)行的sql語(yǔ)句來(lái)釋放空間,當(dāng)然share pool的空間越大越好。我們通過(guò)企業(yè)管理器來(lái)查看share pool的相關(guān)信息在sql plus中可以用以下方式查看,圖中“0”表示自動(dòng)化管理可以從v$

5、sgainfo中查看shared pool sizeSQL> select name,bytes/1024/1024|'MB' from v$sgainfo;Shared Pool Size256MBLarge Pool Size16MBJava Pool Size16MB第三步:data buffer cache現(xiàn)在hr用戶(hù)可以訪(fǎng)問(wèn)scott.emp表了,data buffer cache的作用就是從磁盤(pán)或存儲(chǔ)中將數(shù)據(jù)塊調(diào)入內(nèi)存,緩存在buffer cache中。舉例:用戶(hù)第一次訪(fǎng)問(wèn)scott.emp的內(nèi)容SQL> set timing onSQL> sel

6、ect * from scott.emp;第一次執(zhí)行sql語(yǔ)句已選擇14行。已用時(shí)間: 00: 00: 00.05SQL> /再次執(zhí)行上一條命令所用的時(shí)間為00: 00: 00.00已選擇14行。已用時(shí)間: 00: 00: 00.00總結(jié):buffer cache緩存數(shù)據(jù)本身,library cache緩存sql語(yǔ)句本身??梢酝ㄟ^(guò)show parameter db_cache_size查看buffer cache的大小第四步:redo log buffer<重做日志緩沖區(qū)>當(dāng)用戶(hù)執(zhí)行insert,update,delete,create,alter等操作后,數(shù)據(jù)發(fā)生了變化,這

7、些變化了的數(shù)據(jù)寫(xiě)入數(shù)據(jù)緩沖區(qū)(buffer cache)之前,先寫(xiě)入重做日志緩沖區(qū),同時(shí)變化之前的數(shù)據(jù)也放入重做日志緩存中,這樣做,是為了保證在數(shù)據(jù)恢復(fù)時(shí)oracle就知道哪些事務(wù)需要提交,哪些事務(wù)需要撤回。1.2. Oracle 進(jìn)程1. 用戶(hù)進(jìn)程Ps elf | greporacleocl |grepv grep2. 數(shù)據(jù)庫(kù)進(jìn)程Ps elf |greporacleorcl3. 守護(hù)進(jìn)程Ps elf |grep oha大池:在SGA中,大池是一個(gè)可選的緩沖區(qū)域,管理員可以根據(jù)需要對(duì)其進(jìn)行配置,在大規(guī)模輸入輸出及備份過(guò)程中需要大池作為緩存空間,例如,大數(shù)據(jù)操作、數(shù)據(jù)庫(kù)備份與恢復(fù)之類(lèi)的操作。Ja

8、va池:Java池是一個(gè)可選的緩沖區(qū),但是在安裝java或者java程序時(shí)必須設(shè)置Java池,它用于編譯Java語(yǔ)言編寫(xiě)指令。六大核心進(jìn)程:DBWn進(jìn)程:用來(lái)將buffer cache中的臟數(shù)據(jù)寫(xiě)入到硬盤(pán)中數(shù)據(jù)文件中。什么是臟數(shù)據(jù),例如我執(zhí)行如下語(yǔ)句SQL> update emp set sal=sal+100;此時(shí)修改過(guò)的數(shù)據(jù)存放在內(nèi)存中,并沒(méi)有保存到硬盤(pán)上的數(shù)據(jù)文件中,這些數(shù)據(jù)緩存在buffer cache中,該事務(wù)還沒(méi)有提交(commit),這樣修改過(guò)還沒(méi)有寫(xiě)入硬盤(pán)數(shù)據(jù)文件的數(shù)據(jù)我們稱(chēng)之為臟數(shù)據(jù)。其實(shí)此時(shí)在打開(kāi)一個(gè)會(huì)話(huà),使用SCOTT用戶(hù)連接查看emp表中數(shù)據(jù)是未修改過(guò)的數(shù)據(jù)。所以

9、在oracle中這樣的操作是異步寫(xiě)入,多個(gè)進(jìn)程可以同時(shí)寫(xiě)入,多個(gè)賬戶(hù)就會(huì)有多個(gè)DBWn進(jìn)程,其實(shí)進(jìn)程名叫DMW,后面的n是產(chǎn)生的進(jìn)程標(biāo)識(shí)SQL> update scott.emp set sal=sal+100;已更新14行。SQL>LGWR:日志寫(xiě)入進(jìn)程只有一個(gè)當(dāng)用戶(hù)commit(提交事務(wù))時(shí)觸發(fā)lgwr進(jìn)程當(dāng)red log buffer空間的三分之一空間被使用完時(shí)會(huì)觸發(fā)lgwr進(jìn)程把臟數(shù)據(jù)寫(xiě)入磁盤(pán)之前,該LGWR進(jìn)程將日志信息先寫(xiě)入到日志文件中,每隔3秒中執(zhí)行這樣的動(dòng)作。LGWR進(jìn)程不能有多個(gè),因?yàn)槿罩臼琼樞蚴菍?xiě)入的,不能做并行寫(xiě)入,否則無(wú)法做數(shù)據(jù)恢復(fù)。CKPT進(jìn)程:檢查所有數(shù)

10、據(jù)文件和控制文件的頭部是否一致,是確保在數(shù)據(jù)緩沖區(qū)中所有修改過(guò)的數(shù)據(jù)塊都被寫(xiě)入到數(shù)據(jù)文件中的一種機(jī)制,就是確保數(shù)據(jù)完整性的一種機(jī)制。但檢查點(diǎn)完成后,CKPT進(jìn)程負(fù)責(zé)更新數(shù)據(jù)文件和控制文件的頭部信息,并保存檢查點(diǎn)信息,以保證數(shù)據(jù)庫(kù)日志文件和數(shù)據(jù)文件的同步。其原理是在數(shù)據(jù)庫(kù)恢復(fù)時(shí),只需找到CKPT保存的最后一次檢查點(diǎn),就可以根據(jù)它確定在日志文件中恢復(fù)數(shù)據(jù)的起始位置,重新執(zhí)行之后的日志信息即可。SMON進(jìn)程:如果數(shù)據(jù)文件和控制文件頭部不一致,就會(huì)觸發(fā)SMON進(jìn)程。在實(shí)例啟動(dòng)時(shí)SMON進(jìn)程會(huì)檢查所有數(shù)據(jù)文件的同步信息與控制文件中記錄的檢查點(diǎn)信息是否一致,不一致就啟動(dòng)實(shí)例恢復(fù)操作。其實(shí)CKPT進(jìn)程是給S

11、MON進(jìn)程使用的。PMON進(jìn)程:進(jìn)程監(jiān)控進(jìn)程,PMON進(jìn)程管理用戶(hù)會(huì)話(huà),這個(gè)進(jìn)程會(huì)在某個(gè)會(huì)話(huà)出現(xiàn)問(wèn)題時(shí)執(zhí)行的適當(dāng)?shù)牟僮?。例如用?hù)的個(gè)人計(jì)算機(jī)在登錄到數(shù)據(jù)庫(kù)時(shí)重新啟動(dòng),PMON就能能夠檢測(cè)到這個(gè)問(wèn)題,而且還會(huì)整理用戶(hù)正在進(jìn)行的任何操作。1.3. oracle存儲(chǔ)結(jié)構(gòu)數(shù)據(jù)文件相關(guān)知識(shí)想查看系統(tǒng)中有多少個(gè)數(shù)據(jù)文件我們可以通過(guò)動(dòng)態(tài)數(shù)據(jù)字典或靜態(tài)數(shù)據(jù)字典來(lái)查看:通過(guò)靜態(tài)數(shù)據(jù)字典查看數(shù)據(jù)文件通過(guò)動(dòng)態(tài)數(shù)據(jù)字典來(lái)查看數(shù)據(jù)文件直接查看數(shù)據(jù)文件的內(nèi)容是看不到的,必須通過(guò)一個(gè)邏輯的結(jié)構(gòu)即表空間來(lái)查看數(shù)據(jù)文件的內(nèi)容。表空間是一個(gè)邏輯存儲(chǔ)結(jié)構(gòu),而數(shù)據(jù)文件是一個(gè)物理的結(jié)構(gòu)。如何查看表空間也可以通過(guò)dba_tablespa

12、ces查看表空間數(shù)據(jù)字典是一個(gè)邏輯的存儲(chǔ)結(jié)構(gòu),而數(shù)據(jù)文件是一個(gè)真實(shí)的存儲(chǔ)結(jié)構(gòu),如果有了表空間,而沒(méi)有數(shù)據(jù)文件是不可以,表空間和數(shù)據(jù)文件是相對(duì)應(yīng)的,如果沒(méi)有數(shù)據(jù)文件,表空間不可能獨(dú)立存在,如果只有表空間沒(méi)有數(shù)據(jù)文件也是不行的,就好比如果電腦沒(méi)有硬盤(pán),你不能再邏輯上看到C盤(pán)D盤(pán),在這里硬盤(pán)就相當(dāng)于是數(shù)據(jù)文件,而C盤(pán)就相當(dāng)于是表空間。我們可以把多個(gè)數(shù)據(jù)文件組成一個(gè)表空間,然后在表空間里面存儲(chǔ)數(shù)據(jù),表空間和數(shù)據(jù)文件是對(duì)應(yīng)的,一個(gè)表空間可以是由一個(gè)或多個(gè)數(shù)據(jù)文件組成的,但是一個(gè)數(shù)據(jù)文件只能在一個(gè)表空間當(dāng)中,我們?nèi)绾尾榭幢砜臻g和數(shù)據(jù)文件之間的對(duì)應(yīng)關(guān)系呢?也可以查看表空間的大小也可以在上述的表空間中創(chuàng)建新的

13、數(shù)據(jù)文件。如果表空間不夠用了,只需創(chuàng)建相應(yīng)的數(shù)據(jù)文件即可。表空間大小就是組成數(shù)據(jù)文件的大小的總和,最終數(shù)據(jù)文件存放在硬盤(pán)里的,但是我們可以把數(shù)據(jù)文件存放在不同的硬盤(pán)里面,只要在一個(gè)表空間即可,這樣就解決了硬盤(pán)大小對(duì)文件的限制,可以將多個(gè)硬盤(pán)中的數(shù)據(jù)文件組成一個(gè)表空間。所以在表空間中DBA會(huì)存放很多的表,視圖,索引,同義詞等對(duì)象。段:例如在xx表空間DBA創(chuàng)建了一個(gè)名為test的表,這張表表空間所占用的空間,我們稱(chēng)之為段。根據(jù)段中存儲(chǔ)的對(duì)象的不同分為了數(shù)據(jù)段,索引段,回退段,臨時(shí)段等可以查看段的信息對(duì)于段又有個(gè)更小的單位,稱(chēng)之為“區(qū)”區(qū)(extent):區(qū)是磁盤(pán)空間分配的最小單位,磁盤(pán)按區(qū)劃分,

14、每次至少分配一個(gè)區(qū),區(qū)由連續(xù)的數(shù)據(jù)塊組成,段主要由一個(gè)或多個(gè)區(qū)構(gòu)成,當(dāng)段創(chuàng)建時(shí),它至少包含一個(gè)區(qū),當(dāng)段中所有空間已經(jīng)使用完成時(shí),系統(tǒng)自動(dòng)為該段分配一個(gè)新區(qū),區(qū)不能跨數(shù)據(jù)文件存在,只能存在于一個(gè)數(shù)據(jù)文件中。段是由區(qū)組成的,段必須是區(qū)的整數(shù)倍,假如一張表是25MB,一個(gè)區(qū)大小是4MB,那么段的大小是28MB,如果在表里添加了3MB的數(shù)據(jù),此時(shí)段的空間還能容納表,現(xiàn)在表的大小是28MB,如果又添加了1MB,此時(shí)29MB,那么段的空間是32MB.查看EXAMPLE表空間的區(qū)和段的分布情況在oracle數(shù)據(jù)庫(kù)中最小的存儲(chǔ)單位是塊(block)-8KB,oracle數(shù)據(jù)庫(kù)中的數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)塊中。數(shù)據(jù)塊是o

15、racle服務(wù)器所能讀取或?qū)懭氲淖钚〈鎯?chǔ)單元,oracle服務(wù)器以數(shù)據(jù)塊為單位管理數(shù)據(jù)文件的存儲(chǔ)空間,數(shù)據(jù)塊的取值范圍為2-64KB,其默認(rèn)大小與oracle版本有關(guān)。查看操作系統(tǒng)的最小存儲(chǔ)單元rootorclsrv # tune2fs -l /dev/sda1通過(guò)OEM也可以查看這些信創(chuàng)建表空間和數(shù)據(jù)文件SQL> create tablespace xx datafile '/u01/xx.dbf' size 100m autoextend on2 next 5m maxsize 200m;表空間已創(chuàng)建。修改表空間的名字為yy為了好管理,我們希望表空間的名字和數(shù)據(jù)文件的

16、名字一致。解決辦法:1. 使用操作系統(tǒng)命令將數(shù)據(jù)文件拷貝一份2. 把表空間offline3. 然后對(duì)數(shù)據(jù)文件重命名將表空間offline對(duì)數(shù)據(jù)文件重命名查看修改情況將表空間online提示需要恢復(fù)/u01/yy.dbf將表空間online如何擴(kuò)展表空間大小1. 直接改變數(shù)據(jù)文件大小2. 給表空間增加數(shù)據(jù)文件如果表空間所在的分區(qū)的空間不夠用了刪除表空間創(chuàng)建臨時(shí)表空間創(chuàng)建臨時(shí)表空間刪除臨時(shí)表空間與刪除表空間的命令是一樣的。1.4. oracle 用戶(hù)管理如果想查看oracle系統(tǒng)中存在用戶(hù)可以查看dba_users視圖如果使用sqlplus查詢(xún)需要提前格式化SQL> col username

17、 for a20SQL> col account_status for a20SQL> col default_tablespace for a20SQL> set linesize 120SQL> set pagesize 120SQL> select username,account_status,default_tablespace from dba_users;USERNAME ACCOUNT_STATUS DEFAULT_TABLESPACE- - -MGMT_VIEW OPEN SYSTEMSYSOPENSYSTEMSYSTEM OPENSYSTEMD

18、BSNMP OPENSYSAUXSYSMAN OPENSYSAUXSCOTTOPENUSERSOUTLN EXPIRED & LOCKED SYSTEMFLOWS_FILES EXPIRED & LOCKED SYSAUXMDSYS EXPIRED & LOCKED SYSAUXORDSYS EXPIRED & LOCKED SYSAUXEXFSYS EXPIRED & LOCKED SYSAUXOracle 用戶(hù)管理-要想訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),任何人都必須成為能夠通過(guò)oracle身份驗(yàn)證的有效數(shù)據(jù)庫(kù)用戶(hù),我們可以配置應(yīng)用程序要求每個(gè)需要進(jìn)行訪(fǎng)問(wèn)的個(gè)體都具有不同的

19、數(shù)據(jù)庫(kù)賬戶(hù),也可以配置應(yīng)用程序自身作為公共用戶(hù)連接數(shù)據(jù)庫(kù)并在內(nèi)部處理應(yīng)用程序級(jí)別的權(quán)限。無(wú)論選用哪種方法,在數(shù)據(jù)庫(kù)內(nèi)部都需要?jiǎng)?chuàng)建一個(gè)或多個(gè)允許操作數(shù)據(jù)的用戶(hù)。1.5. 用戶(hù)與模式(schema)創(chuàng)建用戶(hù)的語(yǔ)法:Create user用戶(hù)名 identified by 密碼 default tablespace表空間 quota 大小 on 表空間;注意:在創(chuàng)建用戶(hù)的時(shí)候雖然用戶(hù)名寫(xiě)的時(shí)小寫(xiě)的,但是存儲(chǔ)到數(shù)據(jù)字典的時(shí)候卻是大寫(xiě)的,比如create user tom.如果非要使用小寫(xiě)的話(huà),用戶(hù)名需要使用雙引號(hào)括起來(lái) create user “tom”創(chuàng)建的用戶(hù)沒(méi)有任何權(quán)限,連登陸數(shù)據(jù)庫(kù)的權(quán)限都沒(méi)有。如果沒(méi)有設(shè)置用戶(hù)對(duì)某個(gè)表空間的配額,那么即使這個(gè)用戶(hù)對(duì)該表空間有寫(xiě)權(quán)限,也是無(wú)法寫(xiě)入的。舉例說(shuō)明:查看HR用戶(hù)的狀態(tài)修改HR用戶(hù)的密碼為oracle手工設(shè)置過(guò)期;解鎖用戶(hù)舉例說(shuō)明oracle的授予權(quán)限和撤銷(xiāo)權(quán)限在創(chuàng)建用戶(hù)之前,創(chuàng)建一個(gè)表空間xxx創(chuàng)建一個(gè)表空間xxxcreatetablespace xxx datafile '/u01/xxx.dbf' size 100m autoextend on next 10m maxsize unlimited;創(chuàng)建用戶(hù)tomcreate user tom identified by ora

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論