




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Version 3.0體系結(jié)構(gòu) DBA的職責(zé)的職責(zé) Oracle體系結(jié)構(gòu)由內(nèi)存結(jié)構(gòu)、進(jìn)程結(jié)構(gòu)、存體系結(jié)構(gòu)由內(nèi)存結(jié)構(gòu)、進(jìn)程結(jié)構(gòu)、存儲結(jié)構(gòu)組成儲結(jié)構(gòu)組成 內(nèi)存結(jié)構(gòu)由內(nèi)存結(jié)構(gòu)由SGA、PGA組成組成 存儲結(jié)構(gòu)由邏輯存儲、物理存儲組成存儲結(jié)構(gòu)由邏輯存儲、物理存儲組成 進(jìn)程結(jié)構(gòu)由用戶進(jìn)程和進(jìn)程結(jié)構(gòu)由用戶進(jìn)程和Oracle進(jìn)程組成進(jìn)程組成. 數(shù)據(jù)庫管理員是一個(gè)或一組全面負(fù)責(zé)管理和控制數(shù)據(jù)庫系統(tǒng)的人員。簡稱:DBA(Data Base Administrator) 了解了解ORACLE數(shù)據(jù)庫的體系結(jié)構(gòu)數(shù)據(jù)庫的體系結(jié)構(gòu) 負(fù)責(zé)數(shù)據(jù)庫管理系統(tǒng)的安裝和升級負(fù)責(zé)數(shù)據(jù)庫管理系統(tǒng)的安裝和升級 啟動和關(guān)閉數(shù)據(jù)庫啟動和關(guān)閉數(shù)
2、據(jù)庫 管理和監(jiān)控?cái)?shù)據(jù)庫用戶管理和監(jiān)控?cái)?shù)據(jù)庫用戶 管理數(shù)據(jù)庫特權(quán)管理數(shù)據(jù)庫特權(quán) 管理存儲空間管理存儲空間 建立數(shù)據(jù)庫建立數(shù)據(jù)庫 后備和恢復(fù)數(shù)據(jù)庫后備和恢復(fù)數(shù)據(jù)庫 作為一名合格的DBA,必須深入地掌握Oracle 10g數(shù)據(jù)庫的體系結(jié)構(gòu).在理論知識的指導(dǎo)下,才會使許多難以理解和掌握的操作變得容易.客戶客戶服務(wù)器服務(wù)器服務(wù)器進(jìn)程服務(wù)器進(jìn)程(PGA區(qū)區(qū))用戶進(jìn)程用戶進(jìn)程(SQL語句語句)Oracle server數(shù)據(jù)庫系統(tǒng)處理過程示意數(shù)據(jù)庫系統(tǒng)處理過程示意處理過程可以簡單的描述為處理過程可以簡單的描述為:1.用戶在其機(jī)器上運(yùn)行基于用戶在其機(jī)器上運(yùn)行基于Oracle的應(yīng)用程序的應(yīng)用程序(如如:SQL*P
3、LUS、PL/SQL Developer等等),即啟動用戶進(jìn)程即啟動用戶進(jìn)程.2.客戶機(jī)、服務(wù)器之間建立連接客戶機(jī)、服務(wù)器之間建立連接(Connect).3.服務(wù)器為用戶建立會話服務(wù)器為用戶建立會話(Session),并為該會話建立一個(gè)并為該會話建立一個(gè)PGA(Program Global Area,程序全局區(qū)程序全局區(qū))以存儲與該會話相關(guān)的信息以存儲與該會話相關(guān)的信息.在同一個(gè)連接中在同一個(gè)連接中,不同的用戶有不同的會話不同的用戶有不同的會話.4.啟動服務(wù)進(jìn)程啟動服務(wù)進(jìn)程,由該服務(wù)進(jìn)程負(fù)責(zé)執(zhí)行該會話的各項(xiàng)任務(wù)由該服務(wù)進(jìn)程負(fù)責(zé)執(zhí)行該會話的各項(xiàng)任務(wù).5.用戶進(jìn)程發(fā)送用戶進(jìn)程發(fā)送SQL語句語句(s
4、elect、update、commit.)6.服務(wù)器進(jìn)程解析、編譯、執(zhí)行服務(wù)器進(jìn)程解析、編譯、執(zhí)行SQL語句,然后將結(jié)果寫入數(shù)據(jù)庫語句,然后將結(jié)果寫入數(shù)據(jù)庫并返回結(jié)果給用戶進(jìn)程。并返回結(jié)果給用戶進(jìn)程。7.用戶進(jìn)程接收返回的用戶進(jìn)程接收返回的SQL執(zhí)行結(jié)果。執(zhí)行結(jié)果。8.在應(yīng)用程序中顯示在應(yīng)用程序中顯示SQL執(zhí)行結(jié)果執(zhí)行結(jié)果.客戶服務(wù)器服務(wù)器進(jìn)程(PGA區(qū))用戶進(jìn)程(SQL語句)Oracle server用戶進(jìn)程用戶進(jìn)程服務(wù)器進(jìn)程服務(wù)器進(jìn)程解析解析StatementOKHandle執(zhí)行執(zhí)行OKHandle提取提取ResultsSELECT *FROM empORDER BY ename;總體結(jié)構(gòu)
5、的三大部分總體結(jié)構(gòu)的三大部分其中其中:內(nèi)存結(jié)構(gòu):包括包括SGA和和PGA.使用內(nèi)存最多的是使用內(nèi)存最多的是SGA,同時(shí)同時(shí)也是影響數(shù)據(jù)庫性能的最大參數(shù)也是影響數(shù)據(jù)庫性能的最大參數(shù).進(jìn)程結(jié)構(gòu):包括前臺進(jìn)程、后臺進(jìn)程包括前臺進(jìn)程、后臺進(jìn)程.前臺進(jìn)程是指服前臺進(jìn)程是指服務(wù)進(jìn)程和用戶進(jìn)程務(wù)進(jìn)程和用戶進(jìn)程.前臺進(jìn)程是根據(jù)實(shí)際需要而運(yùn)行的,前臺進(jìn)程是根據(jù)實(shí)際需要而運(yùn)行的,并在需要結(jié)束后立刻結(jié)束。后臺進(jìn)程是指在并在需要結(jié)束后立刻結(jié)束。后臺進(jìn)程是指在Oracle數(shù)據(jù)數(shù)據(jù)庫啟動后庫啟動后,自動啟動的幾個(gè)操作系統(tǒng)進(jìn)程自動啟動的幾個(gè)操作系統(tǒng)進(jìn)程.存儲結(jié)構(gòu):包括控制文件、數(shù)據(jù)結(jié)構(gòu)、日志文件等操包括控制文件、數(shù)據(jù)結(jié)構(gòu)、
6、日志文件等操作系統(tǒng)文件作系統(tǒng)文件.Oracle數(shù)據(jù)庫的存儲結(jié)構(gòu)分為邏輯存儲結(jié)構(gòu)和物理存儲數(shù)據(jù)庫的存儲結(jié)構(gòu)分為邏輯存儲結(jié)構(gòu)和物理存儲結(jié)構(gòu)結(jié)構(gòu),這兩種存儲結(jié)構(gòu)既相互獨(dú)立又相互聯(lián)系這兩種存儲結(jié)構(gòu)既相互獨(dú)立又相互聯(lián)系.數(shù)數(shù)據(jù)據(jù)庫庫結(jié)結(jié)構(gòu)構(gòu)數(shù)據(jù)文件數(shù)據(jù)文件日志文件日志文件控制文件控制文件參數(shù)文件參數(shù)文件物理結(jié)構(gòu)物理結(jié)構(gòu)表空間表空間段段范圍范圍數(shù)據(jù)庫塊數(shù)據(jù)庫塊邏輯結(jié)構(gòu)邏輯結(jié)構(gòu) 邏輯存儲結(jié)構(gòu)主要描述邏輯存儲結(jié)構(gòu)主要描述Oracle數(shù)據(jù)庫的內(nèi)部數(shù)據(jù)庫的內(nèi)部存儲結(jié)構(gòu)存儲結(jié)構(gòu),即從技術(shù)概念上描述在即從技術(shù)概念上描述在Oracle數(shù)據(jù)數(shù)據(jù)庫種如何組織、管理數(shù)據(jù)庫種如何組織、管理數(shù)據(jù). 因此因此,邏輯存儲結(jié)構(gòu)是和操作
7、系統(tǒng)平臺無關(guān)邏輯存儲結(jié)構(gòu)是和操作系統(tǒng)平臺無關(guān)的的,是由是由Oracle數(shù)據(jù)庫創(chuàng)建和管理的數(shù)據(jù)庫創(chuàng)建和管理的. 物理存儲結(jié)構(gòu)主要描述物理存儲結(jié)構(gòu)主要描述Oracle數(shù)據(jù)庫的外部數(shù)據(jù)庫的外部存儲結(jié)構(gòu)存儲結(jié)構(gòu),即在操作系統(tǒng)種如何組織、管理即在操作系統(tǒng)種如何組織、管理數(shù)據(jù)數(shù)據(jù). 因此,物理存儲結(jié)構(gòu)是和操作系統(tǒng)平臺有因此,物理存儲結(jié)構(gòu)是和操作系統(tǒng)平臺有關(guān)的關(guān)的. 必須對這兩種存儲結(jié)構(gòu)有清晰的理解,并且要清楚在一個(gè)具體數(shù)據(jù)庫應(yīng)用系統(tǒng)中,這兩種存儲結(jié)構(gòu)的具體對應(yīng)關(guān)系,否則就不能進(jìn)行正常的管理操作、數(shù)據(jù)庫備份與恢復(fù)、性能優(yōu)化等。物理存儲結(jié)構(gòu)與邏輯存儲結(jié)構(gòu)之間的關(guān)系物理存儲結(jié)構(gòu)與邏輯存儲結(jié)構(gòu)之間的關(guān)系從物理上看
8、從物理上看,數(shù)據(jù)庫數(shù)據(jù)庫由控制文件、數(shù)據(jù)文由控制文件、數(shù)據(jù)文件、重做日志文件等件、重做日志文件等操作系統(tǒng)文件組成;操作系統(tǒng)文件組成;從邏輯上來看,數(shù)據(jù)從邏輯上來看,數(shù)據(jù)庫是由系統(tǒng)表空間、庫是由系統(tǒng)表空間、用戶表空間等組成。用戶表空間等組成。表空間是最大的邏輯表空間是最大的邏輯單位,塊是最小的邏單位,塊是最小的邏輯單位。輯單位。邏輯存儲結(jié)構(gòu)中的塊邏輯存儲結(jié)構(gòu)中的塊最后對應(yīng)到操作系統(tǒng)最后對應(yīng)到操作系統(tǒng)中的塊中的塊.Version 3.0邏輯結(jié)構(gòu)Oracle的邏輯結(jié)構(gòu)是由一個(gè)或多個(gè)表空間組成。是由一個(gè)或多個(gè)表空間組成。 一個(gè)表空間一個(gè)表空間(tablespace)由一組段組成由一組段組成 一個(gè)段一個(gè)
9、段(segment)由一組區(qū)組成由一組區(qū)組成 一個(gè)區(qū)一個(gè)區(qū)(extent)由一批數(shù)據(jù)庫塊組成由一批數(shù)據(jù)庫塊組成 一個(gè)數(shù)據(jù)庫塊一個(gè)數(shù)據(jù)庫塊(block)對應(yīng)一個(gè)或多個(gè)物理塊對應(yīng)一個(gè)或多個(gè)物理塊TablespaceDatabase BlocksExtent84KSegment112KDatabaseDataFile表空間表空間段段區(qū)區(qū)塊塊 數(shù)據(jù)庫塊(Database Block)是數(shù)據(jù)庫使是數(shù)據(jù)庫使用的用的I/O最小單元,又稱邏輯塊或最小單元,又稱邏輯塊或ORACLE塊。塊。 一個(gè)數(shù)據(jù)庫塊對應(yīng)一個(gè)或多個(gè)物理塊,塊一個(gè)數(shù)據(jù)庫塊對應(yīng)一個(gè)或多個(gè)物理塊,塊的大小由參數(shù)的大小由參數(shù)DB_BLOCK_SIZE
10、確定。確定。 塊的大小是操作系統(tǒng)塊大小的整數(shù)倍塊的大小是操作系統(tǒng)塊大小的整數(shù)倍. 以以Win2K為例為例,操作系統(tǒng)塊操作系統(tǒng)塊(OS block)的大小為的大小為4kb,所以所以O(shè)racle Block的大小可以是的大小可以是4kb,8kb,16kb等等。等等。 如果塊的大小為如果塊的大小為4kb,某表每行的數(shù)據(jù)是,某表每行的數(shù)據(jù)是100 bytes.,如果某查詢語句只返回,如果某查詢語句只返回1行數(shù)據(jù)行數(shù)據(jù),那么,在那么,在將數(shù)據(jù)讀入到數(shù)據(jù)高速緩存時(shí)將數(shù)據(jù)讀入到數(shù)據(jù)高速緩存時(shí),讀取的數(shù)據(jù)量時(shí)讀取的數(shù)據(jù)量時(shí)4kb而不是而不是100 bytes. 標(biāo)題:包括通用的塊信息,如塊地址包括通用的塊信息
11、,如塊地址/段類型段類型等,最佳大小為等,最佳大小為85-100bytes。 表目錄:存儲聚集中表的信息,這些信息用存儲聚集中表的信息,這些信息用于聚集段。于聚集段。 行目錄:包括這塊中的有效行信息,允許使包括這塊中的有效行信息,允許使用每行開頭的用每行開頭的2bytes。 自由空間:這塊中能插入或修改的一組空間。這塊中能插入或修改的一組空間。 行數(shù)據(jù):存儲表或索引的數(shù)據(jù)。存儲表或索引的數(shù)據(jù)。Command and Variable HeaderTable DirectoryRow DirectoryFree SpaceROW DATA數(shù)據(jù)庫塊的結(jié)構(gòu)格式數(shù)據(jù)庫塊的結(jié)構(gòu)格式pctfree 20%
12、左右 它們是互相消漲的pctused 40%左右Inittrans 在單一塊中最初活動的交易事務(wù)數(shù)Maxtrans 在單一塊中最大交易事務(wù)數(shù)PCTUSED(占用百分比) 用于行的用于行的INSERT的操作,當(dāng)塊的百分的操作,當(dāng)塊的百分比小于比小于PCTUSED時(shí),可通過行時(shí),可通過行DELETE或或UPDATE來減少列存儲。來減少列存儲。PCTFREE(自由百分比) 用于行的用于行的UPDATE操作,在遇到操作,在遇到PCTFREE后,這塊被填滿且不能進(jìn)行后,這塊被填滿且不能進(jìn)行INSERT操作。操作。PCTFREE = 20%PCTUSED = 40%PCTFREE = 20%PCTUSED
13、 = 40%Free Space 區(qū)(Extent)是數(shù)據(jù)庫存儲空間分配的是數(shù)據(jù)庫存儲空間分配的邏輯單位,一個(gè)邏輯單位,一個(gè)區(qū)區(qū)由一組數(shù)據(jù)庫塊組由一組數(shù)據(jù)庫塊組成,成,區(qū)區(qū)是由段分配的,分配的第一個(gè)是由段分配的,分配的第一個(gè)區(qū)區(qū)稱稱初始初始區(qū)區(qū),以后分配的,以后分配的區(qū)區(qū)稱稱增量增量區(qū)區(qū)。 initial 最初分配的空間數(shù)(缺省為10k,5 個(gè)數(shù)據(jù)塊)next 下一步分配的空間數(shù)maxextents 最大分配的extent數(shù)minextents 最小分配的extnet數(shù),所有重 做日志回滾段的存儲結(jié)構(gòu),必 須成對地分配extentpctincrease 增長率,指數(shù)級增長,optimal 盡量
14、設(shè)小,或?yàn)?(缺省為空, 僅用于回滾段)freelist pctincrease100()n1+ 段(Segment)是表空間中一個(gè)指定類是表空間中一個(gè)指定類型的邏輯存儲結(jié)構(gòu),它由一個(gè)或多個(gè)型的邏輯存儲結(jié)構(gòu),它由一個(gè)或多個(gè)區(qū)組成組成,段將占用并增長存儲空間。,段將占用并增長存儲空間。引導(dǎo)段引導(dǎo)段(Bootstrap Segment)存儲數(shù)據(jù)字典表的定義段的分段的分類類回滾段回滾段(Rollback Segment)存儲修改之前的位置和值索引段索引段(Index Segment)存儲表上最佳查詢的所有索引數(shù)據(jù)臨時(shí)段臨時(shí)段(Temporary Segment)存儲表排序操作期間建立的臨時(shí)表的數(shù)據(jù)數(shù)
15、據(jù)數(shù)據(jù)(表表)段段(Data Segment)存儲表中的所有數(shù)據(jù) 表空間是最大的邏輯單位,表空間是最大的邏輯單位,對應(yīng)一個(gè)對應(yīng)一個(gè)或多個(gè)數(shù)據(jù)文件,表空間的大小是它或多個(gè)數(shù)據(jù)文件,表空間的大小是它所對應(yīng)的數(shù)據(jù)文件大小的總和所對應(yīng)的數(shù)據(jù)文件大小的總和。數(shù)據(jù)庫、表空間、數(shù)據(jù)文件、方案對象數(shù)據(jù)庫、表空間、數(shù)據(jù)文件、方案對象(schema object)之間的關(guān)系之間的關(guān)系 Oracle 10g自動創(chuàng)建的表空間有自動創(chuàng)建的表空間有:Example(實(shí)例表空間實(shí)例表空間)Sysaux(輔助系統(tǒng)表空間輔助系統(tǒng)表空間)System(系統(tǒng)表空間系統(tǒng)表空間)Temp(臨時(shí)表空間臨時(shí)表空間)Undotbs(重做表空
16、間重做表空間)Users(用戶的表空間用戶的表空間) System : 系統(tǒng)表空間系統(tǒng)表空間,存放關(guān)于表空間的存放關(guān)于表空間的名稱、控制文件、數(shù)據(jù)文件等管理信息,名稱、控制文件、數(shù)據(jù)文件等管理信息,是最重要的表空間是最重要的表空間. 它屬于它屬于Sys、System兩個(gè)兩個(gè)schema(方案方案),僅,僅被這兩個(gè)或其他具有足夠權(quán)限的用戶使用。被這兩個(gè)或其他具有足夠權(quán)限的用戶使用。 但是均不可刪除或者重命名但是均不可刪除或者重命名System表空間表空間. Temp: 臨時(shí)表空間存放臨時(shí)表和臨時(shí)數(shù)據(jù),臨時(shí)表空間存放臨時(shí)表和臨時(shí)數(shù)據(jù),用于排序。用于排序。 Users: 用戶表空間,永久存放用戶對象
17、和私用戶表空間,永久存放用戶對象和私有信息,也被成為數(shù)據(jù)表空間。有信息,也被成為數(shù)據(jù)表空間。 Sysaux:輔助系統(tǒng)表空間,用于減少系統(tǒng)負(fù)荷,輔助系統(tǒng)表空間,用于減少系統(tǒng)負(fù)荷,提高系統(tǒng)的作業(yè)效率提高系統(tǒng)的作業(yè)效率. 一般地:系統(tǒng)用戶使用一般地:系統(tǒng)用戶使用system表空間表空間,非非系統(tǒng)用戶使用系統(tǒng)用戶使用Users表空間表空間Version 3.0物理結(jié)構(gòu) 數(shù)據(jù)文件 日志文件 控制文件 參數(shù)文件 數(shù)據(jù)文件(Data File)是物理存儲是物理存儲Oracle數(shù)據(jù)庫數(shù)據(jù)數(shù)據(jù)庫數(shù)據(jù)的文件。其特點(diǎn)如下:的文件。其特點(diǎn)如下: 每一個(gè)數(shù)據(jù)文件只與一個(gè)數(shù)據(jù)庫相聯(lián)系。每一個(gè)數(shù)據(jù)文件只與一個(gè)數(shù)據(jù)庫相聯(lián)系。
18、 數(shù)據(jù)文件一旦被建立則不能修改其大小。數(shù)據(jù)文件一旦被建立則不能修改其大小。 一個(gè)表空間可包含一個(gè)或多個(gè)數(shù)據(jù)文件。一個(gè)表空間可包含一個(gè)或多個(gè)數(shù)據(jù)文件。 一個(gè)數(shù)據(jù)文件只能屬于一個(gè)表空間一個(gè)數(shù)據(jù)文件只能屬于一個(gè)表空間. 重做日志文件(Redo Log File)記錄所有對數(shù)據(jù)庫數(shù)據(jù)的修改,記錄所有對數(shù)據(jù)庫數(shù)據(jù)的修改,以備恢復(fù)數(shù)據(jù)時(shí)使用。其特點(diǎn)如下:以備恢復(fù)數(shù)據(jù)時(shí)使用。其特點(diǎn)如下: 每一個(gè)數(shù)據(jù)庫至少包含兩個(gè)日志文件組。每一個(gè)數(shù)據(jù)庫至少包含兩個(gè)日志文件組。 日志文件組以循環(huán)方式進(jìn)行寫操作。日志文件組以循環(huán)方式進(jìn)行寫操作。 每一個(gè)日志文件成員對應(yīng)一個(gè)物理文件。每一個(gè)日志文件成員對應(yīng)一個(gè)物理文件。 日志開關(guān)
19、(Log Switch)是為實(shí)現(xiàn)日志文件組的循環(huán)使用而是為實(shí)現(xiàn)日志文件組的循環(huán)使用而設(shè)置的。出現(xiàn)日志開關(guān)的情況如下:設(shè)置的。出現(xiàn)日志開關(guān)的情況如下: 當(dāng)一個(gè)日志文件組被填滿時(shí)當(dāng)一個(gè)日志文件組被填滿時(shí) 關(guān)閉數(shù)據(jù)庫時(shí)關(guān)閉數(shù)據(jù)庫時(shí) DBA手動轉(zhuǎn)移日志開關(guān)手動轉(zhuǎn)移日志開關(guān)Log File 1Log File 2Member 2.1Member 1.1 鏡像日志文件是為防止日志文件的丟失,在不是為防止日志文件的丟失,在不同磁盤上同時(shí)維護(hù)兩個(gè)或多個(gè)聯(lián)機(jī)日志文件的同磁盤上同時(shí)維護(hù)兩個(gè)或多個(gè)聯(lián)機(jī)日志文件的副本。副本。 其特點(diǎn)如下:其特點(diǎn)如下: 每個(gè)日志文件組至少包含兩個(gè)日志文件成員。每個(gè)日志文件組至少包含兩個(gè)
20、日志文件成員。 每組的成員數(shù)目相同。每組的成員數(shù)目相同。 同組的所有成員同時(shí)被修改。同組的所有成員同時(shí)被修改。 同組的成員大小相同同組的成員大小相同,不同組的成員大小可不同不同組的成員大小可不同.Log File 1Log File 2Member 2.1Member 1.1Log File 3Log File 4Member 2.2Member 1.2Disk 1Disk 2 控制文件(Control File)是一個(gè)較小的二進(jìn)是一個(gè)較小的二進(jìn)制文件,用于描述數(shù)據(jù)庫結(jié)構(gòu)。制文件,用于描述數(shù)據(jù)庫結(jié)構(gòu)。描述信息如下:描述信息如下:數(shù)據(jù)庫建立的日期。數(shù)據(jù)庫建立的日期。數(shù)據(jù)庫名。數(shù)據(jù)庫名。數(shù)據(jù)庫中所
21、有數(shù)據(jù)數(shù)據(jù)庫中所有數(shù)據(jù)文件和日志文件的文件和日志文件的文件名及路徑。文件名及路徑?;謴?fù)數(shù)據(jù)庫時(shí)所需恢復(fù)數(shù)據(jù)庫時(shí)所需的同步信息。的同步信息。要點(diǎn)注意:要點(diǎn)注意:在打開和存取數(shù)據(jù)庫時(shí)在打開和存取數(shù)據(jù)庫時(shí)都要訪問該文件。都要訪問該文件。鏡像控制文件。鏡像控制文件。記錄控制文件名及路徑記錄控制文件名及路徑的參數(shù)為:的參數(shù)為:CONTROL_FILES 參數(shù)文件(Parameter File)是一個(gè)文本文件,可直接使用操是一個(gè)文本文件,可直接使用操作系統(tǒng)下的文本編輯器對其內(nèi)容進(jìn)行修改。該文件只在建作系統(tǒng)下的文本編輯器對其內(nèi)容進(jìn)行修改。該文件只在建立數(shù)據(jù)庫或啟動實(shí)例時(shí)才被訪問,在修改該文件之前必須立數(shù)據(jù)庫
22、或啟動實(shí)例時(shí)才被訪問,在修改該文件之前必須關(guān)閉實(shí)例。關(guān)閉實(shí)例。 初始參數(shù)文件:初始參數(shù)文件:init.ora 生成參數(shù)文件:生成參數(shù)文件:initSID.ora config.ora參數(shù)文件的作用:參數(shù)文件的作用: 確定存儲結(jié)構(gòu)的大小。確定存儲結(jié)構(gòu)的大小。 設(shè)置數(shù)據(jù)庫的全部缺省值。設(shè)置數(shù)據(jù)庫的全部缺省值。 設(shè)置數(shù)據(jù)庫的范圍。設(shè)置數(shù)據(jù)庫的范圍。 設(shè)置數(shù)據(jù)庫的各種物理屬性。設(shè)置數(shù)據(jù)庫的各種物理屬性。 優(yōu)化數(shù)據(jù)庫性能。優(yōu)化數(shù)據(jù)庫性能。參數(shù)文件中參數(shù)的數(shù)據(jù)類型:參數(shù)文件中參數(shù)的數(shù)據(jù)類型: 整型整型 例:例:DB_BLOCK_SIZE = 2048 字符型字符型 例:例:DB_NAME = ora9 邏
23、輯型邏輯型 例:例:CHECKPOINT_PROCESS = trueVersion 3.01.3 軟件結(jié)構(gòu) Oracle數(shù)據(jù)庫結(jié)構(gòu)又稱為例程結(jié)構(gòu)數(shù)據(jù)庫結(jié)構(gòu)又稱為例程結(jié)構(gòu). 數(shù)據(jù)庫啟動時(shí):數(shù)據(jù)庫啟動時(shí): Oracle首先要在內(nèi)存中獲取、劃分、保留各種用途的區(qū)域,運(yùn)行各種用途的后臺,即:創(chuàng)建一個(gè)例程(instance); 然后由該例程裝載(mount)、打開(open)數(shù)據(jù)庫; 最后由這個(gè)例程來訪問和控制數(shù)據(jù)庫的各種物理結(jié)構(gòu) 如果把如果把Oracle數(shù)據(jù)庫比作一部汽車,數(shù)據(jù)庫比作一部汽車,instance相當(dāng)于汽車的發(fā)動機(jī)一樣相當(dāng)于汽車的發(fā)動機(jī)一樣,啟動啟動oracle數(shù)據(jù)庫數(shù)據(jù)庫前提應(yīng)先啟動前
24、提應(yīng)先啟動instance. 當(dāng)用戶連接到數(shù)據(jù)庫并使用數(shù)據(jù)庫時(shí),實(shí)際上是當(dāng)用戶連接到數(shù)據(jù)庫并使用數(shù)據(jù)庫時(shí),實(shí)際上是連接到該數(shù)據(jù)庫的例程,通過例程來連接、使用連接到該數(shù)據(jù)庫的例程,通過例程來連接、使用數(shù)據(jù)庫。數(shù)據(jù)庫。 所以例程是用戶和數(shù)據(jù)庫之間的中間層。所以例程是用戶和數(shù)據(jù)庫之間的中間層。 例程與數(shù)據(jù)庫的區(qū)別:例程與數(shù)據(jù)庫的區(qū)別: 數(shù)據(jù)庫指的是存儲數(shù)據(jù)的物理結(jié)構(gòu),總是實(shí)際存在的; 例程則是由內(nèi)存結(jié)構(gòu)和一系列進(jìn)程組成,可以啟動和關(guān)閉。 一臺計(jì)算機(jī)上可以創(chuàng)建多個(gè)一臺計(jì)算機(jī)上可以創(chuàng)建多個(gè)Oracle數(shù)據(jù)庫,數(shù)據(jù)庫,一個(gè)數(shù)據(jù)庫上可以有多個(gè)例程。一個(gè)數(shù)據(jù)庫上可以有多個(gè)例程。 為了使例程間不混淆,每個(gè)例程都
25、稱為:為了使例程間不混淆,每個(gè)例程都稱為:SID(SystemIDentify)加以區(qū)分。加以區(qū)分。實(shí)例( INSTANCE ) 是存取和控制數(shù)據(jù)庫的軟件機(jī)制,它由系統(tǒng)全局區(qū)(是存取和控制數(shù)據(jù)庫的軟件機(jī)制,它由系統(tǒng)全局區(qū)(System Global Area,簡稱,簡稱SGA)和后臺進(jìn)程組成。)和后臺進(jìn)程組成。后臺進(jìn)程后臺進(jìn)程實(shí)例實(shí)例SGA數(shù)據(jù)數(shù)據(jù)高速緩存高速緩存共享池共享池日志日志高速緩存高速緩存內(nèi)存結(jié)構(gòu)內(nèi)存結(jié)構(gòu)進(jìn)程結(jié)構(gòu)進(jìn)程結(jié)構(gòu)內(nèi)存結(jié)構(gòu)和進(jìn)程結(jié)構(gòu)共同組成了軟件結(jié)構(gòu)內(nèi)存結(jié)構(gòu)和進(jìn)程結(jié)構(gòu)共同組成了軟件結(jié)構(gòu) 內(nèi)存結(jié)構(gòu)是內(nèi)存結(jié)構(gòu)是Oracle數(shù)據(jù)庫體系中最為重要的數(shù)據(jù)庫體系中最為重要的一部分,內(nèi)存也是
26、影響數(shù)據(jù)庫性能的第一一部分,內(nèi)存也是影響數(shù)據(jù)庫性能的第一因素因素. 按照內(nèi)存的使用方法的不同按照內(nèi)存的使用方法的不同,Oracle數(shù)據(jù)庫的數(shù)據(jù)庫的內(nèi)存又可以分為內(nèi)存又可以分為SGA(Syste Global Area)和和PGA(Program Global Area). SGA是是ORACLE系統(tǒng)為實(shí)例分配的一組共享緩沖系統(tǒng)為實(shí)例分配的一組共享緩沖存儲區(qū),用于存放數(shù)據(jù)庫數(shù)據(jù)和控制信息,以實(shí)存儲區(qū),用于存放數(shù)據(jù)庫數(shù)據(jù)和控制信息,以實(shí)現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的管理和操作?,F(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的管理和操作。 每個(gè)例程都只有一個(gè)每個(gè)例程都只有一個(gè)SGA. 它是不同用戶進(jìn)程與服務(wù)進(jìn)程進(jìn)行通信的中心它是不同用戶進(jìn)程與服
27、務(wù)進(jìn)程進(jìn)行通信的中心,數(shù)據(jù)庫的各種操作主要在數(shù)據(jù)庫的各種操作主要在SGA中進(jìn)行中進(jìn)行,所以稱其為所以稱其為系統(tǒng)全局區(qū)系統(tǒng)全局區(qū). 創(chuàng)建例程時(shí),Oracle為SGA分配內(nèi)存; 終止例程時(shí),釋放SGA所占用的內(nèi)存. 必須對SGA的組成和原理有所了解. 系統(tǒng)全局區(qū)由以下幾個(gè)部分組成: 保存最近從數(shù)據(jù)文件中讀取的數(shù)據(jù)塊保存最近從數(shù)據(jù)文件中讀取的數(shù)據(jù)塊,其中的數(shù)其中的數(shù)據(jù)被所有用戶共享據(jù)被所有用戶共享. 兩個(gè)參數(shù)影響兩個(gè)參數(shù)影響DBC: DB_BLOCK_SIZE 緩沖區(qū)數(shù)據(jù)塊大小 DB_BLOCK_BUFFERS 緩沖區(qū)數(shù)據(jù)塊個(gè)數(shù) 初次訪問數(shù)據(jù)時(shí)初次訪問數(shù)據(jù)時(shí),Oracle將讀取將讀取磁盤上的數(shù)據(jù)文件
28、磁盤上的數(shù)據(jù)文件,將數(shù)據(jù)放入將數(shù)據(jù)放入數(shù)據(jù)高速緩存,再處理數(shù)據(jù);數(shù)據(jù)高速緩存,再處理數(shù)據(jù); 如果數(shù)據(jù)已經(jīng)位于數(shù)據(jù)高速緩如果數(shù)據(jù)已經(jīng)位于數(shù)據(jù)高速緩存中時(shí)存中時(shí),Oracle直接操作數(shù)據(jù)。直接操作數(shù)據(jù)。數(shù)據(jù)緩沖區(qū)數(shù)據(jù)文件DBC的緩存塊分為三類的緩存塊分為三類: 臟緩存塊 存放已經(jīng)被修改過的緩存塊存放已經(jīng)被修改過的緩存塊. 當(dāng)當(dāng)SQL修改某個(gè)緩存塊中的數(shù)據(jù),則這個(gè)緩修改某個(gè)緩存塊中的數(shù)據(jù),則這個(gè)緩存塊被標(biāo)記為臟緩存塊存塊被標(biāo)記為臟緩存塊 空閑緩存塊 等待寫入數(shù)據(jù)的空閑緩存塊等待寫入數(shù)據(jù)的空閑緩存塊. 命中緩存塊 最近正在被訪問的緩存塊最近正在被訪問的緩存塊.Oracle通過通過2個(gè)列表來管理上述緩存
29、塊個(gè)列表來管理上述緩存塊: 臟列表臟列表(DIRTY) 包括被修改過但尚未寫到數(shù)據(jù)文件的緩沖包括被修改過但尚未寫到數(shù)據(jù)文件的緩沖塊。塊。 LRU(Least Recently Used)列表列表 包括空閑緩沖塊、命中緩存塊包括空閑緩沖塊、命中緩存塊,以及還沒以及還沒有移到臟列表的緩沖塊。有移到臟列表的緩沖塊。1.讀數(shù)據(jù)入讀數(shù)據(jù)入DBC之前之前,先在先在LRU中搜索空閑緩存塊中搜索空閑緩存塊;在搜索過程中如果發(fā)現(xiàn)臟緩在搜索過程中如果發(fā)現(xiàn)臟緩存塊存塊,則將其移入則將其移入DIRTY;2.找到足夠的空閑塊找到足夠的空閑塊,將所有數(shù)據(jù)讀入;將所有數(shù)據(jù)讀入;3,4.如果空閑塊不足,則暫停搜索,如果空閑塊
30、不足,則暫停搜索,Oralce立刻啟動立刻啟動DBWR進(jìn)程進(jìn)程,將將DIRTY中的中的臟緩存塊數(shù)據(jù)寫入數(shù)據(jù)文件釋放足夠的空閑緩存塊。臟緩存塊數(shù)據(jù)寫入數(shù)據(jù)文件釋放足夠的空閑緩存塊。數(shù)據(jù)庫寫進(jìn)程數(shù)據(jù)庫寫進(jìn)程 當(dāng)執(zhí)行當(dāng)執(zhí)行DML(Data Manipulation Language, 數(shù)據(jù)操縱語言數(shù)據(jù)操縱語言)如如:update、delete、insert或者或者create、alter、drop 等語句時(shí)等語句時(shí),Oracle都會為這都會為這些操作生成重做記錄些操作生成重做記錄. 重做日志高速緩存就是用于存儲重做記重做日志高速緩存就是用于存儲重做記錄的緩存錄的緩存.為提高效率為提高效率,重做記錄并
31、不直接寫入磁盤的重做日志文件重做記錄并不直接寫入磁盤的重做日志文件,而是先寫入而是先寫入重做日志緩存重做日志緩存;當(dāng)重做日志緩存中的重做記錄達(dá)到一定數(shù)量時(shí)當(dāng)重做日志緩存中的重做記錄達(dá)到一定數(shù)量時(shí),由由LGWR進(jìn)程寫入重進(jìn)程寫入重做日志做日志.(先內(nèi)存后磁盤先內(nèi)存后磁盤)當(dāng)當(dāng)2個(gè)個(gè)(至少至少2個(gè)個(gè))重做日志切換時(shí)重做日志切換時(shí),由由ARCH將重做日志中的數(shù)據(jù)寫入歸將重做日志中的數(shù)據(jù)寫入歸檔日志文件,以做備份檔日志文件,以做備份.日志寫進(jìn)程日志寫進(jìn)程歸檔進(jìn)程歸檔進(jìn)程 共享池保存了最近執(zhí)行的共享池保存了最近執(zhí)行的SQL語句、語句、PL/SQL程序和數(shù)據(jù)字典信息程序和數(shù)據(jù)字典信息,是對是對SQL語句和
32、語句和PL/SQL程序進(jìn)行語法分析、編譯、執(zhí)行的內(nèi)程序進(jìn)行語法分析、編譯、執(zhí)行的內(nèi)存區(qū)存區(qū).共享池共享池由庫緩存和數(shù)據(jù)字典緩存組成。參數(shù)SHARED_POOL_SIZE 確定共享池的大小。庫緩存庫緩存(Library Cache)區(qū)包括區(qū)包括解析用戶進(jìn)程提交的解析用戶進(jìn)程提交的SQL語句或語句或PL/SQL程序程序保存最近解析過的保存最近解析過的 SQL語句或語句或PL/SQL程序程序數(shù)據(jù)字典區(qū)數(shù)據(jù)字典區(qū)(Dictionary cache)用于存放數(shù)據(jù)字典信息行。用于存放數(shù)據(jù)字典信息行。 Oracle DBMS執(zhí)行各種執(zhí)行各種SQL、PL/SQL之前之前,要對其進(jìn)要對其進(jìn)行語法上的解析、對象上
33、的確認(rèn)、權(quán)限上的判斷、行語法上的解析、對象上的確認(rèn)、權(quán)限上的判斷、操作上的優(yōu)化等一系列操作,并生成執(zhí)行計(jì)劃。操作上的優(yōu)化等一系列操作,并生成執(zhí)行計(jì)劃。 庫緩存保存了已經(jīng)解析的庫緩存保存了已經(jīng)解析的SQL和和PL/SQL。 所以,請盡量使用預(yù)處理查詢所以,請盡量使用預(yù)處理查詢. 在在Oracle運(yùn)行過程中運(yùn)行過程中,Oracle會頻繁的對數(shù)據(jù)字典會頻繁的對數(shù)據(jù)字典中的表、視圖進(jìn)行訪問,以便確定操作的數(shù)據(jù)對中的表、視圖進(jìn)行訪問,以便確定操作的數(shù)據(jù)對象是否存在、是否具有合適的權(quán)限等信息。象是否存在、是否具有合適的權(quán)限等信息。 數(shù)據(jù)字典緩保存了最常用的數(shù)據(jù)字典信息。數(shù)據(jù)字典緩保存了最常用的數(shù)據(jù)字典信息
34、。 數(shù)據(jù)字典緩存中存放的記錄是一條一條的數(shù)據(jù)字典緩存中存放的記錄是一條一條的, 而其他緩存區(qū)中保存的是數(shù)據(jù)塊而其他緩存區(qū)中保存的是數(shù)據(jù)塊.大池用于需要大內(nèi)存操作提供相對獨(dú)立的內(nèi)存空大池用于需要大內(nèi)存操作提供相對獨(dú)立的內(nèi)存空間,以便提高性能。間,以便提高性能。大池是可選的內(nèi)存結(jié)構(gòu)。大池是可選的內(nèi)存結(jié)構(gòu)。 DBA可以決定是否需要在可以決定是否需要在SGA中創(chuàng)建大池。中創(chuàng)建大池。 需要大池的操作需要大池的操作: 數(shù)據(jù)庫備份和恢復(fù)數(shù)據(jù)庫備份和恢復(fù) 大量排序的大量排序的SQL語句語句 并行化的數(shù)據(jù)庫操作并行化的數(shù)據(jù)庫操作 8i以后提供的對以后提供的對Java的支持的支持,用于存放用于存放Java代碼、代
35、碼、Java程序等程序等. 一般不小于一般不小于20M,以便虛擬機(jī)運(yùn)行以便虛擬機(jī)運(yùn)行. PGA是用戶進(jìn)程連接到數(shù)據(jù)庫是用戶進(jìn)程連接到數(shù)據(jù)庫,并創(chuàng)建一個(gè)對應(yīng)并創(chuàng)建一個(gè)對應(yīng)的會話時(shí),由的會話時(shí),由Oracle為服務(wù)進(jìn)程分配的,專門用于為服務(wù)進(jìn)程分配的,專門用于當(dāng)前用戶會話的內(nèi)存區(qū)。當(dāng)前用戶會話的內(nèi)存區(qū)。 PGA是非共享的,而是非共享的,而SGA是共享的。是共享的。 PGA大小由操作系統(tǒng)決定,并且分配后保持不大小由操作系統(tǒng)決定,并且分配后保持不變;變; 會話終止時(shí),自動釋放會話終止時(shí),自動釋放PGA所占的內(nèi)存。所占的內(nèi)存。排序區(qū)排序區(qū)會話區(qū)會話區(qū)游標(biāo)區(qū)游標(biāo)區(qū)堆棧區(qū)堆棧區(qū)PGA服務(wù)器進(jìn)程服務(wù)器進(jìn)程 執(zhí)
36、行執(zhí)行order by、group by等包含排序操作的等包含排序操作的SQL語句時(shí)所產(chǎn)生的臨時(shí)數(shù)據(jù)語句時(shí)所產(chǎn)生的臨時(shí)數(shù)據(jù). Oracle將準(zhǔn)備排序的數(shù)據(jù)先臨時(shí)存儲到排將準(zhǔn)備排序的數(shù)據(jù)先臨時(shí)存儲到排序區(qū)中,并在排序區(qū)中排序,然后將排序序區(qū)中,并在排序區(qū)中排序,然后將排序好的數(shù)據(jù)返回給用戶好的數(shù)據(jù)返回給用戶. 保存會話所具有的權(quán)限、角色、性能統(tǒng)計(jì)保存會話所具有的權(quán)限、角色、性能統(tǒng)計(jì)信息信息. 當(dāng)運(yùn)行帶有游標(biāo)當(dāng)運(yùn)行帶有游標(biāo)(course)的的PL/SQL語句時(shí),語句時(shí),Oracle會在共享池中為該語句分配上下文會在共享池中為該語句分配上下文(Context),游標(biāo)實(shí)際上是指向該上下文的指,游標(biāo)實(shí)際
37、上是指向該上下文的指針。針。 保存會話中的綁定變量、會話變量以及保存會話中的綁定變量、會話變量以及SQL語句運(yùn)行時(shí)的內(nèi)存結(jié)構(gòu)信息。語句運(yùn)行時(shí)的內(nèi)存結(jié)構(gòu)信息。 例如:例如: select * from emp where emp=:a; :a就是綁定變量就是綁定變量,提示用戶輸入提示用戶輸入. 在等待用戶輸入時(shí),先將該變量存入堆棧,在等待用戶輸入時(shí),先將該變量存入堆棧,以便可以同時(shí)運(yùn)行其他語句以便可以同時(shí)運(yùn)行其他語句. 進(jìn)程時(shí)操作系統(tǒng)中的一個(gè)概念,是一個(gè)可以獨(dú)立進(jìn)程時(shí)操作系統(tǒng)中的一個(gè)概念,是一個(gè)可以獨(dú)立調(diào)用的活動,用于完成指定的任務(wù)。調(diào)用的活動,用于完成指定的任務(wù)。 進(jìn)程與程序的區(qū)別是:進(jìn)程與程
38、序的區(qū)別是: 進(jìn)程是動態(tài)創(chuàng)建的,完成后銷毀;程序是靜態(tài)的實(shí)體,可以復(fù)制、編輯。 進(jìn)程強(qiáng)調(diào)執(zhí)行過程,程序僅僅是指令的有序集合。 進(jìn)程在內(nèi)存中,程序在外存中。 Oracle包括用戶進(jìn)程和包括用戶進(jìn)程和Oracle進(jìn)程兩類:進(jìn)程兩類: 用 戶 進(jìn) 程 服務(wù)器進(jìn)程 后 臺 進(jìn) 程Oracle進(jìn)程 當(dāng)用戶運(yùn)行一個(gè)應(yīng)用程序時(shí),當(dāng)用戶運(yùn)行一個(gè)應(yīng)用程序時(shí),就建立一個(gè)用戶進(jìn)程。就建立一個(gè)用戶進(jìn)程。 服務(wù)器進(jìn)程 處理用戶進(jìn)程的請求。處理用戶進(jìn)程的請求。 處理過程 分析SQL命令并生成執(zhí)行方案。 從數(shù)據(jù)緩沖存儲區(qū)中讀取數(shù)據(jù)。 將執(zhí)行結(jié)果返回給用戶。后臺進(jìn)程后臺進(jìn)程 為所有數(shù)據(jù)庫用戶異步完成各種任務(wù)。主要的后臺進(jìn)程有
39、主要的后臺進(jìn)程有 DBWR 數(shù)據(jù)庫寫進(jìn)程 LGWR 日志寫進(jìn)程 CKPT 檢查點(diǎn)寫進(jìn)程 SMON 系統(tǒng)監(jiān)控進(jìn)程 PMON 進(jìn)程監(jiān)控進(jìn)程 ARCH 歸檔進(jìn)程 RECO 恢復(fù)進(jìn)程 LCKn 封鎖進(jìn)程DBWR(Data Base Writer) 將數(shù)據(jù)緩沖區(qū)中所有修改過的緩沖塊數(shù)據(jù)將數(shù)據(jù)緩沖區(qū)中所有修改過的緩沖塊數(shù)據(jù)寫到數(shù)據(jù)文件中,并使用寫到數(shù)據(jù)文件中,并使用LRU算法來保持緩算法來保持緩沖區(qū)中的數(shù)據(jù)塊為最近經(jīng)常使用的,以減沖區(qū)中的數(shù)據(jù)塊為最近經(jīng)常使用的,以減少少I/O次數(shù)。次數(shù)。 該進(jìn)程在啟動實(shí)例時(shí)自動啟動。該進(jìn)程在啟動實(shí)例時(shí)自動啟動。臟列表達(dá)到最低限制。臟列表達(dá)到最低限制。 相當(dāng)于參數(shù)相當(dāng)于參數(shù)
40、DB_BLOCK_WRITE_BATCH值的一半。值的一半。一個(gè)進(jìn)程在一個(gè)進(jìn)程在LRU列表中掃描指定數(shù)目的緩沖塊,未找到空閑緩沖列表中掃描指定數(shù)目的緩沖塊,未找到空閑緩沖塊。塊。 參數(shù)參數(shù)DB_BLOCK_MAX_SCAN_CNT確定掃描數(shù)目。確定掃描數(shù)目。出現(xiàn)超時(shí)出現(xiàn)超時(shí) 3秒鐘內(nèi)該進(jìn)程未活動,則該進(jìn)程將在秒鐘內(nèi)該進(jìn)程未活動,則該進(jìn)程將在LRU列表中查找尚未查找的列表中查找尚未查找的緩沖塊,這組緩沖塊的數(shù)目相當(dāng)于參數(shù)緩沖塊,這組緩沖塊的數(shù)目相當(dāng)于參數(shù)DB_BLOCK_WRITE_BATCH值的值的2倍。倍。出現(xiàn)檢查點(diǎn)。出現(xiàn)檢查點(diǎn)。檢查點(diǎn)(Checkpoint) : 在檢查點(diǎn)出現(xiàn)期間,在檢查點(diǎn)
41、出現(xiàn)期間,DBWR進(jìn)程將數(shù)據(jù)緩進(jìn)程將數(shù)據(jù)緩沖區(qū)中的所有臟緩沖塊寫到數(shù)據(jù)文件中,沖區(qū)中的所有臟緩沖塊寫到數(shù)據(jù)文件中,LGWR進(jìn)程將日志緩沖區(qū)中的所有記錄項(xiàng)寫進(jìn)程將日志緩沖區(qū)中的所有記錄項(xiàng)寫到日志文件中,以確保上一個(gè)檢查點(diǎn)至今到日志文件中,以確保上一個(gè)檢查點(diǎn)至今修改過的所有數(shù)據(jù)塊都被寫到磁盤上。修改過的所有數(shù)據(jù)塊都被寫到磁盤上。檢查點(diǎn): 預(yù)定數(shù)目的記錄項(xiàng)被填滿。預(yù)定數(shù)目的記錄項(xiàng)被填滿。 參數(shù)參數(shù)LOG_CHECKPOINT_INTERVAL確定了預(yù)定數(shù)確定了預(yù)定數(shù)目。目。 設(shè)置指定的秒數(shù)。設(shè)置指定的秒數(shù)。 參數(shù)參數(shù)LOG_CHECKPOINT_TIMEOUT確定了間隔秒數(shù)。確定了間隔秒數(shù)。 每個(gè)日
42、志開關(guān)處每個(gè)日志開關(guān)處 關(guān)閉實(shí)例時(shí)關(guān)閉實(shí)例時(shí)LGWR(Log Writer) 將日志緩沖區(qū)中的所有記錄項(xiàng)寫將日志緩沖區(qū)中的所有記錄項(xiàng)寫到日志文件中。到日志文件中。 該進(jìn)程在啟動實(shí)例時(shí)自動啟動。該進(jìn)程在啟動實(shí)例時(shí)自動啟動。 用戶進(jìn)程提交一個(gè)事務(wù)(用戶進(jìn)程提交一個(gè)事務(wù)(Commit) 日志緩沖區(qū)達(dá)到日志緩沖區(qū)達(dá)到1/3范圍范圍 DBWR對一個(gè)檢查點(diǎn)需要清除緩沖塊對一個(gè)檢查點(diǎn)需要清除緩沖塊 出現(xiàn)超時(shí)(出現(xiàn)超時(shí)(3秒鐘內(nèi)未活動,則進(jìn)行一秒鐘內(nèi)未活動,則進(jìn)行一次寫操作。)次寫操作。)CKPT(Checkpointer) 在控制文件中記錄檢查點(diǎn)。參數(shù)在控制文件中記錄檢查點(diǎn)。參數(shù)CHECKPOINT_PRO
43、CESS 確定了檢查點(diǎn)的啟動確定了檢查點(diǎn)的啟動/不啟動狀態(tài)。不啟動狀態(tài)。 若若CKPT進(jìn)程不啟動,則該進(jìn)程的工作將由進(jìn)程不啟動,則該進(jìn)程的工作將由LGWR進(jìn)程代進(jìn)程代勞。(如果數(shù)據(jù)庫的數(shù)據(jù)文件過多,這樣操作會降低系統(tǒng)勞。(如果數(shù)據(jù)庫的數(shù)據(jù)文件過多,這樣操作會降低系統(tǒng)性能。)性能。)ARCH(Archiver) 在日志文件組出現(xiàn)切換時(shí),將舊日在日志文件組出現(xiàn)切換時(shí),將舊日志文件的內(nèi)容拷貝到脫機(jī)存儲介質(zhì)上,志文件的內(nèi)容拷貝到脫機(jī)存儲介質(zhì)上,出現(xiàn)介質(zhì)失敗時(shí)用于恢復(fù)數(shù)據(jù)。出現(xiàn)介質(zhì)失敗時(shí)用于恢復(fù)數(shù)據(jù)。 LOG_ARCHIVE_START 確定了該進(jìn)程的啟動確定了該進(jìn)程的啟動/不啟動狀態(tài)不啟動狀態(tài)ARCH
44、存儲介質(zhì) LOG_ARCHIVE_DEST 當(dāng)數(shù)據(jù)庫在歸檔模式下操作時(shí),該當(dāng)數(shù)據(jù)庫在歸檔模式下操作時(shí),該參數(shù)確定了日志文件的歸檔目標(biāo)。參數(shù)確定了日志文件的歸檔目標(biāo)。 LOG_ARCHIVE_FORMAT 當(dāng)數(shù)據(jù)庫在歸檔模式下操作時(shí),該當(dāng)數(shù)據(jù)庫在歸檔模式下操作時(shí),該參數(shù)確定了歸檔日志文件的缺省文件參數(shù)確定了歸檔日志文件的缺省文件名格式。名格式。ARCH存儲介質(zhì) SMON(System Monitor,系統(tǒng)檢視進(jìn)程) 負(fù)責(zé)完成自動實(shí)例恢復(fù)。該進(jìn)程在啟動實(shí)例時(shí)負(fù)責(zé)完成自動實(shí)例恢復(fù)。該進(jìn)程在啟動實(shí)例時(shí)自動啟動。自動啟動。 PMON(Process Monitor,進(jìn)程檢視進(jìn)程) 撤消異常中斷的用戶進(jìn)程
45、,并釋放該進(jìn)程已獲撤消異常中斷的用戶進(jìn)程,并釋放該進(jìn)程已獲得的系統(tǒng)資源或鎖。得的系統(tǒng)資源或鎖。 RECO(Recover,恢復(fù)進(jìn)程) 在分布式操作的情況下,恢復(fù)一個(gè)事務(wù)的在分布式操作的情況下,恢復(fù)一個(gè)事務(wù)的失敗。失敗。 LCKn(Lock,鎖進(jìn)程) 在并行服務(wù)器系統(tǒng)間加鎖,最多可加在并行服務(wù)器系統(tǒng)間加鎖,最多可加10個(gè)個(gè)鎖,分別為鎖,分別為LCK0,LCK1,LCK9。處理SQL語句的三個(gè)階段 語法分析語法分析 執(zhí)行執(zhí)行 返回指令返回指令Server共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)UserUserUserSQL SELECT ename FROM emp ;Server共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)Us
46、erUserUserSMITHALLENWARD Server共享池?cái)?shù)據(jù)緩沖區(qū)日志緩沖區(qū)SELECT操作操作SQL SELECT sal FROM emp WHERE job = CLERK ;Server共享池?cái)?shù)據(jù)緩沖區(qū)UserUserUserB1B2EMP TableBlock 1Block2UPDATE操作 為了支持讀一致性,恢復(fù)和回滾,所有為了支持讀一致性,恢復(fù)和回滾,所有修改操作需要回滾段。修改操作執(zhí)行:修改操作需要回滾段。修改操作執(zhí)行: 將數(shù)據(jù)塊送到數(shù)據(jù)緩沖區(qū)將數(shù)據(jù)塊送到數(shù)據(jù)緩沖區(qū) 將回滾塊送到數(shù)據(jù)緩沖區(qū)將回滾塊送到數(shù)據(jù)緩沖區(qū) 在修改行上設(shè)置行鎖在修改行上設(shè)置行鎖 保存回滾數(shù)據(jù)到回滾段塊保存回滾數(shù)據(jù)到回滾段塊 將修改寫到數(shù)據(jù)塊將修改寫到數(shù)據(jù)塊SQL SELECT sal FROM emp WHERE job = CLERK ;Server1UserUserUser1Server2UserUserUser2共享池?cái)?shù)據(jù)緩沖區(qū)B1B2R2R1EMP TableBlock 1Block2RB01R1R2Data File 1Data File 2 SQL UPDATE emp SET sal = sal * 1.1 WHERE j
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)計(jì)施工公司管理制度
- 診所檔案信息管理制度
- 診所陽性患者管理制度
- 財(cái)富中心薪酬管理制度
- 賬戶交易權(quán)限管理制度
- 貨架安裝安全管理制度
- 貨車進(jìn)出小區(qū)管理制度
- 2025年中國個(gè)人交通工具行業(yè)市場全景分析及前景機(jī)遇研判報(bào)告
- 景區(qū)賠償協(xié)議書范本
- 初中古詩文賞析:從名篇到實(shí)踐
- 信號與系統(tǒng)考試試題及答案
- 2024年下半年考核招聘中小學(xué)教師報(bào)名表
- 粉末靜電噴涂工藝
- 古董數(shù)字化展示
- (部編版)統(tǒng)編版小學(xué)語文教材目錄(一至六年級上冊下冊齊全)
- DB1304-T 437-2023 醫(yī)療行業(yè)快開門式壓力容器安全管理規(guī)范
- 陜西延長石油集團(tuán)招聘筆試題庫2024
- 2024年黑龍江省綏化市中考物理二模試卷(含答案)
- GB/T 44271-2024信息技術(shù)云計(jì)算邊緣云通用技術(shù)要求
- 智慧樹知到《星期音樂會(同濟(jì)大學(xué))》章節(jié)測試答案
- 第11課《核舟記》課件語文八年級下冊
評論
0/150
提交評論