官术网_书友最值得收藏!

2.1 Oracle數(shù)據(jù)庫基本概念

Oracle是一種關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。關(guān)系數(shù)據(jù)庫是按照二維表結(jié)構(gòu)方式組織的數(shù)據(jù)集合,每個表體現(xiàn)了集合理論中定義的數(shù)學(xué)概念——關(guān)系。在創(chuàng)建數(shù)據(jù)庫之前,理解Oracle數(shù)據(jù)庫的基本概念很重要。

Oracle數(shù)據(jù)庫(Database)是一個數(shù)據(jù)容器,它包含了表、索引、視圖、過程、函數(shù)、包等對象,并對其進(jìn)行統(tǒng)一的管理。用戶只有和一個確定的數(shù)據(jù)庫連接,才能使用和管理該數(shù)據(jù)庫中的數(shù)據(jù)。

下面將分別從數(shù)據(jù)庫的內(nèi)部結(jié)構(gòu)與外部結(jié)構(gòu)兩個角度來探討數(shù)據(jù)庫。簡單地說,內(nèi)部結(jié)構(gòu)描述了Oracle數(shù)據(jù)庫的內(nèi)部存儲結(jié)構(gòu),即從技術(shù)概念上描述如何組織、管理數(shù)據(jù)。內(nèi)部結(jié)構(gòu)包括表空間、表、列、分區(qū)、用戶、索引、視圖、權(quán)限、角色、段、盤區(qū)、塊等。而外部結(jié)構(gòu)則是從“操作系統(tǒng)”角度來看,Oracle 11g數(shù)據(jù)庫的實(shí)體構(gòu)成項(xiàng)目,包括數(shù)據(jù)文件、重做日志文件和控制文件等。

2.1.1 內(nèi)部結(jié)構(gòu)

1.表空間(TABLESPACE)

表空間是數(shù)據(jù)庫的邏輯劃分,一個表空間只屬于一個數(shù)據(jù)庫。每個表空間由一個或多個數(shù)據(jù)文件組成,表空間中其他邏輯結(jié)構(gòu)的數(shù)據(jù)存儲在這些數(shù)據(jù)文件中。一般Oracle系統(tǒng)完成安裝后,會自動建立多個表空間。以下介紹Oracle 11g默認(rèn)創(chuàng)建的主要表空間。

(1)EXAMPLE表空間。EXAMPLE表空間是示例表空間,用于存放示例數(shù)據(jù)庫的方案對象信息及其培訓(xùn)資料。

(2)SYSTEM表空間。SYSTEM表空間是系統(tǒng)表空間,用于存放Oracle系統(tǒng)內(nèi)部表和數(shù)據(jù)字典的數(shù)據(jù),如表名、列名和用戶名等。一般不贊成將用戶創(chuàng)建的表、索引等存放在SYSTEM表空間中。

(3)SYSAUX表空間。SYSAUX表空間是輔助系統(tǒng)表空間,主要存放Oracle系統(tǒng)內(nèi)部的常用樣例用戶的對象,如存放CMR用戶的表和索引等,從而減少系統(tǒng)表空間的負(fù)荷。SYSAUX表空間一般不存儲用戶的數(shù)據(jù),由Oracle系統(tǒng)內(nèi)部自動維護(hù)。

(4)TEMP表空間。TEMP表空間是臨時表空間,存放臨時表和臨時數(shù)據(jù),用于排序和匯總等。

(5)UNDOTBS1表空間。UNDOTBSI表空間是重做表空間,存放數(shù)據(jù)庫中有關(guān)重做的相關(guān)信息和數(shù)據(jù)。當(dāng)用戶對數(shù)據(jù)庫表進(jìn)行修改(包括INSERT、UPDATE和DELETE操作)時,Oracle系統(tǒng)自動使用重做表空間來臨時存放修改前的數(shù)據(jù)。當(dāng)所作的修改完成并提交后,系統(tǒng)根據(jù)需要保留修改前數(shù)據(jù)的時間長短來釋放重做表空間的部分空間。

(6)USERS表空間。USERS表空間是用戶表空間,存放永久性用戶對象的數(shù)據(jù)和私有信息,因此也被稱為數(shù)據(jù)表空間。每個數(shù)據(jù)庫都應(yīng)該有一個用戶表空間,以便在創(chuàng)建用戶時將其分配給用戶。

除了Oracle系統(tǒng)默認(rèn)創(chuàng)建的表空間以外,用戶可以根據(jù)應(yīng)用系統(tǒng)的規(guī)模及其所要存放對象的情況創(chuàng)建多個表空間,以區(qū)分用戶數(shù)據(jù)和系統(tǒng)數(shù)據(jù)。

2.表(TABLE)

表是數(shù)據(jù)庫中存放用戶數(shù)據(jù)的對象。它包含一組固定的列。表中的列描述該表所跟蹤的實(shí)體的屬性,每個列都有一個名字和若干個屬性。表結(jié)構(gòu)的一個樣例如圖2.1所示。

圖2.1 表結(jié)構(gòu)樣例

3.約束條件(CONSTRAINT)

可以為一個表列創(chuàng)建約束條件。此時,表中的每一行都必須滿足約束條件定義所規(guī)定的條件。約束條件有以下5種。

(1)主鍵(PRIMARY KEY)。主鍵是表中的一列或多個列。為表定義主鍵有如下幾個作用:主鍵包含的列不能輸入重復(fù)的值,以此來保證一個表的所有行的唯一性;主鍵也不允許定義此約束的列為NULL值;主鍵在定義此約束的列中創(chuàng)建了唯一性的索引,利用這個索引可更快地檢索表中的行。

(2)默認(rèn)(DEFAULT)約束條件。在表中插入一行數(shù)據(jù)但沒有為列指定值時生成一個在定義表時預(yù)先指定的值。

(3)檢查(CHECK)約束條件。檢查約束條件確保指定列中的值符合一定的條件。CHECK列約束條件不能引用一個獨(dú)立表。非空值約束條件被數(shù)據(jù)庫看做一個CHECK約束條件。

(4)唯一性(UNIQUE)約束條件。唯一性約束條件用于保證應(yīng)具有唯一性而又不是主鍵的一部分的那些列的唯一性。

(5)外鍵(FOREIGN KEY)約束條件。外鍵約束條件規(guī)定表間的關(guān)系性質(zhì)。一個外鍵使一個表的一列或多列與已定義為主鍵的表中的一批相同的列相關(guān)聯(lián)。當(dāng)在已定義主鍵約束的表中更新列值時,其他表中定義有外鍵約束的列會被自動更新。

主鍵約束和外鍵約束保證關(guān)聯(lián)表的相應(yīng)行持續(xù)匹配,以至于它們可以用在后面的關(guān)系連接中。在它們被定義為主鍵約束和外鍵約束后,不同表的相應(yīng)列會自動更新,稱為引用完整性聲明。

數(shù)據(jù)庫的約束條件有助于確保數(shù)據(jù)的引用完整性。引用完整性保證數(shù)據(jù)庫中的所有列引用都有效且全部約束條件都得到滿足。

4.分區(qū)(PARTITION)

在非常大的數(shù)據(jù)庫中,可以通過把一個大表的數(shù)據(jù)分成多個小表來簡化數(shù)據(jù)庫的管理,這些小表稱做分區(qū)。除了對表分區(qū)外,還可以對索引進(jìn)行分區(qū)。分區(qū)不僅簡化了數(shù)據(jù)庫的管理還改善了其應(yīng)用性能。在Oracle中,能夠細(xì)分分區(qū),創(chuàng)建子分區(qū)。例如,可以根據(jù)一組值分割一個表,然后再根據(jù)另一種分割方法分割分區(qū)。

5.索引(INDEX)

在關(guān)系數(shù)據(jù)庫表中,一個行數(shù)據(jù)的物理位置無關(guān)緊要。為了能夠找到數(shù)據(jù),表中的每一行都用一個RowID來標(biāo)識。RowID告訴數(shù)據(jù)庫這一行的準(zhǔn)確位置,包括所在的文件、該文件中的塊和該塊中行地址。

索引是幫助用戶在表中快速地找到記錄的數(shù)據(jù)庫結(jié)構(gòu)。它既可以提高數(shù)據(jù)庫性能,又能夠保證列值的唯一性。當(dāng)CREATE TABLE命令中規(guī)定有UNIQUE或PRIMARY KEY約束條件子句時,Oracle就會自動創(chuàng)建一個索引。也可以通過CREATE INDEX命令來手工創(chuàng)建自己的索引。

6.用戶(USER)

用戶賬號雖然不是數(shù)據(jù)庫中的一個物理結(jié)構(gòu),但它與數(shù)據(jù)庫中的對象有著重要的關(guān)系,這是因?yàn)橛脩魮碛袛?shù)據(jù)庫的對象。例如,用戶SYS擁有數(shù)據(jù)字典表,這些表中存儲了數(shù)據(jù)庫中其他對象的所有信息;用戶SYSTEM擁有訪問數(shù)據(jù)字典表的視圖,這些視圖供數(shù)據(jù)庫其他用戶使用。

為數(shù)據(jù)庫創(chuàng)建對象(例如表)必須在用戶賬號下進(jìn)行。可以對每一個用戶賬號進(jìn)行自定義,以便將一個特定的表空間作為它的默認(rèn)表空間。

把操作系統(tǒng)的賬號和數(shù)據(jù)庫賬號聯(lián)系在一起,這樣可以不必既輸入操作系統(tǒng)口令,又輸入數(shù)據(jù)庫的口令。

7.方案(SCHEMA)

用戶賬號擁有的對象集稱為用戶的方案(SCHEMA),可以創(chuàng)建不能注冊到數(shù)據(jù)庫的用戶賬號。這樣的用戶賬號提供一種方案,這種方案可以用來保存一組其他用戶方案分開的數(shù)據(jù)庫對象。

8.同義詞

為了給不同的用戶使用數(shù)據(jù)庫對象時提供一個簡單的、唯一標(biāo)識數(shù)據(jù)庫對象的名稱,可以為數(shù)據(jù)庫對象創(chuàng)建同義詞。同義詞有公用同義詞和私有同義詞兩種。

9.權(quán)限及角色(ROLE)

為了訪問其他賬號所有的對象,必須首先被授予訪問這個對象的權(quán)限。權(quán)限可以授予某個用戶或PUBLIC,PUBLIC把權(quán)限授予數(shù)據(jù)庫中的全體用戶。

可以創(chuàng)建角色即權(quán)限組來簡化權(quán)限的管理。可以把一些權(quán)限授予一個角色,而這個角色又可以被授予多個用戶。在應(yīng)用程序中角色可以被動態(tài)地啟用或禁用。

10.段(SEGMENT)、盤區(qū)(EXTENT)和數(shù)據(jù)塊(DATA BLOCK)

依照不同的數(shù)據(jù)處理性質(zhì),可能需要在數(shù)據(jù)表空間內(nèi)劃分出不同區(qū)域,以存放不同數(shù)據(jù),將這些區(qū)域稱之為“段”(SEGMENT)。例如,存放數(shù)據(jù)的區(qū)域稱為“數(shù)據(jù)區(qū)段”、存放索引的區(qū)域稱為“索引區(qū)段”。

由于段是一個物理實(shí)體,所以必須把它分配到數(shù)據(jù)庫中的一個表空間中(放在表空間的一個數(shù)據(jù)文件中)。而段其實(shí)就是由許多盤區(qū)組合而成的。當(dāng)段中的空間用完時,該段就獲取另外的盤區(qū)。

數(shù)據(jù)塊是最小的儲存單元,Oracle數(shù)據(jù)庫是操作系統(tǒng)塊的倍數(shù)。圖2.2說明了段、盤區(qū)和數(shù)據(jù)塊之間的關(guān)系。

圖2.2 段、盤區(qū)和數(shù)據(jù)塊之間的關(guān)系

2.1.2 外部結(jié)構(gòu)

1.數(shù)據(jù)文件(DATAFILE)

每一個Oracle數(shù)據(jù)庫都有一個或多個數(shù)據(jù)文件,而一個數(shù)據(jù)文件只能屬于一個表空間。數(shù)據(jù)文件創(chuàng)建后可改變大小,創(chuàng)建新的表空間需要創(chuàng)建新的數(shù)據(jù)文件。數(shù)據(jù)文件一旦加入到表空間,就不能從這個表空間中移走,也不能和其他表空間發(fā)生聯(lián)系。

如果數(shù)據(jù)庫對象存儲在多個表空間中,可以通過把它們各自的數(shù)據(jù)文件存放在不同的磁盤上來對其進(jìn)行物理分割。數(shù)據(jù)庫、表空間和數(shù)據(jù)文件之間的關(guān)系如圖2.3所示。

圖2.3 數(shù)據(jù)庫、表空間和數(shù)據(jù)文件之間的關(guān)系

2.重做日志文件(REDO LOG FILES)

除了數(shù)據(jù)文件外,最重要的Oracle數(shù)據(jù)庫實(shí)體檔案就是重做日志文件(Redo Log Files)。Oracle保存所有數(shù)據(jù)庫事務(wù)的日志。這些事務(wù)被記錄在聯(lián)機(jī)重做日志文件(Online Redo Log File)中。當(dāng)數(shù)據(jù)庫中的數(shù)據(jù)遭到破壞時,可以用這些日志來恢復(fù)數(shù)據(jù)庫。

一個數(shù)據(jù)庫至少需要兩個重做日志文件。Oracle以循環(huán)方式向重做日志文件寫入。第一個日志被填滿后,就向第二個日志文件寫入,然后依次類推。當(dāng)所有日志文件都被寫滿時,就又回到第一個日志文件,用新事務(wù)的數(shù)據(jù)對其進(jìn)行重寫。

3.控制文件(CONTROL FILES)

每個Oracle數(shù)據(jù)庫都有一個控制文件,用以記錄與描述數(shù)據(jù)庫的外部結(jié)構(gòu)。它們包括:

(1)Oracle數(shù)據(jù)庫名稱與建立時間;

(2)數(shù)據(jù)文件與重置日志文件名稱及其所在位置;

(3)日志記錄序列碼(log sequence number)。

每當(dāng)數(shù)據(jù)庫被激活時,Oracle會在實(shí)例激活后立刻讀取控制文件內(nèi)容,待所有數(shù)據(jù)庫外部結(jié)構(gòu)文件所在信息都收集完畢,數(shù)據(jù)庫才會啟動。為了避免控制文件毀損導(dǎo)致數(shù)據(jù)庫系統(tǒng)停止,建議用戶至少配置兩個控制文件,并存放在不同的硬盤上。

2.1.3 實(shí)例

數(shù)據(jù)庫實(shí)例(instance)也稱作服務(wù)器(server),是指用來訪問數(shù)據(jù)庫文件集的存儲結(jié)構(gòu)(系統(tǒng)全局區(qū),System Global Area,簡稱SGA)及后臺進(jìn)程的集合。一個數(shù)據(jù)庫可以被多個實(shí)例訪問,這是Oracle的并行服務(wù)器選項(xiàng)。實(shí)例與數(shù)據(jù)庫之間的關(guān)系如圖2.4所示。

圖2.4 實(shí)例與數(shù)據(jù)庫之間的關(guān)系

每當(dāng)啟動數(shù)據(jù)庫時,系統(tǒng)全局區(qū)首先被分配,并且有一個或多個Oracle進(jìn)程被啟動。一個實(shí)例的SGA和進(jìn)程為管理數(shù)據(jù)庫數(shù)據(jù)和為該數(shù)據(jù)庫一個或多個用戶服務(wù)而工作。在Oracle系統(tǒng)中,首先啟動實(shí)例,然后由實(shí)例裝配數(shù)據(jù)庫。

1.系統(tǒng)全局區(qū)

當(dāng)激活Oracle數(shù)據(jù)庫時,系統(tǒng)會先在內(nèi)存內(nèi)規(guī)劃一個固定區(qū)域,用來存儲每位使用者所需存取的數(shù)據(jù)以及Oracle運(yùn)作時必備的系統(tǒng)信息。這個區(qū)域就稱為系統(tǒng)全局區(qū)(SGA)。

SGA又包含數(shù)個重要區(qū)域,分別是數(shù)據(jù)塊緩存區(qū)(Data Block Buffer Cache)、字典緩存區(qū)(Dictionary Cache)、重做日志緩沖區(qū)(Redo Log Buffer)和共享池(Shared SQL Pool)。圖2.5給出了SGA各重要區(qū)域之間的關(guān)系。

圖2.5 SGA各重要區(qū)域之間的關(guān)系

(1)數(shù)據(jù)塊緩存區(qū)。數(shù)據(jù)塊緩存區(qū)為SGA的主要成員,用來存放讀取自數(shù)據(jù)文件的數(shù)據(jù)塊復(fù)本,或是使用者曾經(jīng)處理過的數(shù)據(jù)。其用途在于有效減少存取數(shù)據(jù)時造成的磁盤讀/寫動作,進(jìn)而提升數(shù)據(jù)存取的效率。數(shù)據(jù)塊緩存區(qū)的大小由初始化參數(shù)DB_BLOCK_BUFFERS決定。數(shù)據(jù)塊緩存區(qū)的大小是固定的,它不可能一次裝載所有的數(shù)據(jù)庫的內(nèi)容。通常,數(shù)據(jù)塊緩存區(qū)大小只有數(shù)據(jù)庫大小的1%~2%,Oracle使用最近最少使用算法(LRU)來管理可用空間。當(dāng)存儲區(qū)需要自由空間時,最近最少使用的塊將被移出,釋放的存儲區(qū)空間被新調(diào)入的數(shù)據(jù)塊占用。這種算法能夠讓最頻繁使用的數(shù)據(jù)保留在存儲區(qū)中。

(2)字典緩存區(qū)。數(shù)據(jù)庫對象的信息存儲在數(shù)據(jù)字典中,這些信息包括用戶賬號、數(shù)據(jù)文件名、盤區(qū)位置、表說明和權(quán)限等。當(dāng)數(shù)據(jù)庫需要這些信息時,如要驗(yàn)證用戶賬號時,就要讀取數(shù)據(jù)字典,從中獲得需要的信息數(shù)據(jù),并且將這些數(shù)據(jù)存儲在SGA的字典緩存區(qū)中。

數(shù)據(jù)字典緩存區(qū)也是通過LRU算法來管理的。字典緩存區(qū)的大小由數(shù)據(jù)庫內(nèi)部管理。字典緩存區(qū)是SQL共享池的一部分,共享池的大小由SHARED_POOL_SIZE參數(shù)設(shè)置。

字典緩存區(qū)的大小會影響到數(shù)據(jù)庫查詢的速度。如果字典緩存區(qū)太小,數(shù)據(jù)庫就不得不重復(fù)訪問數(shù)據(jù)字典以獲得數(shù)據(jù)庫所需的信息,查詢速度會大幅降低。

(3)重做日志緩沖區(qū)。前面已介紹過,聯(lián)機(jī)重做日志文件用于記錄數(shù)據(jù)庫的更改,以便在數(shù)據(jù)庫恢復(fù)過程中用于向前滾動。但這些修改并不是馬上寫入日志文件中的,在被寫入聯(lián)機(jī)重做日志文件中之前,事務(wù)首先被記錄在稱做重做日志緩沖區(qū)的SGA中。數(shù)據(jù)庫可以周期性地分批向聯(lián)機(jī)重做日志文件中寫入修改的內(nèi)容,從而優(yōu)化這個操作。

(4)SQL共享池。SQL共享池存儲數(shù)據(jù)字典緩存區(qū)及庫緩存區(qū)(Library Cache),即對數(shù)據(jù)庫進(jìn)行操作的語句信息。當(dāng)使用者將SQL指令送至Oracle數(shù)據(jù)庫后,系統(tǒng)將會先解析語法是否正確。解析時所需要的系統(tǒng)信息,以及解析后的結(jié)果將放置在共享區(qū)內(nèi)。如果不同的使用者執(zhí)行了相同的SQL指令,就可以共享已解析的結(jié)果,加速SQL指令的執(zhí)行速度。SQL共享池的大小由參數(shù)SHARED_POOL_SIZE決定。

2.后臺進(jìn)程

數(shù)據(jù)庫的物理結(jié)構(gòu)和存儲結(jié)構(gòu)之間的關(guān)系是由后臺進(jìn)程來維持的。數(shù)據(jù)庫擁有多個后臺進(jìn)程,其數(shù)量取決于數(shù)據(jù)庫的配置。這些進(jìn)程由數(shù)據(jù)庫管理,它們只需要進(jìn)行很少的管理。每個進(jìn)程在數(shù)據(jù)庫中執(zhí)行不同的任務(wù)。圖2.6顯示了后臺進(jìn)程在數(shù)據(jù)庫外部結(jié)構(gòu)、SGA中作用和地位。下面介紹幾個常用的后臺進(jìn)程。

圖2.6 后臺進(jìn)程在數(shù)據(jù)庫外部結(jié)構(gòu)、SGA中的作用和地位

(1)DBWR(數(shù)據(jù)庫寫入進(jìn)程)。負(fù)責(zé)將數(shù)據(jù)塊緩存區(qū)內(nèi)變動過的數(shù)據(jù)塊回寫至硬盤內(nèi)的數(shù)據(jù)文件。Oracle系統(tǒng)預(yù)設(shè)激活一個DBWR處理程序,但在大型數(shù)據(jù)庫系統(tǒng)下,數(shù)據(jù)庫變動情況可能十分頻繁,可依實(shí)際需求額外配置其他的DBWR。

(2)LGWR(日志寫入進(jìn)程)。負(fù)責(zé)將重做日志緩沖區(qū)內(nèi)的數(shù)據(jù)變動記錄循序?qū)懭胫刈鋈罩疚募V刈鋈罩揪彌_區(qū)條目總是包含著數(shù)據(jù)庫的最新狀態(tài),因?yàn)镈BWR進(jìn)程可以一直等待到數(shù)據(jù)塊緩沖區(qū)中的修改數(shù)據(jù)塊寫入到數(shù)據(jù)文件中。

(3)SMON(系統(tǒng)監(jiān)控進(jìn)程)。如果因?yàn)橥k娀蚱渌蛩貙?dǎo)致Oracle數(shù)據(jù)庫不正常關(guān)閉,下一次激活數(shù)據(jù)庫時將由SMON進(jìn)行必要的數(shù)據(jù)庫修復(fù)動作。

(4)PMON(進(jìn)程監(jiān)控進(jìn)程)。當(dāng)某個處理程序異常終止時,PMON清除數(shù)據(jù)塊緩存區(qū)內(nèi)不再使用的空間,并釋放該程序之前使用的系統(tǒng)資源。PMON也會定期檢查各服務(wù)器處理程序以及分配器的狀態(tài),如果某個處理程序因故停擺,也是由PMON負(fù)責(zé)將它重新激活。

(5)CKPT(檢查點(diǎn)進(jìn)程)。檢查點(diǎn)是指一個事件或指定的時間。在適當(dāng)時候產(chǎn)生一個檢查點(diǎn)時,CKPT確保緩沖區(qū)內(nèi)經(jīng)常變動的數(shù)據(jù)定期被寫入數(shù)據(jù)文件。在檢查點(diǎn)之后,因?yàn)樗懈逻^的數(shù)據(jù)已經(jīng)回寫至磁盤數(shù)據(jù)文件,萬一需要進(jìn)行實(shí)例恢復(fù)時,就不再需要檢查點(diǎn)之前的重置記錄,這樣,可縮短數(shù)據(jù)庫重新激活的時間。檢查點(diǎn)發(fā)生后,CKPT會先通知DBWR將數(shù)據(jù)塊緩存區(qū)的改動數(shù)據(jù)回寫到數(shù)據(jù)文件,然后更新數(shù)據(jù)文件與控制文件的檢查點(diǎn)信息。

(6)RECO(恢復(fù)進(jìn)程)。該進(jìn)程是在具有分布式選項(xiàng)時所使用的一個進(jìn)程,用于自動解決在分布式事務(wù)中的故障。在Oracle 11g分布式數(shù)據(jù)庫環(huán)境中,RECO進(jìn)程會自動處理分布式操作失敗時產(chǎn)生的問題。所謂分布式操作,簡單地說,就是針對多個數(shù)據(jù)庫同時進(jìn)行數(shù)據(jù)處理動作。

(7)ARCH(歸檔進(jìn)程)。LGWR后臺進(jìn)程以循環(huán)方式向重做日志文件寫入。當(dāng)Oracle以ARCHIVELOG模式運(yùn)行時,數(shù)據(jù)庫在開始重寫重做日志文件之前先對其進(jìn)行備份。可以將這些歸檔文件寫入磁盤設(shè)備或直接寫入磁帶設(shè)備。這些歸檔功能由ARCH后臺完成。

(8)LCKn(鎖進(jìn)程)。在Oracle并行服務(wù)器環(huán)境中,為了避免進(jìn)程間在數(shù)據(jù)存取時發(fā)生沖突,在一個數(shù)據(jù)庫實(shí)例訪問一個數(shù)據(jù)庫對象時,LCKn進(jìn)程自動封鎖它所訪問的數(shù)據(jù)庫對象,訪問結(jié)束之后再解鎖。

(9)Dnnn(調(diào)度進(jìn)程)。調(diào)度進(jìn)程允許用戶共享有限的服務(wù)器進(jìn)程,該進(jìn)程接收用戶進(jìn)程的要求,并將它們放入請求隊(duì)列中,然后為請求隊(duì)列中的用戶進(jìn)程分配一個共享的服務(wù)器進(jìn)程。一個數(shù)據(jù)庫實(shí)例可以建立多個調(diào)度進(jìn)程。

除了以上幾個重要的后臺進(jìn)程之外,Oracle 11g數(shù)據(jù)庫運(yùn)作時還有其他的后臺進(jìn)程互相配合運(yùn)作。

主站蜘蛛池模板: 岳阳市| 元谋县| 常山县| 平原县| 枣阳市| 宁南县| 巴彦淖尔市| 福海县| 冕宁县| 灌阳县| 福州市| 永和县| 攀枝花市| 舞阳县| 通河县| 灵丘县| 喀喇| 阳山县| 禹州市| 交口县| 梓潼县| 克东县| 浦县| 怀安县| 三穗县| 大宁县| 大理市| 文昌市| 兴化市| 饶平县| 剑川县| 融水| 揭西县| 阿图什市| 威远县| 新余市| 远安县| 沙洋县| 扎囊县| 山西省| 连江县|