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

3.2 Oracle數(shù)據(jù)庫(kù)的連接

連接和會(huì)話都與用戶進(jìn)程密切相關(guān),但意義卻大不相同。

連接是用戶進(jìn)程和Oracle DB實(shí)例之間的通信路徑。通信路徑是使用可用的進(jìn)程間通信機(jī)制(在一臺(tái)同時(shí)運(yùn)行用戶進(jìn)程和Oracle DB的計(jì)算機(jī)上)或網(wǎng)絡(luò)軟件(多臺(tái)不同的計(jì)算機(jī)運(yùn)行數(shù)據(jù)庫(kù)應(yīng)用程序和Oracle DB并通過網(wǎng)絡(luò)進(jìn)行通信時(shí))建立的,如圖3-2所示。

會(huì)話代表登錄到數(shù)據(jù)庫(kù)實(shí)例的當(dāng)前用戶的狀態(tài)。例如,當(dāng)某個(gè)用戶啟動(dòng)SQL*Plus時(shí),該用戶必須提供有效的用戶名和口令,然后系統(tǒng)會(huì)為該用戶建立一個(gè)會(huì)話。會(huì)話從用戶建立連接時(shí)開始,一直持續(xù)到用戶斷開連接或退出數(shù)據(jù)庫(kù)應(yīng)用程序時(shí)為止。

圖3-2 用戶進(jìn)程連接示意圖

一個(gè)Oracle DB用戶可以使用相同用戶名創(chuàng)建多個(gè)會(huì)話,并讓這些會(huì)話并存。例如,用戶名/口令為HR/HR的用戶可以多次連接到同一個(gè)Oracle DB實(shí)例。用戶進(jìn)程可以是一般的客戶端軟件,像Oracle的sqlplus、sql developer,或者是一些驅(qū)動(dòng)程序等都屬于用戶進(jìn)程。

服務(wù)器進(jìn)程有時(shí)會(huì)稱為前臺(tái)進(jìn)程,當(dāng)然是相對(duì)于后臺(tái)進(jìn)程(后面會(huì)提到數(shù)據(jù)庫(kù)寫入器、日志寫入器等)來說的,服務(wù)器進(jìn)程的主要作用就是處理連接到當(dāng)前實(shí)例的用戶進(jìn)程的請(qǐng)求,對(duì)客戶端發(fā)來的sql進(jìn)行執(zhí)行并返回執(zhí)行結(jié)果。在專有服務(wù)器結(jié)構(gòu)中,用戶進(jìn)程和服務(wù)器進(jìn)程是一對(duì)一的,也就是說,當(dāng)監(jiān)聽程序監(jiān)聽到客戶端來了一個(gè)請(qǐng)求,會(huì)為其分配一個(gè)對(duì)應(yīng)的服務(wù)器進(jìn)程。還有一種結(jié)構(gòu)為共享服務(wù)器,這種結(jié)構(gòu)就不是一個(gè)用戶進(jìn)程對(duì)應(yīng)一個(gè)服務(wù)器進(jìn)程了,會(huì)通過調(diào)度程序進(jìn)行協(xié)調(diào)處理,關(guān)于共享服務(wù)器連接,本文就不再贅述了。

上面描述了一些在進(jìn)行數(shù)據(jù)庫(kù)連接操作時(shí)大致的交互流程是什么樣的。下面就來看看Oracle的實(shí)例內(nèi)存結(jié)構(gòu)。

主站蜘蛛池模板: 库伦旗| 沧州市| 韩城市| 锦州市| 云和县| 岑溪市| 吴旗县| 榆中县| 千阳县| 蕉岭县| 扎囊县| 平罗县| 洱源县| 绵阳市| 凤翔县| 宜宾县| 汶上县| 西丰县| 孝义市| 拜城县| 上高县| 苍南县| 香港| 龙海市| 雷州市| 阜平县| 建湖县| 金门县| 白河县| 新巴尔虎右旗| 丰台区| 中江县| 迭部县| 通化县| 湖口县| 红安县| 清涧县| 阿合奇县| 镇江市| 班戈县| 巨鹿县|