- 精通Oracle 12c 數(shù)據(jù)庫(kù)管理
- 王榮鑫
- 636字
- 2019-07-30 18:03:58
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)。
- UI圖標(biāo)創(chuàng)意設(shè)計(jì)
- LabVIEW 2018 虛擬儀器程序設(shè)計(jì)
- Learning Selenium Testing Tools with Python
- 三維圖形化C++趣味編程
- Instant QlikView 11 Application Development
- Amazon S3 Cookbook
- AutoCAD VBA參數(shù)化繪圖程序開發(fā)與實(shí)戰(zhàn)編碼
- jQuery開發(fā)基礎(chǔ)教程
- 移動(dòng)界面(Web/App)Photoshop UI設(shè)計(jì)十全大補(bǔ)
- BIM概論及Revit精講
- C語言程序設(shè)計(jì)
- Nginx Lua開發(fā)實(shí)戰(zhàn)
- Mastering ArcGIS Enterprise Administration
- “笨辦法”學(xué)C語言
- Django 3.0應(yīng)用開發(fā)詳解