(Les01 Architecture III 進程結構)[20180113]

来源:https://www.cnblogs.com/also-brook/archive/2018/01/15/8288504.html
-Advertisement-
Play Games

進程體繫結構 -用戶進程:連接到Oracle DB的應用程式或工具 -資料庫進程 -伺服器進程:連接到Oracle實例,在用戶建立會話時啟動 -後臺進程:在啟動Oracle實例時啟動 -守護程式/應用程式進程 -網路監聽程式 -Grid infrastructe守護程式 專用伺服器,對於每個會話,運 ...


進程體繫結構         

 

        -用戶進程:連接到Oracle DB的應用程式或工具         -資料庫進程             -伺服器進程:連接到Oracle實例,在用戶建立會話時啟動             -後臺進程:在啟動Oracle實例時啟動         -守護程式/應用程式進程             -網路監聽程式             -Grid infrastructe守護程式                  專用伺服器,對於每個會話,運行資料庫應用程式的用戶進程都由執行Oracle DB伺服器的伺服器進程提供服務。         共用伺服器,不必為每個連接都提供一個專用伺服器進程。分派程式會將多個傳入網路會話請求定向到共用伺服器進程池。共用伺服器進程為所有客戶端請求提供服務。           伺服器進程             -對通過應用程式發出的SQL語句進行語法分析並運行語句             -從磁碟上的數據文件中將必要的數據塊讀取到SGA的共用資料庫緩衝區中(如果這些數據塊目前尚未在SGA中)             -返回結果,使應用程式可以處理信息         後臺進程             Oracle DB系統使用的進程統稱為“後臺進程”,一個Oracle DB實例可以有多個後臺進程。             非RAC、非ASM環境中常見後臺進程                 -DBWn 資料庫寫進程                 -LGWR 日誌寫進程                 -CKPT 檢查點進程                 -SMON 系統監控進程                 -PMON 進程監控進程                 -RECO 恢復器進程                 -CJQ0 作業隊列協調程式                 -Jnnn 作業從屬進程                 -ARCn 歸檔進程                 -QMNn 隊列監控進程             更高級的配置(如RAC)會有其他後臺進程。有關後臺進程的詳細信息,請參考V$BGPROCESS視圖             有些後臺進程是在啟動實例時自動創建的,而另外一些則是根據需要創建的。             其他進程結構不是單個資料庫獨有的,而是可以在同一個伺服器上的多個資料庫間共用的。Grid Infrastructure進程和網路進程則屬於此類。                 Liunx和Unix系統上Grid Infrastructure進程包括                     -ohasd:Oracle高可用性服務守護程式,負責啟動Oracle Clusterware進程。                     -ocssd:集群同步服務守護程式                     -diskmon:磁碟監視守護程式,負責監視HP Oracle Exadata Storage Server的輸入和輸出                     -cssdagent:啟動、停止和檢查CSS守護程式ocssd的狀態                     -orarootagent:一種專用的Oracle代理進程,可幫助管理root用戶所擁有的資源(如網路)                 DBWn數據寫進程                 參數:db_writer_processes                 將資料庫緩衝區高速緩存中經過修改的緩衝區(臟數據)寫入磁碟有兩種方式:                     -在執行其它處理時非同步執行                     -推進檢查點                 資料庫寫進程(DBWn)將緩衝區的臟數據寫入數據文件。大多數系統來說,一個資料庫寫進程(DBWn)已經足夠,但如果系統需要頻繁修改數據,也可以配置附加進程(DBW1到DBW9或DBWa到DBWz)來改善寫入性能。這些附加進程在單處理器系統中沒有作用。                 當資料庫緩衝區高速緩存中的某個緩衝區數據被修改時,系統會將其標記為臟數據,並將其添加到按SCN順序排列的檢查點隊列的頭中。因此,該順序與這些更改的緩衝區的重做條目寫入重做日誌的順序一致。當緩衝區高速緩存中的可用緩衝區的數量低於某個內部閘值時,DBWn會將不經常使用的緩衝區寫入數據文件,寫入順序是從LRU列表的尾部開始,從而使進程可以在需要緩衝區時替換它們。DBWn也會從檢查點隊列的尾部寫入,以保護檢查點向前推進。                 SGA中有一個記憶體結構保存了重做流中位置的重做位元組地址(RBA),當實例發送故障時,將從該位置開始恢復。此結構充當指向重做的指針,並且由CKPT進程按照每三秒一次的頻率寫入控制文件。由於DBWn按照SCN順序寫入臟數據,而重做按照SCN順序執行,因此每當DBWn從LRU列表寫入臟數據時,還會將SGA記憶體結構中保持的指針前移,以便實例恢復(如果需要)從近似正確的位置開始讀取重做,並避免不必要的I/O。這稱為"增量檢查點"。                 LRU演算法將更頻繁訪問的塊保存在緩衝區高速緩存中,以儘可能地減少磁碟讀取。可對錶使用cache選項,以幫助延長塊在記憶體中的保留時間。                 DB_WRITER_PROCESSES初始化參數指定了DBWn進程的數量。DBWn進程的最大數量為36。如果用戶在啟動過程中未指定該進程數,Oracle DB將根據CPU和處理器組的數量來決定如果設置DB_WRITER_PROCESSES。                 DBWn資料庫寫進程觸發條件:                     -產生檢查點CKPT                     - 臟數據緩衝區達到閥值 預設10%                     -掃描整個data buffer 沒有空閑data buffer 中包含髒的和未髒的,優先寫臟數據列表再寫未臟塊                     - timeout 超時,如果DBWn 沒事做 會被每三秒喚醒一次去巡檢 寫不寫不一定                     - 表級別的truncate 或 drop 也會觸發數據寫                     - 修改表空間的 read only                     - 做表空間的offline (離線)                     - 熱備份 begin backup 命令                 在所有情況下,DBWn均執行批量(多塊)寫操作以提高效率。多塊寫操作中寫入的塊數因操作系統而異。           LGWR日誌寫進程                 將重做日誌緩衝區寫入磁碟上的重做日誌文件中。重做日誌緩衝區是迴圈緩衝區,當LGWR將重做日誌緩衝區的重做條目寫入重做日誌文件時,伺服器進程隨後可以複製新條目,覆蓋重做日誌緩衝區中的那些已寫入磁碟的條目。LGWR的寫入速度通常足夠快,可以確保緩衝區中始終有空間可供新條目使用,即使對重做日誌的訪問量很大時也是如此。LGWR將緩衝區的一個連續部分寫入磁碟。                 LGWR日誌寫進程觸發條件:                     -用戶進程提交事務處理時                     -重做日誌緩衝區的三分之一已滿時                     -DBWn進程將經過修改的緩衝區寫入磁碟(如果需要)之前                     -重做日誌緩衝區達到1M的redo條目                     -每隔3秒                                  CKPT檢查點進程             “檢查點”是一種數據結構,它定義了資料庫的重做線程中的系統更改號(SCN)。檢查點記錄在控制文件和每個數據文件頭中。它們是恢復操作的關鍵元素。                 CKPT檢查點進程在DBWn將高速緩衝區中的臟數據寫入數據文件時觸發,它會校驗寫入所有相關的數據文件的頭部,還將校驗點號碼、重做日誌序列號、歸檔日誌名稱和最低/最高SCN號都會寫入控制文件中。             CKPT檢查點進程觸發條件:                 -log_checkpoint_timeoute時間閥值達到                 -log_checkpoint_interval*操作系統塊大小                 -redo log switch & alter system checkpoint,日誌切換和顯式生成檢查點                 -熱備 begin backup                 -表空間offline&read only、shutdown immediate和direct read           SMON系統監控進程             -實例啟動時執行恢復。執行前滾,將已經寫入重做日誌文件但是還沒寫入到數據文件中的數據(scn號來識別提交的記錄),打開資料庫,回滾沒有提交的事務。             -清除不使用的臨時段。回收或合併數據文件相連的空閑區,釋放臨時段。           PMON進程監控進程             -在用戶進程失敗時執行進程恢復                 -清除資料庫緩衝區高速緩存                 -釋放該用戶進程使用的資源             -監控會話,查看是否發生空閑會話超時             -在監聽程式中動態註冊資料庫服務             

 

            RECO(恢復器進程)             -用於分散式資料庫配置             -分散式事務處理有問題時自動連接其它涉及的資料庫             -自動解決所有有問題的事務             -刪除對應有問題的事務的所有行           ARCn(歸檔進程)             資料庫開啟歸檔模式,alter database archivelog;             -在發生日誌切換之後,將重做日誌文件複製到指定的存儲路徑             -收集事務處理重做數據,並將該數據傳輸到備用目標位置               目標位置log_archive_dest_1~31(11g),前1~10主要存放local本地路徑(也可以存放Service名),11~30存放Service不能存放local本地路徑。             ARCn歸檔進程最大數量的控制參數:LOG_ARCHIVE_MAX_PROCESSES             https://docs.oracle.com/cd/E11882_01/server.112/e25494/archredo.htm#ADMIN00801                    Jnnn(作業從屬進程)&CJQ0 (作業隊列協調程式 )             它們可以被看作是一個調度程式服務,用來將作業Oracle資料庫實例上的PL/SQL語句或過程。             -Jnnn作業從屬進程(或作業隊列進程)是動態管理的。                 -CJQ0 作業隊列協調程式會定期從JOB$表選擇並運行Jnnn作業                 -CJQ0進程動態生成作業從屬進程(J000-J999)                 -Jnnn進程由CJQ0進程選擇的一個作業來執行。這些進程一次運行一個作業(job)                 -該進程完成後,它將輪詢更多的作業(job)。如果沒有計劃執行的作業則進入休眠狀態,並從中定期喚醒其他作業。如果進程沒有找到新的作業,則在預設的時間間隔後中止。         同時執行最大的Jnnn進程數的參數:job_queue_processes                 這些進程與其他Oracle資料庫後臺進程不同,該進程故障不會導致實例失敗。           QMNn(隊列監控進程)             QMNn隊列監控進程是Oracle Streams Advanced Queuing的可選後臺進程,用於監控消息隊列。             -最多可以配置10個QMNn隊列監控進程。             這些進程與其他Oracle資料庫後臺進程不同,該進程故障不會導致實例失敗。    

 

  參考: https://docs.oracle.com/cd/E11882_01/server.112/e40540/process.htm#CNCPT9840
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、思科設備和微軟系統整合的背景: 公司內部有一定數量的客戶端,為了實現統一化,在管理內部部署了域架構,這樣可以通過組策略對客戶端進行批量化管理,提高了管理的效率。 同樣公司內部有一定數量的網路設備(交換機,路由器,防火牆等),在遠程管理的時候是通過Telnet方式。 在本案例中,希望用戶遠程管理網 ...
  • [譯註]翻譯這篇文章,主要是覺得老外在思考問題時,勇於打破固有的技術棧積累,嘗試不同的選擇,從而找到最合適自己的技術方案、得到真正的實惠。 Synergy SKY提供多種軟體解決方案,本文想討論的是關於一套用於視頻相關的呼叫記錄(CDR)分析解決方案。 為客戶提供方案時有兩種選擇,一是讓客戶避免所有 ...
  • 處理MySQL的ibdata1文件過大問題 本人遇到一次在安裝zabbix監控的時候,yum安裝的MySQL資料庫,後面用了一段時間發現data目錄下的ibdata1的空間特別大,反而我的zabbix資料庫的空間很小,這樣的情況在後面備份zabbix資料庫的時候會很不方便,所以想著要怎麼解決下。 i ...
  • 今天客戶提了一個小需求,希望我能提供一條sql語句,幫助他對數據中 _field 這個欄位的值去重,並且保留其他欄位的數據。第一反應是select distinct,但這種語句在對某個欄位去重時,無法保留其他欄位,所以select distinct不成立。因為用戶對去重沒有要求,欄位值重覆時保留任意 ...
  • 一、簡介 MongoDB是一款強大、靈活、且易於擴展的通用型資料庫 1、易用性 1)MongoDB是一款面向文檔的資料庫,而不是關係型資料庫,因此而有著更好的擴展性。 2)通過在文檔中嵌入文檔和數組,面向文檔的方法能夠僅使用一條記錄來表現複雜的層級關係。 3)MongoDB沒有預定義模式(prede ...
  • 一、新增欄位 alert table user add( userName VARCHAR2(255 CHAR) ) ; 設置欄位不為空, 給出預設值 alert table user add( userName varchar2(255 CHAR) default '這是預設值' not null ...
  • 現觀察線上系統運行發現,線上某些業務查詢存在等待時間長問題,後核查發現,部分問題出現在對資料庫操作上Cost大部分時間,後根據網上各位前輩提供的優化技巧解決大部分問題,現寫下本篇文章,一來鞏固加深自己學習的優化技巧,二來方便正在為sql優化迷茫的猿友們提供一下思路和方法,共同進步,一起成長~ 1、現 ...
  • 很多人剛入門的時候分不清LEFT JOIN、RIGHT LOIN 和 INNER JOIN的區別,對它們的定義比較模糊,今天就簡單的介紹一下它們的區別,對於入門的人來說,應該能夠幫助你們理解。 left join(左聯接) 返回包括左表中的所有記錄和右表中聯結欄位相等的記錄 right join(右 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...