




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、OracleOracle體系結(jié)構(gòu)體系結(jié)構(gòu)(1)首先在)首先在Oracle 10g中通過使用(中通過使用( )創(chuàng)建數(shù)據(jù)庫,并將其命名為創(chuàng)建數(shù)據(jù)庫,并將其命名為Orcl。(2)然后,通過)然后,通過MS-DOS命令啟動命令啟動Oracle10g服務(wù),在窗口中輸入:服務(wù),在窗口中輸入:(3)Oracle 10g安裝完畢后,(安裝完畢后,( )帳號被鎖定。)帳號被鎖定。上節(jié)回顧上節(jié)回顧2OracleOracleDataBase Configuration Assistant NET START OracleServiceOrclScott3.1 Oracle全局體系全局體系3.2 實例與數(shù)據(jù)庫實例與數(shù)
2、據(jù)庫3.3 System Global Area3.4 Program Global Area3.5 進程結(jié)構(gòu)進程結(jié)構(gòu)3.6 邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)3.7 總結(jié)總結(jié)3.8 習(xí)題習(xí)題本章內(nèi)容本章內(nèi)容3OracleOracle 3.1 3.1 Oracle全局體系全局體系4OracleOracle 3.1 3.1 Oracle全局體系全局體系5OracleOracle Oracle由兩部分組成,由兩部分組成,Instance和和Database。 Instance(實例)是操作數(shù)據(jù)庫的一種手段。(實例)是操作數(shù)據(jù)庫的一種手段。 其中,其中,SGA (System Global Area)稱為系統(tǒng)全局區(qū),
3、包括共享池、數(shù)據(jù)高速緩沖、重做日志高稱為系統(tǒng)全局區(qū),包括共享池、數(shù)據(jù)高速緩沖、重做日志高速緩沖。速緩沖。 Database是物理存在,一系列的文件系統(tǒng)。是物理存在,一系列的文件系統(tǒng)。Data Files、Control Files、Redo Log Files是必需的,而是必需的,而Archived Log Files、Parameter File、Password File是非必需的。是非必需的。 注意:注意:用戶進程如啟動用戶進程如啟動sqlplus與與Oracle Server進行連接,在進行連接,在SQLPLUS中執(zhí)行一個中執(zhí)行一個COMMAND。Oracle Server在后臺啟動一
4、個服務(wù)器在后臺啟動一個服務(wù)器進程,用戶進程通過服務(wù)器進程來操作進程,用戶進程通過服務(wù)器進程來操作Instance和和Database。 (用戶進程無用戶進程無法直接操作法直接操作Instance和和Database) Oracle server(Oracle服務(wù)器)服務(wù)器) (1)是一個數(shù)據(jù)庫管理系統(tǒng),提供一種開放、全面、)是一個數(shù)據(jù)庫管理系統(tǒng),提供一種開放、全面、集成的信息管理方法;集成的信息管理方法; (2)由)由Oracle Instance和和Oracle Database組成。組成。 從嚴(yán)格意義上講,從嚴(yán)格意義上講,Control Files應(yīng)該置于應(yīng)該置于Instance和和Dat
5、abase之間,它用來連接之間,它用來連接Instance和和Database。 3.1 3.1 Oracle全局體系全局體系6OracleOracle 舉例說明控制文件的作用:舉例說明控制文件的作用: Oracle的啟動過程的啟動過程 (1)關(guān)閉數(shù)據(jù)庫)關(guān)閉數(shù)據(jù)庫 SQL conn system/admin as sysdba 已連接。已連接。 SQL shutdown immediate 數(shù)據(jù)庫已經(jīng)關(guān)閉。數(shù)據(jù)庫已經(jīng)關(guān)閉。 已經(jīng)卸載數(shù)據(jù)庫。已經(jīng)卸載數(shù)據(jù)庫。 ORACLE例程已經(jīng)關(guān)閉。例程已經(jīng)關(guān)閉。3.1 3.1 Oracle全局體系全局體系7OracleOracle (2)啟動數(shù)據(jù)庫)啟動數(shù)
6、據(jù)庫 SQL startup nomount 非安裝啟動,這種方式啟動下可執(zhí)行:重建控制文件、重建數(shù)據(jù)庫,非安裝啟動,這種方式啟動下可執(zhí)行:重建控制文件、重建數(shù)據(jù)庫,讀取讀取init.ora文件,啟動文件,啟動instance,即啟動,即啟動SGA和后臺進程。和后臺進程。 SQL alter database mount; 數(shù)據(jù)庫已更改。數(shù)據(jù)庫已更改。(根據(jù)參數(shù)文件中記錄的控制文件地址,去讀取控制根據(jù)參數(shù)文件中記錄的控制文件地址,去讀取控制文件文件) SQL alter database open; 數(shù)據(jù)庫已更改。數(shù)據(jù)庫已更改。(根據(jù)控制文件中記錄的數(shù)據(jù)文件地址,讀取數(shù)據(jù)文根據(jù)控制文件中記錄的
7、數(shù)據(jù)文件地址,讀取數(shù)據(jù)文件,打開數(shù)據(jù)庫件,打開數(shù)據(jù)庫)3.1 3.1 Oracle全局體系全局體系8OracleOracle 3.2 3.2 實例與數(shù)據(jù)庫實例與數(shù)據(jù)庫9OracleOracle Instance包含包含memory structure和和 background process 3.2 3.2 實例與數(shù)據(jù)庫實例與數(shù)據(jù)庫10OracleOracle一個一個Oracle Instance (1)是一種訪問一個)是一種訪問一個Oracle database的手段;的手段; (2)能且僅能操作一個)能且僅能操作一個database;(但是一個數(shù)據(jù)庫可以;(但是一個數(shù)據(jù)庫可以有多個實例)有
8、多個實例) (3)由內(nèi)存結(jié)構(gòu)()由內(nèi)存結(jié)構(gòu)(SGA)和進程結(jié)構(gòu)兩部分組成。)和進程結(jié)構(gòu)兩部分組成。 必須的后臺進程在每個必須的后臺進程在每個Instance中都存在,可選的后臺進中都存在,可選的后臺進程根據(jù)程根據(jù)Instance要求的不同進行選擇使用。要求的不同進行選擇使用。 3.2 3.2 實例與數(shù)據(jù)庫實例與數(shù)據(jù)庫11OracleOracleOracle Instance操作操作 SQL show sga 給出內(nèi)存結(jié)構(gòu)信息。給出內(nèi)存結(jié)構(gòu)信息。 SQL select * from v$bgprocess; 給出系統(tǒng)中所有可能使用到的后臺進程。并不是所有的后給出系統(tǒng)中所有可能使用到的后臺進程。并
9、不是所有的后臺進程都分配了有效的地址空間,必須的后臺進程當(dāng)前分配了臺進程都分配了有效的地址空間,必須的后臺進程當(dāng)前分配了有效的地址空間。有效的地址空間。 SQL select * from v$bgprocess where paddr00; 給出系統(tǒng)必須的后臺進程。給出系統(tǒng)必須的后臺進程。 3.2 3.2 實例與數(shù)據(jù)庫實例與數(shù)據(jù)庫12OracleOracle建立連接建立連接,創(chuàng)建用戶會話創(chuàng)建用戶會話 用戶進程通過服務(wù)器進程連接用戶進程通過服務(wù)器進程連接Oracle Server,在對用戶身份進行驗證,在對用戶身份進行驗證后,用戶進程就與一個后,用戶進程就與一個Oracle Instance建
10、立了連接,這包括建立一個用戶連建立了連接,這包括建立一個用戶連接和創(chuàng)建一個會話。接和創(chuàng)建一個會話。 3.2 3.2 實例與數(shù)據(jù)庫實例與數(shù)據(jù)庫13OracleOracleOracle Database包含包含data file、log file和和control fileOracle Database (1)是一個數(shù)據(jù)集合,集合中的數(shù)據(jù)作為整體單元處理;)是一個數(shù)據(jù)集合,集合中的數(shù)據(jù)作為整體單元處理; (2)包含三種類型文件(必需的);)包含三種類型文件(必需的); (3)Parameter File、Password File、Archived Log Files完成完成Oracle Data
11、base的輔助功能,并不是的輔助功能,并不是Database所必需的。所必需的。 3.2 3.2 實例與數(shù)據(jù)庫實例與數(shù)據(jù)庫14OracleOracleOracle Database物理結(jié)構(gòu)(文件系統(tǒng))物理結(jié)構(gòu)(文件系統(tǒng)) 一個一個Oracle Database的物理結(jié)構(gòu)由為數(shù)據(jù)庫信息提供真實物理存儲的操的物理結(jié)構(gòu)由為數(shù)據(jù)庫信息提供真實物理存儲的操作系統(tǒng)文件決定:作系統(tǒng)文件決定: (1)控制文件;()控制文件;(2)數(shù)據(jù)文件;()數(shù)據(jù)文件;(3)日志文件)日志文件 每類文件都可能有多個,不是僅有一個。每類文件都可能有多個,不是僅有一個。由于日志分組,在由于日志分組,在Oracle Databas
12、e中至少有兩中至少有兩個在線日志文件。個在線日志文件。參數(shù)文件參數(shù)文件控制文件控制文件控制文件控制文件數(shù)據(jù)文件數(shù)據(jù)文件 數(shù)據(jù)文件數(shù)據(jù)文件 日志文件日志文件 日志文件日志文件 3.2 3.2 實例與數(shù)據(jù)庫實例與數(shù)據(jù)庫15OracleOracle注意:注意: oracle中包含兩種日志文件中包含兩種日志文件 (1)聯(lián)機日志文件(重做日志文件,以循環(huán)的方式工作)聯(lián)機日志文件(重做日志文件,以循環(huán)的方式工作) (2)歸檔日志文件(備份,尤其是熱備份時必須選擇的一種歸檔方式)歸檔日志文件(備份,尤其是熱備份時必須選擇的一種歸檔方式)歸檔模式和非歸檔模式的區(qū)別:歸檔模式和非歸檔模式的區(qū)別: 在歸檔模式下,
13、所有的事務(wù)重做日志都將被保存。因而即使以循環(huán)的在歸檔模式下,所有的事務(wù)重做日志都將被保存。因而即使以循環(huán)的方式工作,在一個重做日志被覆蓋前均將為其建立一個副本。在重做日志方式工作,在一個重做日志被覆蓋前均將為其建立一個副本。在重做日志文件復(fù)制完成之前,文件復(fù)制完成之前,oracle數(shù)據(jù)庫將停止一切新的操作,在舊的事務(wù)記錄數(shù)據(jù)庫將停止一切新的操作,在舊的事務(wù)記錄完成之前完成之前oracle不對其進行覆蓋。(可從所有類型的失敗中恢復(fù),是一種不對其進行覆蓋。(可從所有類型的失敗中恢復(fù),是一種最安全的數(shù)據(jù)庫工作方式)最安全的數(shù)據(jù)庫工作方式) 在非歸檔模式下(系統(tǒng)默認(rèn)),系統(tǒng)不保留舊的重做日志。因而具有
14、在非歸檔模式下(系統(tǒng)默認(rèn)),系統(tǒng)不保留舊的重做日志。因而具有有限的恢復(fù),主要被設(shè)計為在例行故障時得到保護。有限的恢復(fù),主要被設(shè)計為在例行故障時得到保護。 3.2 3.2 實例與數(shù)據(jù)庫實例與數(shù)據(jù)庫16OracleOracle查看系統(tǒng)文件查看系統(tǒng)文件 查看系統(tǒng)中的控制文件查看系統(tǒng)中的控制文件 SQL select * from v$controlfile; 舉例:舉例: D:ORACLEORADATAFOXCONTROL01.CTL D:ORACLEORADATAFOXCONTROL02.CTL D:ORACLEORADATAFOXCONTROL03.CTL 查看系統(tǒng)中的數(shù)據(jù)文件查看系統(tǒng)中的數(shù)據(jù)文
15、件 SQL select * from v$datafile; 查看系統(tǒng)中的日志文件查看系統(tǒng)中的日志文件 SQL select * from v$logfile; 3.3 3.3 System Global Area17OracleOracleOracle的內(nèi)存結(jié)構(gòu)的內(nèi)存結(jié)構(gòu) Oracle的內(nèi)存結(jié)構(gòu)包括如下兩個內(nèi)存區(qū)域:的內(nèi)存結(jié)構(gòu)包括如下兩個內(nèi)存區(qū)域: (1)SGA (System Global Area): 當(dāng)啟動當(dāng)啟動Instance時被分配,時被分配,是一個是一個Oracle Instance的基礎(chǔ)組件,所有進程共享這一內(nèi)存區(qū)的基礎(chǔ)組件,所有進程共享這一內(nèi)存區(qū)域;域; (2)PGA (P
16、rogram Global Area): 當(dāng)服務(wù)器進程啟動時當(dāng)服務(wù)器進程啟動時被分配,一個進程獨享的獨立于被分配,一個進程獨享的獨立于SGA之外的內(nèi)存區(qū)域。之外的內(nèi)存區(qū)域。 3.3 3.3 System Global Area18OracleOracleSGA (系統(tǒng)全局區(qū)域,系統(tǒng)全局區(qū)域,System Global Area) 3.3 3.3 System Global Area19OracleOracleSGA (System Global Area) SGA包括如下幾個內(nèi)存結(jié)構(gòu):包括如下幾個內(nèi)存結(jié)構(gòu): (1)Shared pool(共享池):(共享池):由庫緩存區(qū)和數(shù)據(jù)字由庫緩存區(qū)和數(shù)據(jù)
17、字典緩存區(qū)組成。存儲最常執(zhí)行的典緩存區(qū)組成。存儲最常執(zhí)行的SQL語句和最常使用的數(shù)語句和最常使用的數(shù)據(jù)字典中的數(shù)據(jù)。據(jù)字典中的數(shù)據(jù)。 (2)Database buffer cache(數(shù)據(jù)塊緩存區(qū)):(數(shù)據(jù)塊緩存區(qū)):存儲存儲經(jīng)常使用的數(shù)據(jù)。經(jīng)常使用的數(shù)據(jù)。 (3)Redo log buffer(重做日志緩存區(qū)):(重做日志緩存區(qū)):記錄在記錄在Oracle中透過中透過SGA所做改變的日志,操作類型、操作的原所做改變的日志,操作類型、操作的原址和新址,最終將寫入到在線日志中去。址和新址,最終將寫入到在線日志中去。 (4)Other structure:由數(shù)據(jù)庫管理員配置的可選內(nèi)由數(shù)據(jù)庫管理員配
18、置的可選內(nèi)存空間,有兩種分別是存空間,有兩種分別是Large pool、Java pool等等 3.3 3.3 System Global Area20OracleOracleSGA (System Global Area) (1)SGA是動態(tài)改變的,使用是動態(tài)改變的,使用SGA_MAX_SIZE可以可以設(shè)置其尺寸;設(shè)置其尺寸; (2)SGA組件完成細(xì)粒度的組件完成細(xì)粒度的SGA內(nèi)存分配和處理:內(nèi)存分配和處理: Oracle9i后,可以動態(tài)地改變后,可以動態(tài)地改變SGA_MAX_SIZE,之前的版本需要關(guān)閉數(shù)據(jù)庫后修改配,之前的版本需要關(guān)閉數(shù)據(jù)庫后修改配置文件,而后重新啟動數(shù)據(jù)庫使改變生效;置
19、文件,而后重新啟動數(shù)據(jù)庫使改變生效; SGA_MAX_SIZE是可以動態(tài)設(shè)置的。是可以動態(tài)設(shè)置的。 3.3 3.3 System Global Area21OracleOracleSGA (System Global Area) (1)顯示)顯示SGA的參數(shù)的參數(shù) SQL show parameter shared SQL show parameter db_cache SQL show parameter log(2)查看)查看SGA狀況狀況 SQL show parameter sga 可以看到可以看到Oracle當(dāng)前的當(dāng)前的SGA尺寸,即尺寸,即SGA_MAX_SIZE的值,初始時與安裝
20、的值,初始時與安裝Oracle創(chuàng)建創(chuàng)建Oracle數(shù)數(shù)據(jù)庫時的默認(rèn)設(shè)置相同。據(jù)庫時的默認(rèn)設(shè)置相同。 3.3 3.3 System Global Area22OracleOracle 3.3 3.3 System Global Area23OracleOracleSGA (System Global Area) 進行修改進行修改SGA中的緩沖區(qū)參數(shù)的實驗中的緩沖區(qū)參數(shù)的實驗 SQL alter system set db_cache_size=60m; 運行結(jié)果會報錯,提示運行結(jié)果會報錯,提示“沒有足夠的內(nèi)存來增加高速沒有足夠的內(nèi)存來增加高速緩存的大小緩存的大小” SQL alter syste
21、m set db_cache_size=20m; 改變是可以成功的,有充足的內(nèi)存進行緩沖區(qū)分配。改變是可以成功的,有充足的內(nèi)存進行緩沖區(qū)分配。 修改的原則是所有的緩沖區(qū)的尺寸總和不能超過修改的原則是所有的緩沖區(qū)的尺寸總和不能超過SGA_MAX_SIZE。 3.3 3.3 System Global Area24OracleOracleSGA Shared Pool 共享池用于存儲最近執(zhí)行的共享池用于存儲最近執(zhí)行的SQL語句及最近使用的數(shù)據(jù)定義:語句及最近使用的數(shù)據(jù)定義: (1)它包含兩個與性能相關(guān)的關(guān)鍵內(nèi)存結(jié)構(gòu))它包含兩個與性能相關(guān)的關(guān)鍵內(nèi)存結(jié)構(gòu) Library cache:當(dāng)前:當(dāng)前SQL、
22、PL/SQL的執(zhí)行計劃、文本等的執(zhí)行計劃、文本等 Data dictionary cache:權(quán)限信息,:權(quán)限信息,Database的結(jié)構(gòu)信息等,的結(jié)構(gòu)信息等,dictionary cache又稱為行又稱為行cache(row cache) (2)可以通過參數(shù))可以通過參數(shù)SHARED_POOL_SIZE改變改變shared pool的尺寸的尺寸 庫緩存區(qū)庫緩存區(qū)字典緩存區(qū)字典緩存區(qū)共享SQL區(qū)PL/SQL區(qū)區(qū) 3.3 3.3 System Global Area25OracleOracleSGA Library Cache Library cache存儲最近使用的存儲最近使用的SQL、PL/
23、SQL語句的信息。語句的信息。Library cache: (1)允許常用語句共享)允許常用語句共享 當(dāng)當(dāng)cache已存在與當(dāng)前已存在與當(dāng)前COMMAND相同的相同的SQL語句,則直接調(diào)用語句,則直接調(diào)用執(zhí)行結(jié)果即可,不需要再次對當(dāng)前執(zhí)行結(jié)果即可,不需要再次對當(dāng)前COMMAND進行語法分析、編譯和進行語法分析、編譯和處理,從而提高了處理,從而提高了SQL語句的執(zhí)行效率和系統(tǒng)的性能,語句的執(zhí)行效率和系統(tǒng)的性能,Oracle要求要求Library cache的命中率為的命中率為99%以上,盡可能地不重復(fù)編譯以上,盡可能地不重復(fù)編譯SQL COMMAND; (2)由最近最少使用算法)由最近最少使用算
24、法(LRU: Least Recently Used)管理;管理; (3)包含兩個結(jié)構(gòu):共享)包含兩個結(jié)構(gòu):共享SQL區(qū)域、共享區(qū)域、共享PL/SQL區(qū)域區(qū)域 注:注:Library cache不可以直接定義大小,必須借助于不可以直接定義大小,必須借助于shared pool size來定義。來定義。 3.3 3.3 System Global Area26OracleOracleSGA Data Dictionary Cache (Row Cache) Data dictionary cache是數(shù)據(jù)庫中最近經(jīng)常使用的定義集合。是數(shù)據(jù)庫中最近經(jīng)常使用的定義集合。 (1)它包含關(guān)于數(shù)據(jù)庫文件、
25、表、索引、列、用戶、權(quán)限和其它)它包含關(guān)于數(shù)據(jù)庫文件、表、索引、列、用戶、權(quán)限和其它數(shù)據(jù)庫對象的信息;數(shù)據(jù)庫對象的信息; (2)在解析階段,服務(wù)器進程查看數(shù)據(jù)字典以獲取處理對象名稱)在解析階段,服務(wù)器進程查看數(shù)據(jù)字典以獲取處理對象名稱和合法訪問的信息;和合法訪問的信息; (3)將數(shù)據(jù)字典信息緩存入內(nèi)存中以提高查詢的響應(yīng)速度;)將數(shù)據(jù)字典信息緩存入內(nèi)存中以提高查詢的響應(yīng)速度; (4)data dictionary cache不能直接定義,必須通過不能直接定義,必須通過shared pool size定義。定義。 舉例:看以下的執(zhí)行語句示例舉例:看以下的執(zhí)行語句示例 SQL select * fr
26、om authors; Oracle首先要判斷首先要判斷authors這個對象是存在,接著判斷對象中的列這個對象是存在,接著判斷對象中的列是否存在,還要判斷當(dāng)前連接的用戶是否有訪問這個對象的權(quán)限,這是否存在,還要判斷當(dāng)前連接的用戶是否有訪問這個對象的權(quán)限,這些信息都存放在些信息都存放在data dictionary中。中。 3.3 3.3 System Global Area27OracleOracleSGA Database Buffer Cache Database buffer cache存儲從數(shù)據(jù)文件中提取的數(shù)據(jù)塊存儲從數(shù)據(jù)文件中提取的數(shù)據(jù)塊的拷貝。的拷貝。 (1)當(dāng)獲取和更新數(shù)據(jù)時,
27、允許得到最佳性能;)當(dāng)獲取和更新數(shù)據(jù)時,允許得到最佳性能; (2)通過最近最少算法來管理)通過最近最少算法來管理database buffer cache; (3)DB_BLOCK_SIZE設(shè)定主塊尺寸。設(shè)定主塊尺寸。 Oracle9i以后,允許一個以后,允許一個database buffer中存在多個塊中存在多個塊尺寸,以前版本只允許一個尺寸,以前版本只允許一個database buffer存在一個塊尺寸。存在一個塊尺寸。 3.3 3.3 System Global Area28OracleOracleSGA Database Buffer Cache SQL show parameter
28、db; 可以有可以有db_cache_size,也可以有,也可以有db_nk_cache_size,與以前的版本,與以前的版本保持兼容。保持兼容。 另外另外DB_KEEP_CACHE_SIZE、 DB_RECYCLE_CACHE_SIZE根據(jù)數(shù)據(jù)訪問的特征而設(shè)定,優(yōu)化系統(tǒng)性能。根據(jù)數(shù)據(jù)訪問的特征而設(shè)定,優(yōu)化系統(tǒng)性能。 Oracle使用內(nèi)存的單位是塊大小。使用內(nèi)存的單位是塊大小。Oracle讀取數(shù)據(jù)時,不是讀一行讀取數(shù)據(jù)時,不是讀一行或多行數(shù)據(jù),而是每次讀取一個塊。塊尺寸和緩沖區(qū)對應(yīng)或多行數(shù)據(jù),而是每次讀取一個塊。塊尺寸和緩沖區(qū)對應(yīng) 3.3 3.3 System Global Area29Ora
29、cleOracle 3.3 3.3 System Global Area30OracleOracleSGA Database Buffer Cache Database buffer cache可以動態(tài)改變尺寸,使用可以動態(tài)改變尺寸,使用ALTER SYSTEM擴大擴大 ALTER SYSTEM SET DB_CACHE_SIZE = 96M; 滿足所有內(nèi)存的和不超過滿足所有內(nèi)存的和不超過SGA的尺寸。的尺寸。 注:可以使用注:可以使用db_cache_advice來讓來讓Oracle給出的不同給出的不同CACHE尺寸建議,告訴用戶一些合理的尺寸建議,告訴用戶一些合理的CACHE分配分配 。
30、3.3 3.3 System Global Area31OracleOracleSGA Redo Log Buffer Cache Redo log buffer cache記錄對數(shù)據(jù)庫數(shù)據(jù)塊所做的所有記錄對數(shù)據(jù)庫數(shù)據(jù)塊所做的所有改變。改變。 (1)它的主要目的是恢復(fù);)它的主要目的是恢復(fù); (2)記錄改變稱為重做條目;)記錄改變稱為重做條目; (3)重做條目包含重構(gòu)或重做改變的信息;)重做條目包含重構(gòu)或重做改變的信息; 3.3 3.3 System Global Area32OracleOracleSGA Large Pool Large pool是一個是一個SGA中的可選內(nèi)存區(qū)域,僅在一個
31、共享服務(wù)環(huán)境中的可選內(nèi)存區(qū)域,僅在一個共享服務(wù)環(huán)境中設(shè)定。中設(shè)定。 (1)它減輕共享池的負(fù)擔(dān);)它減輕共享池的負(fù)擔(dān); (2)用于用戶會話內(nèi)存)用于用戶會話內(nèi)存(UGA: User Global Area),I/O slaves,備,備份和恢復(fù)操作;份和恢復(fù)操作; (3)和)和shared pool不一樣,不一樣,large pool不使用不使用LRU (Least Recently Used)列表;列表; (4)由)由LARGE_POOL_SIZE設(shè)定尺寸設(shè)定尺寸 SQL alter system set large_pool_size = 20m; 3.3 3.3 System Global
32、 Area33OracleOracleSGA Java Pool Java pool服務(wù)于服務(wù)于Java commands的解析需要:的解析需要: (1)當(dāng)安裝和使用)當(dāng)安裝和使用Java時需要;時需要; (2)與)與PL/SQL在數(shù)據(jù)庫表中的存儲方式相同;在數(shù)據(jù)庫表中的存儲方式相同; (3)使用)使用JAVA_POOL_SIZE設(shè)置設(shè)置CACHE尺寸。尺寸。 在在Oracle中使用較少。中使用較少。 3.4 3.4 Program Global Area34OracleOracleProgram Global Area (程序全局區(qū)域、程序全局區(qū)域、PGA) 針對每個連接一個針對每個連接一個
33、Oracle database的用戶進程保留的內(nèi)存稱為的用戶進程保留的內(nèi)存稱為PGA。服務(wù)器類型不同,。服務(wù)器類型不同,PGA結(jié)構(gòu)不同。有獨占服務(wù)器,共享服務(wù)器結(jié)構(gòu)不同。有獨占服務(wù)器,共享服務(wù)器兩種。兩種。 當(dāng)安裝當(dāng)安裝Oracle時會選擇安裝哪種類型的服務(wù)器,從而確定使用的服時會選擇安裝哪種類型的服務(wù)器,從而確定使用的服務(wù)器類型,也就確定了務(wù)器類型,也就確定了PGA的內(nèi)存結(jié)構(gòu)。的內(nèi)存結(jié)構(gòu)。 3.4 3.4 Program Global Area35OracleOracleProcess Structure 一個一個Oracle process是一個程序,根據(jù)其類型可以獲取信息,執(zhí)行是一個程序
34、,根據(jù)其類型可以獲取信息,執(zhí)行一系列步驟,或執(zhí)行某一特殊任務(wù)。一系列步驟,或執(zhí)行某一特殊任務(wù)。 Oracle使用不同類型的進程:使用不同類型的進程: (1)用戶進程:當(dāng)一個數(shù)據(jù)庫用戶請求連接)用戶進程:當(dāng)一個數(shù)據(jù)庫用戶請求連接Oracle Server時產(chǎn)生;時產(chǎn)生; (2)服務(wù)器進程:連接到)服務(wù)器進程:連接到Oracle Instance,且當(dāng)一個用戶建立一,且當(dāng)一個用戶建立一個會話時才產(chǎn)生;個會話時才產(chǎn)生; (3)后臺進程:當(dāng))后臺進程:當(dāng)Oracle Instance啟動時生效。啟動時生效。 3.5 3.5 進程結(jié)構(gòu)進程結(jié)構(gòu)36OracleOracleUser Process(用戶進程
35、)(用戶進程) 一個用戶進程是一個請求與一個用戶進程是一個請求與Oracle Server交互的程序。交互的程序。 (1)必須首先建立一個連接;)必須首先建立一個連接; (2)它不能直接和)它不能直接和Oracle Server交互,必須通過服務(wù)器進程。交互,必須通過服務(wù)器進程。 3.5 3.5 進程結(jié)構(gòu)進程結(jié)構(gòu)37OracleOracleServer Process (服務(wù)器進程)(服務(wù)器進程) 一個服務(wù)器進程是一個直接和一個服務(wù)器進程是一個直接和Oracle Server交互的程序。交互的程序。 (1)它執(zhí)行用戶進程產(chǎn)生的訪問請求并返回結(jié)果;)它執(zhí)行用戶進程產(chǎn)生的訪問請求并返回結(jié)果; (2
36、)可以是獨占或共享服務(wù)器。)可以是獨占或共享服務(wù)器。 3.5 3.5 進程結(jié)構(gòu)進程結(jié)構(gòu)38OracleOracleBackground Processes(后臺進程)(后臺進程) 物理結(jié)構(gòu)和內(nèi)存結(jié)構(gòu)的關(guān)聯(lián)通過物理結(jié)構(gòu)和內(nèi)存結(jié)構(gòu)的關(guān)聯(lián)通過Oracle的后臺進程被維持和加強。的后臺進程被維持和加強。一般后臺進程包括:一般后臺進程包括:PMONSMONDBWnLGWRARCnCKPTCJQRECO查看系統(tǒng)必需的后臺進程查看系統(tǒng)必需的后臺進程 SQL select * from v$bgprocess where paddr00; 3.5 3.5 進程結(jié)構(gòu)進程結(jié)構(gòu)39OracleOracleDatab
37、ase Writer (數(shù)據(jù)庫寫入器,數(shù)據(jù)庫寫入器,DBWn) DBWn執(zhí)行當(dāng):執(zhí)行當(dāng): (1) Checkpoint (2) Dirty buffers threshold reached (3) No free buffers (4) Timeout(3秒鐘)秒鐘) (5) RAC ping request (6) Tablespace offline (7) Tablespace read only (8) Table DROP or TRUNCATE (9) Tablespace BEGIN BACKUP 3.5 3.5 進程結(jié)構(gòu)進程結(jié)構(gòu)40OracleOracle 完成將完成將Dat
38、abase buffer cache中的臟數(shù)據(jù)(被改變的數(shù)據(jù)中的臟數(shù)據(jù)(被改變的數(shù)據(jù))寫入到數(shù)寫入到數(shù)據(jù)文件中。據(jù)文件中。 3.5 3.5 進程結(jié)構(gòu)進程結(jié)構(gòu)41OracleOracle Log Writer (日志寫入器,日志寫入器,LGWR) LGWR寫:寫: (1) 事務(wù)數(shù)據(jù)進行提交事務(wù)數(shù)據(jù)進行提交 (2) 重做日志緩存已經(jīng)填充了重做日志緩存已經(jīng)填充了1/3 (3) 重做重做日志緩存中的數(shù)據(jù)量達(dá)到日志緩存中的數(shù)據(jù)量達(dá)到1MB (4)每每3秒鐘秒鐘 (5) 在在 DBWn 之前之前 3.5 3.5 進程結(jié)構(gòu)進程結(jié)構(gòu)42OracleOracle Log Writer (LGWR)將將Redo
39、log buffer中的內(nèi)容寫入到中的內(nèi)容寫入到Redo log files中。寫日志優(yōu)先,任何中。寫日志優(yōu)先,任何情況下寫數(shù)據(jù)前都必須先寫日志,這是現(xiàn)代大型數(shù)據(jù)庫的共同特點。情況下寫數(shù)據(jù)前都必須先寫日志,這是現(xiàn)代大型數(shù)據(jù)庫的共同特點。 3.5 3.5 進程結(jié)構(gòu)進程結(jié)構(gòu)43OracleOracle System Monitor (系統(tǒng)監(jiān)視器,系統(tǒng)監(jiān)視器,SMON)任務(wù):任務(wù):(1) Instance恢復(fù)(系統(tǒng)重啟時):恢復(fù)(系統(tǒng)重啟時):(a) 完成完成redo logs中的前向改變中的前向改變(b) 為用戶訪問打開數(shù)據(jù)庫為用戶訪問打開數(shù)據(jù)庫(c) 回滾未提交事務(wù)回滾未提交事務(wù)(2) 每隔每隔
40、3秒整合空閑空間秒整合空閑空間(3) 清空臨時段空間清空臨時段空間這些在系統(tǒng)啟動時都可以完成。這些在系統(tǒng)啟動時都可以完成。 3.5 3.5 進程結(jié)構(gòu)進程結(jié)構(gòu)44OracleOracle System Monitor (SMON) 3.5 3.5 進程結(jié)構(gòu)進程結(jié)構(gòu)45OracleOracleProcess Monitor (進程監(jiān)視器、進程監(jiān)視器、PMON) 清空被用戶強行終止的進程:清空被用戶強行終止的進程: (1) 回滾事務(wù)回滾事務(wù) (2) 釋放鎖釋放鎖 (3) 釋放其它資源釋放其它資源 (4) 重啟死調(diào)度器,重啟死調(diào)度器,(在共享服務(wù)器中使用在共享服務(wù)器中使用) 3.5 3.5 進程結(jié)構(gòu)進
41、程結(jié)構(gòu)46OracleOracleCheckpoint (檢查點,檢查點,CKPT):實現(xiàn)同步實現(xiàn)同步任務(wù):任務(wù):(1) 在在checkpoints觸發(fā)啟動觸發(fā)啟動DBWn(2) 使用使用checkpoint信息更新數(shù)據(jù)文件頭,記錄同步所需的信息信息更新數(shù)據(jù)文件頭,記錄同步所需的信息(3) 使用使用checkpoint信息更新控制文件信息更新控制文件強制系統(tǒng)同步,同步前將臟數(shù)據(jù)寫入到物理文件中。強制系統(tǒng)同步,同步前將臟數(shù)據(jù)寫入到物理文件中。 3.5 3.5 進程結(jié)構(gòu)進程結(jié)構(gòu)47OracleOracleArchiver (歸檔器、歸檔器、ARCn) :自動備份在線日志:自動備份在線日志 (1)
42、可選的后臺進程可選的后臺進程 (2) 當(dāng)設(shè)置當(dāng)設(shè)置ARCHIVELOG模式時自動歸檔在線模式時自動歸檔在線redo logs (3) 歸檔進程自動備份在線日志歸檔進程自動備份在線日志 3.6 3.6 邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)48OracleOracle 3.6 3.6 邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)49OracleOracleLogical Structure 數(shù)據(jù)庫由一個或多個表空間組成;數(shù)據(jù)庫由一個或多個表空間組成; 表空間表空間(Tablespace)由一個或多個數(shù)據(jù)文件組成,表空間包含段;由一個或多個數(shù)據(jù)文件組成,表空間包含段; 段段(Segment)(表、索引等)由一個或多個盤區(qū)組成。段存在于表空(表、索
43、引等)由一個或多個盤區(qū)組成。段存在于表空間中,但是在表空間中可以有許多數(shù)據(jù)文件中的數(shù)據(jù);間中,但是在表空間中可以有許多數(shù)據(jù)文件中的數(shù)據(jù); 盤區(qū)盤區(qū)(Extent)是在磁盤上連續(xù)的塊的組成。一個盤區(qū)在一個表空間中,是在磁盤上連續(xù)的塊的組成。一個盤區(qū)在一個表空間中,且在表空間中單一的文件中;且在表空間中單一的文件中; 塊塊(Block)是數(shù)據(jù)庫中最小的分配單元,也是數(shù)據(jù)庫使用的最小是數(shù)據(jù)庫中最小的分配單元,也是數(shù)據(jù)庫使用的最小I/O單單元。元。 注:每個數(shù)據(jù)庫至少有一個表空間注:每個數(shù)據(jù)庫至少有一個表空間SYSTEM(系統(tǒng))表空間。用系統(tǒng))表空間。用于存儲數(shù)據(jù)庫中的數(shù)據(jù)字典,存儲全部于存儲數(shù)據(jù)庫中
44、的數(shù)據(jù)字典,存儲全部PL/SQL的源代碼和編譯后的代碼。的源代碼和編譯后的代碼。 3.6 3.6 邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)50OracleOracle表空間表空間 Oracle架構(gòu)的邏輯結(jié)構(gòu)規(guī)定數(shù)據(jù)庫的物理空間如何被使用。結(jié)構(gòu)中架構(gòu)的邏輯結(jié)構(gòu)規(guī)定數(shù)據(jù)庫的物理空間如何被使用。結(jié)構(gòu)中存在一個層次,包含表空間、段、盤區(qū)和塊。存在一個層次,包含表空間、段、盤區(qū)和塊。 Oracle database中一個一個的邏輯區(qū)間,稱之為表空間。比如說用中一個一個的邏輯區(qū)間,稱之為表空間。比如說用不同的表空間存放表數(shù)據(jù)、索引數(shù)據(jù)、回滾數(shù)據(jù)、臨時數(shù)據(jù)等。不同的表空間存放表數(shù)據(jù)、索引數(shù)據(jù)、回滾數(shù)據(jù)、臨時數(shù)據(jù)等。 表空間是用戶可
45、以在表空間是用戶可以在Oracle系統(tǒng)中使用的最大的邏輯存儲單元,用系統(tǒng)中使用的最大的邏輯存儲單元,用戶在數(shù)據(jù)庫中建立的所有內(nèi)容都會存儲在表空間中。戶在數(shù)據(jù)庫中建立的所有內(nèi)容都會存儲在表空間中。 3.6 3.6 邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)51OracleOracle段段 類似表、索引,每個獨立的數(shù)據(jù)對象所占用的空間集合稱為段。段類似表、索引,每個獨立的數(shù)據(jù)對象所占用的空間集合稱為段。段是用戶建立的數(shù)據(jù)庫對象的存儲表示。用戶建立的每一個表都會有一個是用戶建立的數(shù)據(jù)庫對象的存儲表示。用戶建立的每一個表都會有一個在表空間中存儲的邏輯段。在表空間中存儲的邏輯段。 在在Oracle系統(tǒng)中,有系統(tǒng)中,有3種類型的段
46、,分別為數(shù)據(jù)段、臨時段和回滾段。種類型的段,分別為數(shù)據(jù)段、臨時段和回滾段。 數(shù)據(jù)段是存儲表、索引、簇和表分區(qū)等常規(guī)應(yīng)用數(shù)據(jù)的地方。數(shù)據(jù)段是存儲表、索引、簇和表分區(qū)等常規(guī)應(yīng)用數(shù)據(jù)的地方。 臨時段是臨時表空間中的段,可以用于存儲臨時表和引起內(nèi)存頁交臨時段是臨時表空間中的段,可以用于存儲臨時表和引起內(nèi)存頁交換的換的SQL語句等。語句等。 回滾段用于管理數(shù)據(jù)庫中的回滾段用于管理數(shù)據(jù)庫中的undo數(shù)據(jù),并為事務(wù)處理提供數(shù)據(jù)庫的數(shù)據(jù),并為事務(wù)處理提供數(shù)據(jù)庫的讀取一致性視圖。讀取一致性視圖。 3.6 3.6 邏輯結(jié)構(gòu)邏輯結(jié)構(gòu)52OracleOracle盤區(qū)、塊盤區(qū)、塊 盤區(qū)是盤區(qū)是Oracle中實現(xiàn)空間分配
47、的單位,用來存儲段數(shù)據(jù)邏輯上連續(xù)中實現(xiàn)空間分配的單位,用來存儲段數(shù)據(jù)邏輯上連續(xù)的數(shù)據(jù)塊。當(dāng)建立數(shù)據(jù)庫對象時,系統(tǒng)就會建立一個或多個盤區(qū)來存儲的數(shù)據(jù)塊。當(dāng)建立數(shù)據(jù)庫對象時,系統(tǒng)就會建立一個或多個盤區(qū)來存儲數(shù)據(jù)。在數(shù)據(jù)。在Oracle系統(tǒng)中,默認(rèn)的表空間的盤區(qū)管理風(fēng)格是本地化管理,系統(tǒng)中,默認(rèn)的表空間的盤區(qū)管理風(fēng)格是本地化管理,而不是字典管理。而不是字典管理。 數(shù)據(jù)塊代表數(shù)據(jù)庫中最小的邏輯數(shù)據(jù)存儲層次,數(shù)據(jù)塊代表數(shù)據(jù)庫中最小的邏輯數(shù)據(jù)存儲層次,Oracle最終以塊來最終以塊來存儲數(shù)據(jù)。借助于盤區(qū),一次分配如存儲數(shù)據(jù)。借助于盤區(qū),一次分配如1M的內(nèi)存,即包含了若干個塊的內(nèi)存,即包含了若干個塊(4KB或或8KB),減少了頻繁分配塊尺寸小內(nèi)存的過多的,減少了頻繁分配塊尺寸小內(nèi)存的過多的I/O操作。操作。 需要注意的是,盤區(qū)是一個分配單位,而塊是一個使用單位。需要注意的是,盤區(qū)是一個分配單位,而塊是一個使用單位。 3.7 3.7 總結(jié)總結(jié)53OracleOracle總結(jié):總結(jié): 解釋了數(shù)據(jù)庫文件:數(shù)據(jù)文件,控制文件,在線重做日解釋了數(shù)據(jù)庫文件:數(shù)據(jù)文件,控制文件,在線重做日志志 解釋了解釋了SGA內(nèi)存結(jié)構(gòu):數(shù)據(jù)庫緩沖,共享內(nèi)存結(jié)構(gòu):
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)民參與土地流轉(zhuǎn)的農(nóng)業(yè)項目合作協(xié)議
- 月季花的美麗寫物并抒情作文13篇范文
- 博弈經(jīng)典案例解析
- 建筑裝飾設(shè)計標(biāo)準(zhǔn)案例分析題
- 2025年綠化噴灑車項目規(guī)劃申請報告模板
- 大型超市數(shù)字化進銷存系統(tǒng)建設(shè)協(xié)議
- 2025年采購師(高級)考試試卷:采購與成本控制
- 2025年法律職業(yè)資格考試客觀題試卷一案例分析:法律適用與解題技巧
- 2025年聚氨酯樹脂項目提案報告
- 2025年北斗衛(wèi)星項目提案報告
- 培訓(xùn)班助教教師管理制度
- 鋼板配送設(shè)計方案(3篇)
- 2025年安徽能源集團招聘筆試參考題庫含答案解析
- 河道維修養(yǎng)護管理制度
- 2025年 事業(yè)單位公基真題考試卷庫(附答案)
- 派出所消防管理制度
- 北京市朝陽區(qū)招聘社區(qū)工作者筆試真題2024
- 2025年重慶市中考數(shù)學(xué)試卷真題(含標(biāo)準(zhǔn)答案)
- 中醫(yī)基礎(chǔ)學(xué)課件護理情志
- 小學(xué)三年級科學(xué)下冊教案
- 2025年中小學(xué)教師師德知識競賽試題庫及答案
評論
0/150
提交評論