第五章 Oracle 進程
1、Oracle實例主要3類進程
a、服務器進程(server process):根據客戶的請求來完成工作;
b、後臺進程(background process):隨數據庫啓動而啓動,用於完成各種維護任務,如將塊寫至磁盤、維護在線重做日誌、清理異常終止的進程、維護自動工作負載存儲庫(AWR)等;
c、從屬進程(slave process):類似於後臺進程,但它們要代表後臺進程或服務器進程完成一些額外的工作。
注:本章所述進程有兩層含義,既表示進程又涵蓋線程。如果你使用的是一個多進程的Oracle實現,比如說Linux上的Oracle實現,進程就表示進程;如果你使用單進程的Windows實現,比如Windows上的Oracle實現,進程實際指Oracle進程中的線程。如DBWn進程,在Windows上就對應Oracle進程中的DBWn線程。
2、服務器進程
(1)連接與會話
a、連接:是指從客戶端到Oracle實例的一條物理路徑;
b、會話:是實例中存在的一個邏輯實體,就是表示特定會話的一組內存中的數據結構;各個會話是單獨而且獨立的,即使它們共享同一條數據庫物理連接也是如此;一個會話中的提交不會影響該連接上的任何其它會話;
c、連接與會話的關係:在一條連接上可以建立0個、1個或多個會話。會話可以有連接也可以沒有連接。如果使用Oracle Net的連接池,連接空閒一段時間後,客戶可以刪除一條物理連接,而會話依然保留(但是會話是空閒的),客戶在這個會話上執行某個操作時,它會重新建立物理連接。簡單的說,連接與會話之間有一種多對多的關係,不過最常見的是專用服務器與單一會話之間的一對一關係。
(2)專用服務器與共享服務器
a、專用服務器模式:在非OLTP環境中,也就是可能有長時間運行事務的情況下,應該只考慮這種模式,因爲該模式下客戶連接與服務器進程之間存在一種一對一的映射,不必擔心長時間運行的事務會阻塞其他事務。
b、共享服務器模式:該模式下,多個進程會共享服務器資源,適合於OLTP環境、併發用戶大的情況。
3、後臺進程
略。
4、從屬進程
略。