oracle進程結構中完成更新,Oracle 進程結構

Oracle進程結構

進程是動態創建的,完成任務后就消亡;而程序是靜態的實體,程序是可以復制、編輯的。進程強調的是執行過程,而程序僅僅是指令的有序集合;進程在內存中,程序在外存中。

ORACLE分為用戶進程和ORACLE進程。

l用戶進程

當用戶執行一個基于ORACLE數據庫的應用程序時,客戶端就會創建一個ORACLE的用戶進程(如運行的sqlplus、OEM都叫用戶進程)。

用戶進程通過連接登錄到ORACLE服務器,ORACLE服務器上就產生一個對應的服務器進程(Oracle服務器的“外交部”);該服務器進程代表運行在客戶端的用戶進程與服務器通信。

lORACLE進程

Oracle進程可以分為服務器進程和后臺進程服務器進程。

2服務器進程

主要是服務于客戶端的用戶進程。服務器進程又可以分為:專用服務器進程(只為一個用戶進程提供服務)和共享服務器進程(可以為多個用戶進程提供服務)。

2服務器進程的任務:

A.解析并執行用戶所提交的SQL語句;

B.搜索SGA區的數據庫緩存,決定是否讀取數據文件。如果數據塊不在SGA區的數據庫緩存中,就將其從數據文件中讀入;

C.將查詢執行的結構數據返回給用戶。

2后臺進程(BackgroundProcess)

服務器進程是由后臺進程提供支持的,后臺進程主要完成的任務是:

A.在內存和外存之間進行I/O操作;

B.監視各個進程的狀態;

C.協調各個進程的任務;

D.維護系統的性能;

E.保證系統的可靠性;

可使用以下查詢來檢查數據庫中啟動的后臺進程個數及其名稱

SQL> SELECT * FROM V$BGPROCESS

常用的后臺進程:

nSMON(SystemMonitor)系統監視進程:

ü啟動條件:隨ORACLE數據庫系統啟動;運行期間ORACLE可以喚醒SMON進程,以檢查是否需要執行它所負責的工作;如果其他任何進程需要使用SMON進程的功能時,將隨時喚醒SMON進程。

ü作用:

A、在例程啟動時負責對數據庫進行恢復。如果是非正常關閉數據庫,則當下次啟動例程時,SMON進程會自動讀取重做日志文件,對數據庫進行恢復(即執行將已提交的事務寫入數據文件中、回退未提交的事務等操作);

B、清除已經分配但不再使用的表空間中的臨時段(如果表空間中有大量的盤區,則清除就會花費大量時間,就會影響數據庫啟動時的性能)。

C、合并基于數據字典管理的各個表空間中位置相鄰的空閑盤區,使之更容易分配。

ü備注說明:如果某個表空間的存儲參數PCTINCREASE被設置為0,則SMON進程就不會對該表空間中的空閑盤區進行合并操作。

nPMON(Process Monitor)進程監視進程;

ü啟動條件:

A、需要啟動、清除中斷或失敗的用戶進程時(即對ORACLE數據庫的連接發生崩潰、掛起或其他非正常終止等);清除操作還包括非正常中斷的用戶進程留下的孤兒會話,回退未提交的事務,釋放會話所占用的鎖、SGA區、PGA區的資源。

B、運行期間ORACLE可以喚醒PMON進程,以檢查是否需要執行它所負責的工作;如果其他任何進程需要使用PMON進程的功能時,將隨時喚醒PMON進程。

C、PMON是在單獨的數據庫中啟動的,而分布式數據庫中是RECO恢復進程來完成PMON進程的任務的。

ü作用:

A、恢復中斷或失敗的用戶進程、服務器進程;

B、清除非正常中斷的進程留下的孤兒會話;

C、回退未提交的事務,重置活動事務的狀態,從系統活動進程中刪除用戶進程標識號(ID);

D、釋放進程所占用的各種資源,并通過自動回退事務來解決死鎖,釋放用戶所擁有的表和行上的鎖;

E、定期檢查服務器進程和調度進程,如果它們因失敗而被異常掛起,則自動重新啟動它們。

nDBWn(Database Writer)數據庫寫進程;

ü啟動條件

A、當DIRTY列表中的臟緩存塊達到一定數量(即初始化參數db_block_write_batch指定值的一半),DBWn進程將臟緩存塊寫入數據文件(同時ORACLE將對控制文件和數據文件的頭部的同步序號SCN進行修改,記錄下當前數據庫的結構和狀態,以保證數據庫中物理文件之間的同步);

B、當在LRU列表中找到一定數量(即初始化參數db_block_max_scan指定的值)的空閑緩存塊,但還不夠時,為獲得更多的空閑緩存塊,DBWn進程將臟緩存塊寫入數據文件;

C、當出現檢查點LGWR進程通知DBWn進程進行寫操作;

D、一個表空間被置于備份模式、脫機或只讀狀態時;

E、DBWn進程出現超時(Time_out)即大約3秒未啟動時。

ü作用:

A、管理高速緩沖區,保證服務器進程總能找到空閑緩存塊,以便保存從數據文件中讀取的數據塊;

B、將DIRTY列表中的臟緩存塊寫入到數據文件中,獲取更多的空閑緩存塊;

C、使用LRU算法將最近正在使用的緩存塊即命中塊,繼續保留在LRU列表中,不必重新讀取數據文件;

D、DBRn進程通過延遲寫入來優化磁盤I/O操作,而服務器進程只在數據高速緩存區中做修改。

ü備注說明:

A、DBWn進程數最好不要超過CPU的個數,因為每個處理器同時只能運行1個DBWn進程;

B、ORACLE默認啟動一個DBWn進程,啟動受初始化參數(DB_WRITER_PROCESS)的限制。可以設置初始化參數DB_BLOCK_CHECKPOINT_BATCH來設置每當出現檢查點時,DBWn進程寫入的臟緩存塊的最大數量。增大該值,可以延長啟動DBWn進程的時間間隔。

nLGWR(Log Writer)日志寫進程;

ü啟動條件:

A、用戶進程通過COMMIT語句提交當前事務;

B、重做日志高速緩存被寫滿1/3時,或含有1MB的重做信息時;

C、DBWn進程需要為檢查點清除臟緩存塊,即將臟緩存塊寫入數據文件時;

D、LGWR進程出現超時,即大約3秒為啟動LGWR進程時。

ü作用:

A、負責管理重做日志高速緩沖區,即將重做日志記錄從高速緩存區寫入到重做日志文件;

B、如果例程沒有啟動CKPT檢查點進程,則LGWR進程就來完成檢查點執行任務。

ü備注說明:

A、每個例程只有一個LGWR進程;

B、LGWR進程先于DBWn進程啟動。

nCKPT (CheckPoint)檢查點進程

ü啟動條件:

A、關閉數據庫時;

B、一個重做日志文件被寫滿而產生日志切換時;

C、滿足參數LOG_CHECKPOINT_TIMEOUT(指定檢查點之間的時間間隔(以秒為單位));

D、參數LOG_CHECKPOINT_INTERVAL(指定當一定數量的操作系統數據塊(非ORACLE數據塊)被寫入重做日志文件時,將觸發一個檢查點)

ü作用:

A、觸發DBWn進程,使其將自上一個檢查點之后的全部已經修改的數據塊(臟緩存塊)寫入數據文件中;

B、保持數據庫高速緩沖區與數據文件之間數據同步(用最新的檢查點信息更新控制文件和數據庫文件的文件頭);

C、檢查點信息會在恢復數據庫期間使用,當SMON進程恢復數據庫時,SMON會決定最后在數據文件中的檢查點。(必須將數據文件的文件頭和控制文件中最后記錄的檢查點之后的聯機重做日志文件中的事務編號重新提交到數據文件中。)

ü備注說明:

A、不要設置不必要的檢查點,或迫使不需要的檢查點發生;

B、縮短檢查點執行的間隔,可以縮短數據庫恢復時所需的時間;

C、如果檢查點執行的間隔短,將會產生過多的I/O操作;

D、應該使LOG_CHECKPOINT_INTERVAL設置的操作系統塊數與重做日志文件的大小相匹配。

üORACLE在不同的時刻執行不同級別的檢查點,故檢查點有可分為4種:

A、數據庫檢查點:每一次重做日志文件切換時都執行數據庫檢查點;使用NORMAL\TRANSACTIONAL\IMMEDIATE選項關閉數據庫時,會執行一個檢查點;此時DBWn進程將數據高速緩存區中的所有臟緩存塊都寫入數據文件中。

B、表空間檢查點:將一個表空間設置為脫機狀態或備注為BACKUP模式,會執行一個表空間檢查點;此時DBWn只會將高速緩存區中的與該表空間相關的臟緩存塊寫入數據文件中。

C、手動檢查點:使用ALTER SYSTEM CHECKPOINT語句來手動設置一個檢查點。

D、時間檢查點:即每隔多久執行一次檢查點。可以通過調整(LOG_CHECKPOINT_TIMEOUT和LOG_CHECKPOINT_INTERVAL)參數來改變檢查點實行的間隔。

nARCn(Archiver)歸檔進程;

ü啟動條件:

發生重做日志切換時(必須是歸檔模式下,并且初始化參數LOG_ARCHIVE_START為TRUE ,如果在歸檔模式下該參數是FALSE當重做日志文件全部寫滿,數據庫將會被掛起。)

ü作用:避免數據庫崩潰無法恢復。

ü備注說明:

A、一個例程默認只會啟動一個歸檔進程ARCn,當ARCn正在歸檔一個重做日志文件時,任何其他進程都不能訪問這個重做日志文件。

B、為了避免LGWR進程使用正在歸檔中的重做日志文件造成數據庫被掛起,LGWR進程會根據需要主動啟動更多的歸檔進程。ORACLE最多可以啟用10個ARCn。

C、初始化參數LOG_ARCHIVE_DEST指定了歸檔日志文件所在的位置;LOG_ARCHIVE_FORMAT指定了歸檔日志文件的命名格式規則。

nRECO(Recoverer)恢復進程

nLCKn(Lock) 鎖進程

nRVWR(Recovery Writer)閃回恢復進程

nCTWR(Change Tracking Writer)閃回變化跟蹤寫進程

nCJQn(Job Queue Monitor)作業隊列監視進程

nJnnn(Job Queue)作業隊列進程

nDnnn(Dispatcher)調度進程

nSnnn(Shared Server)共享服務器進程

2綜合案例

案例:查詢后臺進程的編號,名稱和描述。

col spid format a10;

col name format a10;

col description formata30;

select p.spid, b.name,b.description from v$bgprocess b, v$process p where p.addr=b.paddr;

案例:查詢

col spid format a10;

col username formata10;

col terminalformat? a10;

col program format? a10;

select spid, username,terminal, program from v$process;

案例:查看用戶進程情況。Username表示用戶名,process記錄操作系統進程號。

1)?????運行cmd,輸入sqlplus/nolog,輸入conn / as sysdba;建立連接1。

2)?????在sqlplus中執行下面命令:

col username formata10;

col process format? a10;

col machine format? a10;

col program format? a10;

select username,process, machine, program from v$session where username is not null;

3)?????運行cmd,輸入sqlplus/nolog,輸入conn scott/tiger as sysdba;建立連接2。

4)?????在第一步建立的連接1中再執行下面的命令:

select username,process, machine, program from v$session where username is not null;

5)?????對比以上兩個查詢結果。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/287245.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/287245.shtml
英文地址,請注明出處:http://en.pswp.cn/news/287245.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

國外設計師眼中的原型工具Mockplus

2019獨角獸企業重金招聘Python工程師標準>>> 今天,我們評述一款新型設計工具,Mockplus,專為設計師而打造的創新性原型設計工具。Mockplus適合于各種應用軟件的制作,無論是手機應用,網頁應用,亦或…

《看聊天記錄都學不會C#?太菜了吧》(1)從今天開始我是一個游戲開發者

本系列文章將會以通俗易懂的對話方式進行教學,對話中將涵蓋了新手在學習中的一般問題。此系列將會持續更新,包括別的語言以及實戰都將使用對話的方式進行教學,基礎編程語言教學適用于零基礎小白,之后實戰課程也將會逐步更新。 若…

Android之讓EditText不被鍵盤擋住

1 問題 點擊EditText的時候,鍵盤擋住了,不好輸入內容 2 解決辦法 在AndroidManifest.xml相應的activity里面添加 android:windowSoftInputMode"adjustPan|stateHidden"

如何定制.NET6.0的日志記錄

在本章中,也就是整個系列的第一部分將介紹如何定制日志記錄(系列內容查閱《玩轉ASP.NET 6.0框架-序言》)。默認日志記錄僅寫入控制臺或調試窗口,這在大多數情況下都很好,但有時需要寫入到文件或數據庫,或者,您可能希望…

FreeMarker標簽介紹

轉自&#xff1a;http://www.blogjava.net/kxbin/articles/366505.html FreeMarker標簽使用 一、FreeMarker模板文件主要有4個部分組成 1、文本&#xff0c;直接輸出的部分 2、注釋&#xff0c;即<#--...-->格式不會輸出 3、插值&#xff08;Interpolation&#xff09…

利用Erdas監督分類方法提取城鎮用地信息完整實驗操作步驟

打開erdas,分波段加載landsat TM 影像信息,并轉成img圖像格式文件。 1.打開erdas,點擊viewer打開新窗口,點擊打開圖標,選擇要加載的一個波段的tif圖像,點擊OK。 2.點擊主窗口File——Save——Top Layer As…,在跳出的Save窗

linux命令 su和sudo,Linux中sudo和su的區別

介紹&#xff1a;主要對su和sudo的功能&#xff0c;區別以及使用進行介紹。兩者之間的區別su用于用戶之間的切換&#xff1b;sudo用于普通用戶可以使用root權限來執行指定命令&#xff1b;命令介紹1. susu簡介su用于用戶之間的切換。但是前面的用戶依然保持在登錄狀態。這種切換…

通過Xshell上傳下載文件

2019獨角獸企業重金招聘Python工程師標準>>> 1&#xff09;安裝模塊 yum install lrzsz 2&#xff09;使用命令 rz #上傳文件到Linux sz hello.txt #從Linux下載文件hello.txt 轉載于:https://my.oschina.net/u/2351685/blog/519941

Centos 安裝配置 vsftpd

為什么80%的碼農都做不了架構師&#xff1f;>>> 一、安裝vsftpd 執行 yum -y install vsftpd (rpm -qa|grep vsftpd 可查看是否已安裝vsftpd, 默認配置文件在/etc/vsftpd/vsftpd/conf) 二、創建虛擬用戶 選擇在根目錄或者用戶目錄下創建ftp文件夾&#xff1a;mkdir…

《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(6)不會這個知識點代碼越寫越難

本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋了新手在學習中的一般問題。此系列將會持續更新&#xff0c;包括別的語言以及實戰都將使用對話的方式進行教學&#xff0c;基礎編程語言教學適用于零基礎小白&#xff0c;之后實戰課程也將會逐步更新。 若…

Android之各個手機版本WiFi熱點的創建

1 問題 Android手機創建熱點,有很多兼容性問題,網上有很多例子,但是不夠全,而且高版本反射很多奔潰,我這里再總結下。 2 版本兼容和需要的權限已經熱點IP地址說明 1)AndroidMainifest.xml里面需要添加的權限 <uses-permission android:name="android.permissio…

你還在用GIF?那就out了

前言今天介紹一篇使用json格式在wpf中播放動畫效果&#xff1b;正文話說在上古&#xff08;1987&#xff09;時代&#xff0c;Gif因其體積小成像相對清晰和非常強的兼容性&#xff0c;而大受歡迎;Gif也因為當時的技術限制導致很多缺陷 這包括對電腦的內存和性能占用非常大;同時…

【攝影測量原理】第一章:攝影測量學基礎

目 錄 第一節 攝影測量學的定義、任務 第二節 攝影測量與遙感的分類 第三節 攝影測量與遙感的發展歷程 第四節 遙感主要應用領域及3S技術 第一節 攝影測量學的定義、任務 先來看一下例子&#xff1a; 思考&#xff1a; 1、攝影測量去常規測量的相同點與不同點&#…

Linux source命令

Linux source命令&#xff1a; 通常用法&#xff1a;source filepath 或 . filepath 功能&#xff1a;使當前shell讀入路徑為filepath的shell文件并依次執行文件中的所有語句&#xff0c;通常用于重新執行剛修改的初始化文件&#xff0c;使之立即生效&#xff0c;而不必注銷并重…

linux下覆蓋文件命令,在Linux中使用命令行進行文件覆蓋的操作

習慣了freebsd里的cp/rm/mv等命令遇到同名文件時直接覆蓋操作&#xff0c;而在linux中(不一定是全部&#xff0c;可能是我使用的幾種)&#xff0c;使用cp/rm/mv命令覆蓋文件操作時總是提示輸入yes或no&#xff0c;很是麻煩&#xff0c;一兩個的也就算了&#xff0c;沒什么&…

云堆棧三大服務模式解析

如果準備使用云計算或者要在自己的IT環境中部署云計算&#xff0c;首先要確定合適的服務模式。這就需要我們對每種服務模式含義和特點都有所了解&#xff0c;很清楚從中能夠獲得哪些有益東西。正所謂“知己知彼百戰不殆”&#xff0c;我們要對自己想要得到什么非常了解&#xf…

Android之瀏覽器作為客戶端訪問手機socket作為服務端下載圖片和網頁和APK

1 需求 在同一局域網內,手機(PC端)瀏覽器作為客戶端,然后手機app里面通過socket寫服務代碼,然后瀏覽器訪問手機服務端的網頁和圖片和css文件和下載APK 2 代碼實現 創建服務線程代碼 var serverSocket: ServerSocket? = nullvar run = trueinner class HttpServerThrea…

Excel數據生成SQL insert語句

CONCATENATE("insert into teacher(ID, NAME, ADDRESS) values (",A1,",",B1,",",C1,");")轉載于:https://blog.51cto.com/kxtand/1704951

《看聊天記錄都學不會Python到游戲實戰?太菜了吧》(5)用前朝的劍斬今朝的官

本系列文章將會以通俗易懂的對話方式進行教學&#xff0c;對話中將涵蓋了新手在學習中的一般問題。此系列將會持續更新&#xff0c;包括別的語言以及實戰都將使用對話的方式進行教學&#xff0c;基礎編程語言教學適用于零基礎小白&#xff0c;之后實戰課程也將會逐步更新。 若…

【攝影測量原理】第二章:單幅影像解析基礎

本章提綱: 第一節 空中攝影基本知識第二節 中心投影與正射投影第三節 共線方程第四節 航攝像片的像點位移第五節 單幅影像解析基礎第一節 空中攝影基本知識 2.1.1 航空攝影機 1. 光學航空攝影機 <