




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、4.2 4.2 ORACLEORACLE數(shù)據(jù)庫實例管理數(shù)據(jù)庫實例管理 Oracle服務(wù)器就是數(shù)據(jù)庫管理系統(tǒng)(DBMS),由數(shù)據(jù)庫數(shù)據(jù)庫( (Oracle database)Oracle database)和實例實例( (Oracle Oracle instance)instance)組成。 實例是一系列復(fù)雜的內(nèi)存結(jié)構(gòu)和操作系統(tǒng)進(jìn)程,它為Oracle客戶提供所期望的不同程度的服務(wù)。一個實例只能打開一個數(shù)據(jù)庫,或者說一個數(shù)據(jù)庫被唯一的一個實例裝載。 4.2.1 實例組成 4.2.2 實例創(chuàng)建 4.2.3 監(jiān)控實例北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1 4
2、.2.1 ORACLEORACLE數(shù)據(jù)庫實例數(shù)據(jù)庫實例組成組成 實例中每一個進(jìn)程都有各自的一個內(nèi)存塊每一個進(jìn)程都有各自的一個內(nèi)存塊,該內(nèi)存塊用于保存私有變量、地址堆棧和其他運行時的信息。 進(jìn)程間使用公共共享區(qū)進(jìn)程間使用公共共享區(qū)并在公共共享區(qū)內(nèi)完成它們的工作。公共共享區(qū)是能夠在同一時間內(nèi)被不同程序和不同進(jìn)程讀寫的一塊內(nèi)存區(qū)。該內(nèi)存塊稱為系統(tǒng)全局系統(tǒng)全局區(qū)區(qū)( (SGA)SGA)。因為SGA駐留在一個共享內(nèi)存段中,所以它經(jīng)常被稱作共享全局區(qū)。 后臺進(jìn)程就像數(shù)據(jù)庫的手,是直接處理數(shù)據(jù)庫的組件;SGA就像大腦,在必要時間接地調(diào)度手處理它們的信息與存儲檢索。SGA參與發(fā)生在數(shù)據(jù)庫中全部的信息和服務(wù)器的
3、處理。 單用戶的Oracle配置(Personal Oracle Lite),不使用多進(jìn)程執(zhí)行數(shù)據(jù)庫的功能。相反,所有的數(shù)據(jù)庫功能由一個Oracle進(jìn)程完成。由于這個原因,單用戶也稱為單進(jìn)程Oracle。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1 4.2.1 ORACLEORACLE數(shù)據(jù)庫實例數(shù)據(jù)庫實例組成組成 ORACLEORACLE實例是指有自己的內(nèi)存結(jié)構(gòu)和相關(guān)的服務(wù)實例是指有自己的內(nèi)存結(jié)構(gòu)和相關(guān)的服務(wù)器進(jìn)程及后臺進(jìn)程的器進(jìn)程及后臺進(jìn)程的DBMSDBMS。 4.2.1.1 內(nèi)存結(jié)構(gòu) 4.2.1.2 進(jìn)程 實例 SGA Shared pool Data
4、baseBuffer cache Redo logBuffer cache Library cacheData Dictionary cachePMONSMONDBWRLGWRCKPTOthers內(nèi)存結(jié)構(gòu)后臺進(jìn)程用戶進(jìn)程服務(wù)器進(jìn)程PGA北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.1 4.2.1.1 ORACLEORACLE內(nèi)存結(jié)構(gòu)內(nèi)存結(jié)構(gòu) ORACLE的內(nèi)存結(jié)構(gòu)主要有兩個內(nèi)存區(qū)域組成: SGA(System Global Area)SGA(System Global Area):系統(tǒng)全局區(qū),是ORACLE實例的基礎(chǔ),是一個共享區(qū)域,存放最近使用的SQL語
5、句、最近使用的數(shù)據(jù)、最近使用的數(shù)據(jù)字典等信息,供各個進(jìn)程調(diào)用。 PGA(Program Global Area)PGA(Program Global Area):程序全局區(qū),該區(qū)域是一非共享區(qū)域,存放會話、排序、游標(biāo)、主變量等信息,被服務(wù)器進(jìn)程調(diào)用,保證誰的請求處理結(jié)果給誰,誰的排序給誰,用戶聲明的、打開的、使用的、關(guān)閉的游標(biāo)是私有的,用戶的主變量不被其他用戶干擾。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.1 4.2.1.1 ORACLEORACLE內(nèi)存結(jié)構(gòu)內(nèi)存結(jié)構(gòu) 系統(tǒng)全局區(qū):系統(tǒng)全局區(qū)是實例的主要部分。它含有數(shù)據(jù)維護(hù)、SQL語句分析與重做緩存所必須
6、的所有內(nèi)存結(jié)構(gòu)。 系統(tǒng)全局區(qū)的數(shù)據(jù)是共享的系統(tǒng)全局區(qū)的數(shù)據(jù)是共享的,也就是說,多個進(jìn)程可以在同一時間對SGA中的數(shù)據(jù)進(jìn)行訪問和修改。所有數(shù)據(jù)庫操作都使用包含在SGA中某點上的結(jié)構(gòu)。 當(dāng)實例被創(chuàng)建時,分配SGA;當(dāng)實例關(guān)閉時,釋放SGA。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.1 4.2.1.1 ORACLEORACLE內(nèi)存結(jié)構(gòu)內(nèi)存結(jié)構(gòu) SGA組成如下:共享池。數(shù)據(jù)庫緩沖區(qū)高速緩存。重做日志緩沖區(qū)。 另外oracle9i還有Java pool,8i有Java虛擬機(jī),解釋Java;Java pool是利用數(shù)據(jù)庫技術(shù)解釋Java. oracle9i的SGA
7、可以通過SGA_MAX_SIZE被動態(tài)的設(shè)置大小,8i不能動態(tài)設(shè)置。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.1 4.2.1.1 ORACLEORACLE內(nèi)存結(jié)構(gòu)內(nèi)存結(jié)構(gòu)共享池:共享池包括庫高速緩存、數(shù)據(jù)字典高速緩存和服務(wù)器控制結(jié)構(gòu)(例如數(shù)據(jù)庫字符集)。 參見下圖 庫高速緩沖 字典高速緩沖 控制結(jié)構(gòu)共享SQL區(qū)專用SQL區(qū)永久區(qū) 運行區(qū)北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.1 4.2.1.1 ORACLEORACLE內(nèi)存結(jié)構(gòu)內(nèi)存結(jié)構(gòu)共享池: 庫高速緩存存儲已提交給RDBMS的SQL語句文本、分析過的格式與執(zhí)
8、行計劃,以及已被執(zhí)行的PL/SQL包頭與過程等。數(shù)據(jù)字典高速緩存存儲用于分析SQL語句的數(shù)據(jù)字典行。 OracleOracle服務(wù)器用庫高速緩存來提高執(zhí)行服務(wù)器用庫高速緩存來提高執(zhí)行SQLSQL語句的性能。當(dāng)一條語句的性能。當(dāng)一條SQLSQL語句提交時,服語句提交時,服務(wù)器首先查找高速緩存,查看相同的語句是務(wù)器首先查找高速緩存,查看相同的語句是否已被提交或緩存過。如果有,否已被提交或緩存過。如果有,OracleOracle使用使用存儲的語法分析樹和執(zhí)行路徑來執(zhí)行該語句,存儲的語法分析樹和執(zhí)行路徑來執(zhí)行該語句,使用存儲代碼可以獲得明顯的性能提高使用存儲代碼可以獲得明顯的性能提高。北京郵電大學(xué)軟件
9、學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.1 4.2.1.1 ORACLEORACLE內(nèi)存結(jié)構(gòu)內(nèi)存結(jié)構(gòu)共享池: 對于使用以前緩存的SQL語句,它必須在所有方面都與緩存版本完全相同,包括標(biāo)點符號和字母的大小寫。 庫高速緩存包括共享和專用SQL區(qū)。共享SQL區(qū)包括SQL語句語法分析樹和執(zhí)行路徑;專用SQL區(qū)存儲特定的會話信息,一個用戶會話能夠一次打開的專用SQL區(qū)的數(shù)量由init.ora參數(shù)OPEN_CURSORS決定。 庫高速緩存中的專用SQL區(qū)可更進(jìn)一步分為永久區(qū)和運行區(qū)。永久區(qū)中包含合法的信息,并可應(yīng)用于SQL語句的多個執(zhí)行中,而運行區(qū)中僅包含正在被執(zhí)行的SQL語句
10、的數(shù)據(jù)。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.1 4.2.1.1 ORACLEORACLE內(nèi)存結(jié)構(gòu)內(nèi)存結(jié)構(gòu)共享池: 字典高速緩存含有RDBMS引擎分析SQL語句所使用的數(shù)據(jù)字典信息。在這個區(qū)域中含有段信息、安全性、訪問權(quán)限和在可用的自由存儲空間等信息。 共享池的大小取決于共享池的大小取決于init.init.oraora文件參數(shù)文件參數(shù)SHARED_POOL_SIZESHARED_POOL_SIZE,它是以字節(jié)為單位的。它是以字節(jié)為單位的。ORACLE ORACLE 9i9i可以通過可以通過ALTER SYSTEM SET SHARED_POOL_
11、SIZEALTER SYSTEM SET SHARED_POOL_SIZE動動態(tài)設(shè)置。態(tài)設(shè)置。 共享區(qū)經(jīng)過長期裝卸和卸載數(shù)據(jù)對象會產(chǎn)生許多碎片,如果在共享池中沒有足夠的連續(xù)空間用來裝載目標(biāo)數(shù)據(jù),會產(chǎn)生錯誤。這個問題可以通過運行SQL命令A(yù)LTER SYSTEM FLUSH SHARED_POOL解決。但是如果在數(shù)據(jù)庫操作時,經(jīng)常遇到共享池錯誤,就必須增大共享池。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.1 4.2.1.1 ORACLEORACLE內(nèi)存結(jié)構(gòu)內(nèi)存結(jié)構(gòu)數(shù)據(jù)庫緩沖區(qū)高速緩存:是影響整個數(shù)據(jù)庫系統(tǒng)運行的重要因素之一。數(shù)據(jù)庫緩沖區(qū)高數(shù)據(jù)庫緩沖區(qū)高速
12、緩存是由速緩存是由與與OracleOracle塊相同大小的內(nèi)存塊組塊相同大小的內(nèi)存塊組成。所有成。所有OracleOracle操作的數(shù)據(jù)在使用前被裝入操作的數(shù)據(jù)在使用前被裝入到數(shù)據(jù)庫緩沖區(qū)高速緩存中。數(shù)據(jù)的更新在到數(shù)據(jù)庫緩沖區(qū)高速緩存中。數(shù)據(jù)的更新在內(nèi)存塊中完成內(nèi)存塊中完成。 Oracle根據(jù)最近最少被使用(LRU)列表將數(shù)據(jù)清出緩沖區(qū)高速緩存。LRU列表記錄數(shù)據(jù)塊被訪問的頻繁程度。當(dāng)服務(wù)器在緩沖區(qū)中需要更多空間來從磁盤讀入一個數(shù)據(jù)塊時,它去訪問LRU列表,以確定可以清出哪些塊,使用這種方法,保證最頻繁使用的塊保存在內(nèi)保證最頻繁使用的塊保存在內(nèi)存中存中。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.
13、06郭文明 2003.06.054.2.1.1 4.2.1.1 ORACLEORACLE內(nèi)存結(jié)構(gòu)內(nèi)存結(jié)構(gòu)數(shù)據(jù)庫緩沖區(qū)高速緩存: 被修改過的緩沖塊稱為臟的,臟列表記錄所有在內(nèi)存中被修改而又尚未寫入磁盤中的數(shù)據(jù)。當(dāng)Oracle接收到修改數(shù)據(jù)的請求時,對高速緩存中的塊進(jìn)行數(shù)據(jù)修改,同時寫入重做日志中,然后該塊被放入臟的列表中,對這些數(shù)據(jù)的隨后訪問從高速緩存中讀取改變的數(shù)據(jù)的新的值。 Oracle服務(wù)器對更新的一塊數(shù)據(jù),并不立即更新數(shù)據(jù)文件中的數(shù)據(jù)。RDBMS等到一定條件時才將改變的數(shù)據(jù)刷新寫入數(shù)據(jù)文件(參見數(shù)據(jù)庫寫入進(jìn)程)。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.
14、2.1.14.2.1.1 ORACLEORACLE內(nèi)存結(jié)構(gòu)內(nèi)存結(jié)構(gòu)數(shù)據(jù)庫緩沖區(qū)高速緩存: DB_BLOCK_SIZE和DB_BLOCK_BUFFERS是決定緩沖區(qū)高速緩存大小的兩個初始化參數(shù)。 DB_BLOCK_SIZE設(shè)置Oracle塊大小,DB_BLOCK_BUFFERS決定分配給緩沖區(qū)高速緩存的塊的數(shù)量。兩參數(shù)相乘就可得出緩沖區(qū)高速緩存的內(nèi)存總數(shù)(以字節(jié)為單位)。 ORACLE 9i可以通過ALTER SYSTEM SET DB_CACHE_SIZE動態(tài)設(shè)置。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.1 4.2.1.1 ORACLEORACLE內(nèi)
15、存結(jié)構(gòu)內(nèi)存結(jié)構(gòu)重做日志緩沖區(qū):重做日志緩沖區(qū)用于在內(nèi)存中存儲未被刷新寫入聯(lián)機(jī)重做日志文件的重做信息。 它是循環(huán)使用的緩沖區(qū),當(dāng)重做日志緩沖區(qū)填滿時,將它的內(nèi)容寫入聯(lián)機(jī)重做日志文件。 重做日志緩沖區(qū)的大小重做日志緩沖區(qū)的大小是由是由LOG_BUFFERLOG_BUFFER初初始化參數(shù)決定始化參數(shù)決定,以字節(jié)為單位,決定在內(nèi)存中保留多少空間緩存重做日志項。如果這個值設(shè)置得過低,進(jìn)程之間相互競爭,LGWR進(jìn)程讀出和寫入緩存,有可能會導(dǎo)致性能問題。 北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.1 4.2.1.1 ORACLEORACLE內(nèi)存結(jié)構(gòu)內(nèi)存結(jié)構(gòu)重做日志緩
16、沖區(qū): 為強(qiáng)迫重做日志順序?qū)懭?,Oracle服務(wù)器使用閂控制對緩存的訪問。閂是一個Oracle進(jìn)程對一個內(nèi)存結(jié)構(gòu)的鎖定,一個進(jìn)程必須持有重做分配閂,才能寫入重做日志緩沖區(qū)。當(dāng)一個進(jìn)程持有分配閂時,其他任何進(jìn)程都不能使用這個分配閂寫入重做日志緩沖區(qū)。 OracleOracle服務(wù)器使用服務(wù)器使用LOG_SMALL_ENTRY_MAX_SIZELOG_SMALL_ENTRY_MAX_SIZE初始化參數(shù)限制初始化參數(shù)限制一次寫入的重做的總量一次寫入的重做的總量。這個參數(shù)以字節(jié)為單位,其缺省值隨操作系統(tǒng)和硬件不同而不同。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1
17、.14.2.1.1 ORACLEORACLE內(nèi)存結(jié)構(gòu)內(nèi)存結(jié)構(gòu)重做日志緩沖區(qū): 對具有多個CPU的服務(wù)器而言,Oracle服務(wù)器不允許使用重做分配閂所書寫的重做日志項所需空間比參數(shù)LOG_SMALL_ENTRY_MAX_SIZE大。相反,進(jìn)程必須持有一個重做復(fù)制閂。可獲得的重做復(fù)制閂的數(shù)量等于LOG_SIMULTANEOUS_COPIES初始化參數(shù)的值。LOG_SIMULTANEOUS_COPIES的缺省值是系統(tǒng)中CPU的數(shù)量。使用重做復(fù)制閂,多個進(jìn)程能同時寫入重做日志緩沖區(qū)。 可以使用V$LATCH動態(tài)性能視圖監(jiān)控重做分配閂與重做復(fù)制閂。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 20
18、03.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程 ORACLE進(jìn)程可以理解為一系列執(zhí)行一定任務(wù)、提供不同服務(wù)信息的程序。主要有用戶進(jìn)程、服務(wù)器進(jìn)程、后臺進(jìn)程三種類型。 用戶進(jìn)程:當(dāng)客戶機(jī)向ORACLE服務(wù)器發(fā)出一個連接請求時,就產(chǎn)生一個用戶進(jìn)程。 數(shù)據(jù)庫用戶操縱數(shù)據(jù)前,首先要建立一個與數(shù)據(jù)庫服務(wù)器的連接(可通過Oracle工具,如SQL*Plus),連接的同時產(chǎn)生用戶進(jìn)程,用戶進(jìn)程并不直接作用于ORACLE服務(wù)器,而是與一個服務(wù)器進(jìn)程進(jìn)行通信。 北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEO
19、RACLE進(jìn)程進(jìn)程 用戶進(jìn)程:每個用戶進(jìn)程被分配一部分內(nèi)存區(qū),每個用戶進(jìn)程被分配一部分內(nèi)存區(qū),稱為進(jìn)程全局區(qū)稱為進(jìn)程全局區(qū)( (PGA)PGA)。 當(dāng)一個用戶進(jìn)程通過專用服務(wù)器方式連接數(shù)據(jù)庫時,用戶的會話數(shù)據(jù)、堆??臻g和游標(biāo)狀態(tài)信息存儲在進(jìn)程全局區(qū)中。用戶的會話數(shù)據(jù)包括安全和資源使用信息;堆??臻g含有為用戶會話指定的本地變量;游標(biāo)狀態(tài)區(qū)包括運行時的游標(biāo)信息、返回的行和游標(biāo)返回的代碼。 如果用戶進(jìn)程通過共享服務(wù)器進(jìn)程方式進(jìn)行連接,游標(biāo)和會話信息被存儲在系統(tǒng)全局區(qū)(SGA)中。盡管對整個數(shù)據(jù)庫而言,這并不增加對內(nèi)存空間的要求,但是它需要一個更大的系統(tǒng)全局區(qū)來存放這些附加的會話信息。北京郵電大學(xué)軟件
20、學(xué)院 郭文明 2003.06郭文明 2003.06.05Oracle Server4.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程 服務(wù)器進(jìn)程:服務(wù)器進(jìn)程接受用戶發(fā)出的請求,并根據(jù)請求與數(shù)據(jù)庫通信,通過這些通信完成用戶進(jìn)程對數(shù)據(jù)庫中數(shù)據(jù)的處理要求,同時完成對數(shù)據(jù)庫的連接操作和I/O訪問。 SGAShared poolDatabase Buffer Redo log Buffer 用戶進(jìn)程服務(wù)器進(jìn)程數(shù)據(jù)庫用戶建立連接建立會話北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程 Oracle后臺進(jìn)程
21、:在任意瞬間,Oracle數(shù)據(jù)庫可以處理許多行信息、處理幾百個同步用戶請求、進(jìn)行復(fù)雜的數(shù)據(jù)操作,與此同時提供最高水平的性能和數(shù)據(jù)的完整性。 為了完成這些任務(wù),Oracle數(shù)據(jù)庫將一項大的工作分散到多個程序中,其中每個程序的大部分操作都是相互獨立的,并扮演一個特定的角色。這些程序稱為Oracle后臺進(jìn)程。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程 OracleOracle數(shù)據(jù)庫的物理文件和內(nèi)存結(jié)構(gòu)之間的關(guān)數(shù)據(jù)庫的物理文件和內(nèi)存結(jié)構(gòu)之間的關(guān)系由后臺進(jìn)程來維持系由后臺進(jìn)程來維持。 理解后臺進(jìn)程和它們擔(dān)負(fù)的任
22、務(wù),將有助于分析性能問題、指出瓶頸和診斷數(shù)據(jù)庫中的故障點。 數(shù)據(jù)庫擁有多個后臺進(jìn)程,其數(shù)量取決于數(shù)據(jù)庫的配置。每個后臺進(jìn)程創(chuàng)建一個跟蹤文件,在實例操作期間保存跟蹤文件??梢栽O(shè)置init.ora文件的BACKGROUND_DUMP_DEST參數(shù)來規(guī)定后臺進(jìn)程跟蹤文件的位置。排除數(shù)據(jù)庫故障時,跟蹤文件就顯得非常重要。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程 Oracle后臺進(jìn)程有:系統(tǒng)監(jiān)控(SMON)進(jìn)程監(jiān)控進(jìn)程(PMON)數(shù)據(jù)庫寫進(jìn)程(DBWR)日志寫進(jìn)程(LGWR)調(diào)度進(jìn)程(Dnnn)歸檔進(jìn)程(AR
23、CH)檢查點(CKPT)恢復(fù)進(jìn)程(RECO)快照進(jìn)程(SNPn)鎖進(jìn)程(LCKn)并行查詢進(jìn)程(Pnnn)北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程系統(tǒng)監(jiān)控(System Monitor,SMON) 進(jìn)程監(jiān)控(Process Monitor,PMON): 由于種種原因,對Oracle數(shù)據(jù)庫的連接可能會發(fā)生崩潰、掛起或其他非正常終止。例如,網(wǎng)絡(luò)斷線、用戶提出不合理的要求遭到系統(tǒng)拒絕,操作系統(tǒng)出錯等等,都會引起連接中斷或系統(tǒng)掛起,Oracle服務(wù)器必須有能力去處理由于各種原因而引起的失敗。 系統(tǒng)監(jiān)控和進(jìn)程
24、監(jiān)控都是自動解決數(shù)據(jù)庫系統(tǒng)監(jiān)控和進(jìn)程監(jiān)控都是自動解決數(shù)據(jù)庫系統(tǒng)問題的后臺進(jìn)程系統(tǒng)問題的后臺進(jìn)程。 北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程進(jìn)程監(jiān)控(PMON)自動清除中斷或失敗的進(jìn)程,包括清除非正常中斷的進(jìn)程留下的孤兒會話、回滾未提交事務(wù)、釋放被斷開連接的進(jìn)程占有的鎖、釋放被失敗進(jìn)程占有的系統(tǒng)全局區(qū)(SGA)資源,它同時監(jiān)控服務(wù)器和調(diào)度進(jìn)程,如果它們失敗則自動重啟它們。 Instance SGA PMONPGA area北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.
25、1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程系統(tǒng)監(jiān)控(SMON)作為恢復(fù)自動實例的進(jìn)程,回滾尚未提交的事務(wù)或前卷重做日志。SMON也是管理某些數(shù)據(jù)庫段的進(jìn)程,收回不再使用的臨時段空間,并自動合并在數(shù)據(jù)文件中相鄰的自由空間塊。 SMON僅當(dāng)創(chuàng)建表空間或表時的缺省存儲參數(shù)pctincrease不是0時,合并表空間中的自由空間。如果想讓SMON自動地處理這個操作,至少將pctincrease設(shè)置為1。Instance SGA SMONDatabaseDatafilesControlfilesRedo logfiles北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.05
26、Database4.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程數(shù)據(jù)庫寫進(jìn)程(Database Writer, DBWR):負(fù)責(zé)將緩沖區(qū)中臟的數(shù)據(jù)塊寫入到數(shù)據(jù)文件中。Instance SGAdatabase Buffer cache DBWRDatafilesControlfilesRedo logfiles北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程數(shù)據(jù)庫寫進(jìn)程(Database Writer,DBWR) DBWR DBWR等到下列情況發(fā)生時,才成批地讀臟等到下列情況發(fā)生時,才成批地讀
27、臟列表,并將在臟列表中發(fā)現(xiàn)的所有塊刷新寫入列表,并將在臟列表中發(fā)現(xiàn)的所有塊刷新寫入數(shù)據(jù)文件數(shù)據(jù)文件。 1)發(fā)生一個檢查點。 2)臟列表的長度達(dá)到init.ora文件中DB_BLOCK_WRITE_BATCH參數(shù)值的一半。 3)使用的緩沖區(qū)數(shù)量達(dá)到init.ora參數(shù)DB_BLOCK_MAX_SCAN。 4)DBWR后臺進(jìn)程發(fā)生超時(大約每3秒)。 北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程數(shù)據(jù)庫寫進(jìn)程(Database Writer,DBWR) 在大多數(shù)安裝中,有一個DBWR進(jìn)程處理所有數(shù)據(jù)庫的所有寫
28、入活動。但是當(dāng)發(fā)現(xiàn)這個DBWR進(jìn)程不能滿足數(shù)據(jù)庫要求時,可以啟動一個以上的DBWR進(jìn)程。 init.ora文件中DB_WRITES參數(shù)可以設(shè)置在啟動時創(chuàng)建的DBWR進(jìn)程數(shù)(缺省值是1)。建議使用與存儲數(shù)據(jù)文件的物理磁盤一樣多的DBWR進(jìn)程或者將這個數(shù)量設(shè)為與數(shù)據(jù)庫中數(shù)據(jù)文件的數(shù)量相等。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程數(shù)據(jù)庫寫進(jìn)程(Database Writer,DBWR) 另一個參數(shù)是DB_BLOCK_CHECKPOINT_BATCH,設(shè)置在每個檢查點DBWR寫入的塊的最大量(參看檢查點進(jìn)程
29、)。增大該參數(shù),可以減少DBWR刷新緩沖區(qū)的次數(shù)。但將這個數(shù)值增得過大,當(dāng)DBWR最終刷新緩沖區(qū)時,可能產(chǎn)生不能接受的延遲。 第三個參數(shù)是DB_BLOCK_CHECKSUM,這是個布爾參數(shù),啟用這個參數(shù)時,導(dǎo)致每個數(shù)據(jù)庫塊被寫入時附加一個校驗和值。當(dāng)隨后讀取該塊時,計算校驗和值并與存儲在數(shù)據(jù)庫中的數(shù)值進(jìn)行比較,如果值不同,將產(chǎn)生錯誤。當(dāng)查找數(shù)據(jù)毀壞問題時,這是一個有價值的參數(shù),但是在全部時間都啟用這個值也會有代價。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程日志寫(Log Writer,LGWR): L
30、GWR是將在系統(tǒng)全局區(qū)中重做日志緩沖區(qū)的重做日志條目寫入到聯(lián)機(jī)重做日志文件的進(jìn)程。 LGWRLGWR執(zhí)行寫入操作執(zhí)行寫入操作的條件是:發(fā)生提交、的條件是:發(fā)生提交、重做日志緩沖區(qū)滿度重做日志緩沖區(qū)滿度達(dá)到三分之一達(dá)到三分之一、超、超時時(3(3秒秒) )、DBWRDBWR進(jìn)程開始進(jìn)程開始之前之前。 DatabaseInstance SGARedo log buffer LGWRDBWRDatafilesControlfilesRedo logfiles北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程日志寫(
31、Log Writer,LGWR): 直到Oracle在LGWR完成將重做信息從重做緩沖區(qū)刷新到聯(lián)機(jī)重做日志文件之后,Oracle才認(rèn)為一個事務(wù)已完成。在LGWR成功地將重做日志項寫入聯(lián)機(jī)重做文件時(并不是改變數(shù)據(jù)文件中的數(shù)據(jù)時),將一個成功碼返回給服務(wù)器進(jìn)程。 用于配置LGWR進(jìn)程的選項很少,大多數(shù)的配置涉及重做日志緩沖區(qū)和支持該緩沖區(qū)的內(nèi)存結(jié)構(gòu),而不是LGWR進(jìn)程自身。 可以建立多個LGWR的I/O口,以改善向日志文件的寫入性能,init.ora中LGWR_IO_SLAVES參數(shù)決定。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 OR
32、ACLEORACLE進(jìn)程進(jìn)程日志寫(Log Writer,LGWR): 檢查點導(dǎo)致LGWR和DBWR。檢查點間隔時間越短,發(fā)生數(shù)據(jù)庫故障時需要的恢復(fù)時間越短,同時減少了必須執(zhí)行每一檢查點所需的工作。當(dāng)決定正確的檢查點間隔時,必須權(quán)衡所有這些因素。 LOG_CHECKPOINT_INTERVAL參數(shù)即一定數(shù)量的操作系統(tǒng)塊(不是Oracle塊)寫入重做時,引起數(shù)據(jù)庫中的一個檢查點被觸發(fā)。LOG_CHECKPOINT_TIMEOUT參數(shù)指定的時間間隔(以秒為單位)發(fā)生一個檢查點。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORA
33、CLE進(jìn)程進(jìn)程日志寫(Log Writer,LGWR): 另外當(dāng)一個重做日志組寫滿時,一個檢查點被觸發(fā)。要注意不要設(shè)置不必要的檢查點,或者迫使不需要的檢查點發(fā)生。例如,如果一個重做日志組大小為3MB,而LOG_CHECKPOINT_INTERVAL設(shè)置為2.5MB。當(dāng)有2.5MB的數(shù)據(jù)寫入重做日志時,導(dǎo)致發(fā)生一個檢查點。另外,當(dāng)重做日志組寫滿時(僅在又寫入0.5MB的數(shù)據(jù)后),發(fā)生另一個檢查點。事實上,這兩個檢查點將相繼發(fā)生。頻繁的檢查點將浪費大量的進(jìn)程活動和頻繁的檢查點將浪費大量的進(jìn)程活動和I/OI/O次數(shù)以執(zhí)行相關(guān)的檢查點次數(shù)以執(zhí)行相關(guān)的檢查點。 最后一個參數(shù)是布爾值LOG_CHECKPO
34、INTS_TO_ALERT。每當(dāng)檢查點發(fā)生時,它為數(shù)據(jù)庫在alert.log文件中設(shè)置一個標(biāo)記,并用于試圖指出確切的檢查點間隔。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程調(diào)度進(jìn)程:正如前面所提到的,服務(wù)器進(jìn)程既可以是一個用戶進(jìn)程專有的,也可以在多個用戶進(jìn)程之間共享。使用共享服務(wù)器要求配置多線程服務(wù)器。當(dāng)使用共享服務(wù)器進(jìn)程時,至少必須存在一個調(diào)度進(jìn)程(Dnnn),在環(huán)境需要時也可能有多個調(diào)度進(jìn)程。調(diào)度進(jìn)程將用戶調(diào)度進(jìn)程將用戶請求傳送到系統(tǒng)全局區(qū)的請求隊列,并將服務(wù)請求傳送到系統(tǒng)全局區(qū)的請求隊列,并將服務(wù)
35、器的響應(yīng)信息返回給正確的用戶進(jìn)程。器的響應(yīng)信息返回給正確的用戶進(jìn)程。 參數(shù)MTS_DISPATCHERS指定調(diào)度進(jìn)程使用的協(xié)議及開始使用該協(xié)議的調(diào)度進(jìn)程的數(shù)量。 參數(shù)MTS_MAX_DISPATCHERS控制RDBMS允許的調(diào)度進(jìn)程的最大數(shù)量。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程歸檔進(jìn)程(Archiver,ARCH):ARCH負(fù)責(zé)將全部聯(lián)機(jī)重做日志復(fù)制到歸檔重做日志文件。這僅在數(shù)據(jù)庫運行在歸檔模式(ARCHIVELOG)下才發(fā)生。DatafilesControlfilesRedo logfile
36、sArchivedRedo logfilesARCH北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程歸檔進(jìn)程(Archiver,ARCH): 當(dāng)ARCH正在復(fù)制歸檔重做日志時,沒有其他進(jìn)程能夠?qū)懭脒@個重做日志。重做日志是按順序循環(huán)使用的,如果數(shù)據(jù)庫需要轉(zhuǎn)換重做日志,但是ARCH還正在按其順序復(fù)制下一個日志,所有數(shù)據(jù)庫的活動將終止,直到ARCH完成。如果歸檔由于某些原因不能完成復(fù)制日志,它將等待直到引起不能寫入的錯誤得到解決為止。 在init.ora文件中ARCHIVE_LOG_START參數(shù)必須設(shè)置為TRU
37、E,當(dāng)數(shù)據(jù)庫啟動時,才會自動開始?xì)w檔。如果設(shè)置了歸檔模式,但不自動啟動ARCH,當(dāng)所有聯(lián)機(jī)重做日志寫滿時,數(shù)據(jù)庫將會掛起,等待你手工歸檔聯(lián)機(jī)日志。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程檢查點進(jìn)程(CKPT):CKPT是可選的后臺進(jìn)程,執(zhí)行LGWR進(jìn)程通常會執(zhí)行的檢查點任務(wù)即用當(dāng)前版本信息更新數(shù)據(jù)文件和控制文件頭。 CHECKPOINT_PROCESS參數(shù)設(shè)置為TRUE可以啟用CKPT進(jìn)程。注意在Oracle 8.x中,該已被集成入RDBMS中并設(shè)置為TRUE。如果在Oracle 8.x的init文
38、件中包括這個參數(shù),實例啟動將會失敗。DatabaseInstance SGARedo log buffer LGWRCKPTDBWRDatafilesControlfilesRedo logfiles北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程恢復(fù)進(jìn)程(RECO):負(fù)責(zé)在分布式數(shù)據(jù)庫中恢復(fù)失敗的事務(wù)。分布式事務(wù)配置數(shù)據(jù)庫時(設(shè)置DISTRIBUTED_TRANSACTIONS值大于0),RECO會自動啟動??煺者M(jìn)程(SNPn):處理數(shù)據(jù)庫快照的自動刷新,并運行預(yù)定的數(shù)據(jù)庫過程。參數(shù)JOB_QUEUE_P
39、ROCESS設(shè)置啟動的快照進(jìn)程數(shù),參數(shù)JOB_QUEUE_INTERVAL決定快照進(jìn)程在被喚醒以處理掛起的作業(yè)或事務(wù)之前休眠的時間(以秒為單位)。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1.2 4.2.1.2 ORACLEORACLE進(jìn)程進(jìn)程鎖進(jìn)程(LCKn):在并行服務(wù)器環(huán)境中,多個實例安裝在同一個數(shù)據(jù)庫上,鎖進(jìn)程(LCKn)負(fù)責(zé)管理和協(xié)調(diào)每個實例占有的鎖。并行查詢進(jìn)程(Pnnn):根據(jù)數(shù)據(jù)庫的活動和并行查詢選項的配置,Oracle服務(wù)器啟動和停止查詢進(jìn)程。這些進(jìn)程涉及并行索引的創(chuàng)建、表的創(chuàng)建及查詢。啟動的進(jìn)程的數(shù)量與參數(shù)PARALLEL_MIN_SE
40、RVERS指定的數(shù)量相同,但決不能超過參數(shù)PARALLEL_MAX_SERVERS指定的進(jìn)程數(shù)。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1 4.2.1 ORACLEORACLE數(shù)據(jù)庫實例組成數(shù)據(jù)庫實例組成 為更好地理解前面討論的實例組件是如何相互交互的,看一個典型的事務(wù)在實例結(jié)構(gòu)中的移動。 當(dāng)一個用戶會話使用SQL*Net驅(qū)動程序連接到服務(wù)器會話時,開始一個事務(wù)。這個連接可以使用它自己的一個服務(wù)進(jìn)程進(jìn)行專用連接,或通過調(diào)度進(jìn)程處理的一個共享連接。服務(wù)器會話對傳遞給它的SQL語句與已經(jīng)保存在共享SQL區(qū)中的語句進(jìn)行比較,如果在共享池中發(fā)現(xiàn)有完全一樣的語句,
41、使用該語句早已存儲的做過語法分析的形式與執(zhí)行計劃。如果在共享池中沒有發(fā)現(xiàn)匹配語句,服務(wù)器進(jìn)程對這些語句進(jìn)行語法分析。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1 4.2.1 ORACLEORACLE數(shù)據(jù)庫實例組成數(shù)據(jù)庫實例組成 接下來,服務(wù)器會話查看在數(shù)據(jù)庫緩沖區(qū)中是否已經(jīng)存儲了完成該事務(wù)所必須的數(shù)據(jù)塊。如果在緩沖區(qū)中沒有,服務(wù)器會話就從數(shù)據(jù)文件中讀取必要的數(shù)據(jù),將它們拷貝到緩沖區(qū)中。如果事務(wù)是一個查詢,服務(wù)器會話將查詢的結(jié)果返回給用戶進(jìn)程(執(zhí)行必要次數(shù)的數(shù)據(jù)塊讀和拷貝以返回所有數(shù)據(jù))。 對一個修改數(shù)據(jù)的事務(wù),有更多的步驟需要做。例如,假設(shè)事務(wù)是一個更新。
42、在將必要的數(shù)據(jù)塊讀入緩沖區(qū)高速緩存中之后,修改內(nèi)存中的數(shù)據(jù)塊。修改的緩存塊標(biāo)記為臟的,并把它們放入臟列表中。還產(chǎn)生重做信息,并將重做信息存儲在重做日志緩存中。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1 4.2.1 ORACLEORACLE數(shù)據(jù)庫實例組成數(shù)據(jù)庫實例組成 如果事務(wù)是相對短期的,事務(wù)完成,用戶提交,發(fā)出信號給LGWR進(jìn)程讓它將重做日志緩沖區(qū)刷新到聯(lián)機(jī)重做日志文件。如果事務(wù)相對持續(xù)時間很長和很復(fù)雜,下列事情有可能發(fā)生: 1)產(chǎn)生的重做引起重做日志緩沖區(qū)寫滿三分之一的空間,這會觸發(fā)LGWR進(jìn)程刷新重做日志緩沖區(qū)。 2)放入臟列表中的塊數(shù)達(dá)到限定的長
43、度,這會觸發(fā)DBWR進(jìn)程將數(shù)據(jù)庫緩沖區(qū)所有臟列表項刷新寫入到數(shù)據(jù)文件中,它反過來也使LGWR進(jìn)程向磁盤刷新重做日志緩沖區(qū)。 3)遇到一個數(shù)據(jù)庫檢查點,這將觸發(fā)數(shù)據(jù)庫緩沖區(qū)高速緩存和重做日志高速緩存刷新。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.1 4.2.1 ORACLEORACLE數(shù)據(jù)庫實例組成數(shù)據(jù)庫實例組成 4)可獲得的緩沖區(qū)高速緩存中的自由緩存空間下降到規(guī)定的門限以下,這也會引起數(shù)據(jù)庫高速緩存緩沖區(qū)的刷新。 5)產(chǎn)生一個不可恢復(fù)的數(shù)據(jù)庫錯誤,這迫使該事務(wù)中斷、回滾并向服務(wù)器會話報告錯誤。 當(dāng)事務(wù)正在處理向重做緩存生成的重做并刷新時,聯(lián)機(jī)重做日志逐漸被
44、填滿。當(dāng)前日志被填滿后,LGWR進(jìn)程開始寫入下一個日志組;與此同時,歸檔進(jìn)程將重做日志復(fù)制到磁盤或磁帶。因為直到所有重做日志信息從重做緩沖區(qū)寫入到聯(lián)機(jī)重做日志之后,事務(wù)才被記錄為執(zhí)行成功的,所以LGWR和ARCH必須各自有能力在無錯誤的情況下完成自己的任務(wù)。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.2 4.2.2 ORACLEORACLE數(shù)據(jù)庫實例創(chuàng)建數(shù)據(jù)庫實例創(chuàng)建 通過前面介紹,我們知道ORACLEORACLE數(shù)據(jù)庫服務(wù)器數(shù)據(jù)庫服務(wù)器的啟動事實上是創(chuàng)建實例的過程的啟動事實上是創(chuàng)建實例的過程。打開一個Oracle數(shù)據(jù)庫的過程具體包括以下三步: 1 1)創(chuàng)建
45、一個)創(chuàng)建一個OracleOracle實例(非安裝階段)實例(非安裝階段) 2 2)由實例安裝數(shù)據(jù)庫(安裝階段)由實例安裝數(shù)據(jù)庫(安裝階段) 3 3)打開數(shù)據(jù)庫(打開階段)打開數(shù)據(jù)庫(打開階段) Oracle實例在數(shù)據(jù)庫啟動的非安裝階段創(chuàng)建。當(dāng)數(shù)據(jù)庫經(jīng)過非安裝階段時,讀取init.ora參數(shù)文件,啟動后臺進(jìn)程,初始化系統(tǒng)全局區(qū)(SGA)。init.ora文件定義了實例的配置,包括內(nèi)存結(jié)構(gòu)的大小和啟動后臺進(jìn)程的數(shù)量和類型等。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.2 4.2.2 ORACLEORACLE數(shù)據(jù)庫實例創(chuàng)建數(shù)據(jù)庫實例創(chuàng)建 下一階段稱為安裝階段。i
46、nit.ora文件中的控制文件參數(shù)值決定數(shù)據(jù)庫的安裝實例。在安裝階段,讀取控制文件并使其成為可訪問的,可以對控制文件內(nèi)存儲的數(shù)據(jù)進(jìn)行查詢和修改。 最后的階段就是打開數(shù)據(jù)庫。在這一階段,存儲在控制文件中的數(shù)據(jù)庫文件以排它使用方式被實例鎖定,使數(shù)據(jù)庫能夠被普通用戶訪問。打開是數(shù)據(jù)庫的正常操作狀態(tài),在數(shù)據(jù)庫打開之前,只有DBA能訪問數(shù)據(jù)庫,且只能通過服務(wù)器管理器對其進(jìn)行訪問。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.2 4.2.2 ORACLEORACLE數(shù)據(jù)庫實例創(chuàng)建數(shù)據(jù)庫實例創(chuàng)建Oracle啟動進(jìn)程0 開始狀態(tài) SHUTDOWN1 啟動實例讀參數(shù)文件;分配S
47、GA;啟動后臺進(jìn)程;打開跟蹤文件和警告。 NOMOUNT(Start up nomount;)2 裝載數(shù)據(jù)庫打開控制文件(控制文件的位置在參數(shù)文件中約定)。 MOUNT(Alter database mount;)3 打開數(shù)據(jù)庫打開數(shù)據(jù)文件;打開日志文件;(數(shù)據(jù)庫包含的文件名及位置信息在控制文件中約定)。 OPEN(Alter database open;)北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.2 4.2.2 ORACLEORACLE數(shù)據(jù)庫實例創(chuàng)建數(shù)據(jù)庫實例創(chuàng)建 為了改變數(shù)據(jù)庫的操作狀態(tài),必須擁有SYSDBA特權(quán)。當(dāng)數(shù)據(jù)庫從關(guān)閉狀態(tài)到打開狀態(tài)時,可以單
48、步調(diào)試數(shù)據(jù)庫的每一個操作狀態(tài),例如,可以在服務(wù)器管理器工具中執(zhí)行STARTUP NOMOUNT命令,使數(shù)據(jù)庫處在非安裝階段,接下來可以運行ALTER DATABASE MOUNT或者ALTER DATABASE OPEN命令以單步調(diào)試到操作階段。 無論是在何種操作狀態(tài)下,如果執(zhí)行SHUT DOWN命令,將完全關(guān)閉數(shù)據(jù)庫。當(dāng)關(guān)閉數(shù)據(jù)庫時,只能從當(dāng)前運行狀態(tài)轉(zhuǎn)到完全關(guān)閉狀態(tài),數(shù)據(jù)庫不能從打開狀態(tài)轉(zhuǎn)到安裝狀態(tài)。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.2 4.2.2 ORACLEORACLE數(shù)據(jù)庫實例創(chuàng)建數(shù)據(jù)庫實例創(chuàng)建 沒有安裝數(shù)據(jù)庫的實例稱為空閑的它使用內(nèi)存,
49、但不做任何工作。一個實例只能唯一地與一個數(shù)據(jù)庫連接,而且對一個數(shù)據(jù)庫也只分配一個實例(使用并行服務(wù)器除外)。 啟動數(shù)據(jù)庫命令: STARTUP FORCERESTRICTPFILE=filename OPEN RECOVER|MOUNT|NOMOUNT; FORCE 強(qiáng)制關(guān)閉數(shù)據(jù)庫,然后正常啟動, RESTRICT 啟動數(shù)據(jù)庫,只允許具有特權(quán)的用戶訪問, RECOVER 啟動數(shù)據(jù)庫同時開始介質(zhì)恢復(fù), PFILE 說明啟動實例使用的參數(shù)文件及其位置。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.24.2.2 ORACLEORACLE數(shù)據(jù)庫實例創(chuàng)建數(shù)據(jù)庫實例創(chuàng)建
50、關(guān)閉數(shù)據(jù)庫過程與啟動相反,關(guān)閉數(shù)據(jù)文件,關(guān)閉日志文件,關(guān)閉控制文件,關(guān)閉實例并釋放資源。關(guān)閉數(shù)據(jù)庫命令: SHUTDOWN NORMAL|TRANSACTIONAL|IMMEDIATE|ABORT;SHUTDOWNABORTIMMEDIATETRANSACTIONALNORMAL允許新的連接NONONONO等待用戶結(jié)束會話NONONOYES等待事務(wù)結(jié)束NONOYESYES產(chǎn)生檢查點并關(guān)閉數(shù)據(jù)文件NOYESYESYES北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.24.2.2 ORACLEORACLE數(shù)據(jù)庫實例創(chuàng)建數(shù)據(jù)庫實例創(chuàng)建 關(guān)閉數(shù)據(jù)庫的方式中可以看出, 對
51、于NORMAL、 IMMEDIATE、 TRANSACTIONAL的關(guān)閉數(shù)據(jù)庫方式,下次啟動數(shù)據(jù)庫時不需做例程恢復(fù); 對于ABORT的關(guān)閉方式,下次啟動要做例程恢復(fù)。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.3 4.2.3 ORACLEORACLE數(shù)據(jù)庫監(jiān)控實例數(shù)據(jù)庫監(jiān)控實例 一般情況下,系統(tǒng)全局區(qū)和后臺進(jìn)程在沒有DBA干預(yù)的情況下運行。然而,有時可能會發(fā)生問題,這時DBA必須能診斷和修復(fù)發(fā)生的問題,即DBA應(yīng)當(dāng)能夠有效地監(jiān)控和管理實例。以下介紹的三種方法三種方法可以監(jiān)控和追蹤實例及其相關(guān)的結(jié)構(gòu)可以監(jiān)控和追蹤實例及其相關(guān)的結(jié)構(gòu)。使用診斷追蹤文件管理實例通過
52、操作系統(tǒng)追蹤管理實例使用V$表監(jiān)控實例結(jié)構(gòu)北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.3 4.2.3 ORACLEORACLE數(shù)據(jù)庫監(jiān)控實例數(shù)據(jù)庫監(jiān)控實例使用診斷追蹤文件管理實例 診斷追蹤文件中包含有實例運行過程中的事件發(fā)生信息,充分利用它可以發(fā)現(xiàn)和解決許多問題。診斷追蹤文件有三類:警告文件(alertSID.log)、后臺進(jìn)程跟蹤文件、用戶跟蹤文件。 查找關(guān)于實例的問題最好的地方是在進(jìn)程自己的追蹤文件中。根據(jù)特定的進(jìn)程和所遇到的錯誤,這些追蹤文件被寫在由參數(shù)USER_DUMP_DEST或者BACKGROUND_DUMP_DEST所指定的位置。北京郵電大學(xué)軟
53、件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.3 4.2.3 ORACLEORACLE數(shù)據(jù)庫監(jiān)控實例數(shù)據(jù)庫監(jiān)控實例使用診斷追蹤文件管理實例 后臺進(jìn)程失敗經(jīng)常在數(shù)據(jù)庫的alert.log文件中寫入一項,或者寫到它們各自的追蹤文件,當(dāng)一個后臺進(jìn)程被終止或者非正常中斷一個操作時,通常產(chǎn)生一個追蹤文件,包含導(dǎo)致失敗的錯誤信息、當(dāng)前進(jìn)程堆棧的轉(zhuǎn)儲、當(dāng)前執(zhí)行的游標(biāo)和與問題有關(guān)的其他信息。 DBA應(yīng)當(dāng)收集這些追蹤文件,將它們提供給Oracle全球范圍客戶支持顧問,他們會幫助你診斷問題。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.3 4.2.3 ORAC
54、LEORACLE數(shù)據(jù)庫監(jiān)控實例數(shù)據(jù)庫監(jiān)控實例通過操作系統(tǒng)追蹤管理實例 后臺進(jìn)程也能通過使用操作系統(tǒng)命令進(jìn)行追蹤。在UNIX環(huán)境中,每一個后臺進(jìn)程是一個分立的任務(wù),可以分立追蹤。通過查看操作系統(tǒng)進(jìn)程的內(nèi)存和CPU的使用(通過使用sar、ps、vmstat和top等工具)指明性能問題和失控的查詢。有時解決掛起、中斷服務(wù)器進(jìn)程或用戶進(jìn)程的唯一方法是在操作系統(tǒng)級中斷它們。但只能對有十足經(jīng)驗的用戶使用。 北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.3 4.2.3 ORACLEORACLE數(shù)據(jù)庫監(jiān)控實例數(shù)據(jù)庫監(jiān)控實例通過操作系統(tǒng)追蹤管理實例 在NT服務(wù)器環(huán)境中,全部的O
55、racle實例在NT操作系統(tǒng)作為一個稱為服務(wù)的后臺進(jìn)程實現(xiàn)。各個后臺進(jìn)程作為屬于這個服務(wù)的線程實現(xiàn)。使用與NT OS的Performance Monitor工具進(jìn)行監(jiān)控,它監(jiān)控許多事情,包括屬于這個服務(wù)的線程的內(nèi)存的消耗和環(huán)境的切換。詳細(xì)情況可查看有關(guān)使用手冊。北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2003.06.054.2.3 4.2.3 ORACLEORACLE數(shù)據(jù)庫監(jiān)控實例數(shù)據(jù)庫監(jiān)控實例使用V$表監(jiān)控實例結(jié)構(gòu) DBA可以使用許多動態(tài)性能視圖顯示實例的信息。這些視圖對發(fā)現(xiàn)當(dāng)前數(shù)據(jù)庫實例的狀態(tài)和與實例相關(guān)的故障問題有很大的價值。1.監(jiān)控數(shù)據(jù)庫的連接 所有連接到實例的用戶和后臺進(jìn)程都能夠使用V$視圖被監(jiān)控。 北京郵電大學(xué)軟件學(xué)院 郭文明 2003.06郭文明 2
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年煉鋼閥門項目可行性研究報告
- 汽車離合器檢測設(shè)備項目可行性研究報告評審方案設(shè)計2025年標(biāo)準(zhǔn)
- 2024-2025年中國3D網(wǎng)上購物行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y戰(zhàn)略咨詢報告
- 中國皮革面層涂飾劑項目投資可行性研究報告
- 2025年君子魚項目投資可行性研究分析報告
- 住宅分銷合同范本
- 中國河南省寫字樓租售行業(yè)發(fā)展運行現(xiàn)狀及投資戰(zhàn)略規(guī)劃報告
- 中國熱熔膠纖維狀涂膠槍項目投資可行性研究報告
- 中國音頻節(jié)目播控設(shè)備行業(yè)發(fā)展運行現(xiàn)狀及投資潛力預(yù)測報告
- 中國激光氣體分析儀行業(yè)發(fā)展監(jiān)測及市場發(fā)展?jié)摿︻A(yù)測報告
- 自動駕駛數(shù)據(jù)安全白皮書
- 工期定額-民用建筑
- 黃土地質(zhì)災(zāi)害類型及其危害性評估
- 交際德語教程第二版A1Studio[21] 課后習(xí)題參考答案
- 最新修改 班組安全管理建設(shè)--5831模式通用課件
- 氣割、電氣焊作業(yè)的應(yīng)急救援預(yù)案
- 2018年柴油機(jī)大修工程量單
- 超級精美PPT模版美國經(jīng)典ppt模板(通用珍藏版2)
- 中醫(yī)內(nèi)科方歌-八
- 氣動控制閥的定義分類及工作原理詳解
- 梯形練字格A4紙打印版
評論
0/150
提交評論