<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
    數據庫結構(四).進程結構
    ?
    ?
    一、數據庫的進程
    ?
    ??? <提示>在Windows中如何查看進程(10g):
    ??? 打開【配置和移植工具】- Administrator Assistant for Windows
    ??? 找到數據庫后點擊右鍵 - 選擇【進程信息】,即可查看。
    ?
    ?
    數據寫進程DBWR
    ?
    ??? 1、將修改過的數據緩沖區的數據寫入對應數據文件
    ??? 2、維護系統內的空緩沖區
    ?
    ??? 這里指出幾個容易錯誤的概念:
    ??? 1.當一個更新提交后,DBWR把數據寫到磁盤并返回給用戶提交完成?
    ×
    ??? 2.DBWR會觸發CKPT后臺進程×
    ??? 3.DBWR不會觸發LGWR進程×
    ?
    ??? DBWR是一個很底層的工作進程,它批量的把緩沖區的數據寫入磁盤。和任何前臺用戶的進程幾乎沒有什么關系,也不受他們的控制。
    ??? DBWR在以下情況下會被觸發開始工作:
    ??? 1.服務器進程將臟數據塊移入DIRTY列表到達其臨界值長度(該長度為DB-BLOCK-WRITE-BATCH的一半)
    ??? 2.服務器進程搜索一定數量緩存塊后仍未找到可用空閑緩存
    ??? 3.出現超時(約3s內未被啟動)
    ??? 4.CKPT進程會通過LGWR通知DBWR進行寫操作
    ?
    ??? DBWR進程若啟動太多頻繁,則將降低系統I/O性能;若太久啟動一次,則對數據庫恢復造成一定影響。
    ?
    ?
    日志寫進程LGWR
    ?
    ??? 將重做日志緩沖區的數據寫入重做日志文件。
    ??? LGWR是一個必須和前臺用戶進程通信的進程,當數據被修改的時候,系統會產生一個重做日志并記錄在重做日志緩沖區內。這個重做日志可以類似的認為是以下的一個結構:
    ?
    ??????? SCN=000000001000
    ??????? 數據塊ID
    ??????? 對象ID=0801
    ??????? 數據行=02
    ??????? 修改后的數據=0011
    ?
    ??? 提交的時候,LGWR必須將被修改的數據的重做日志緩沖區內數據寫入日志數據文件,然后再通知前臺進程提交成功,并由前臺進程通知用戶。從這點可以看出LGWR承擔了維護系統數據完整性的任務。
    ??? LGWR在以下情況下觸發工作:
    ??? 1.用戶提交當前事務
    ??? 2.重做日志緩沖區被寫滿1/3
    ??? 3.有大于1M 重做日志緩沖區未被寫入磁盤
    ??? 4.每隔3s發生一次超時,啟動LGWR
    ??? 5.DBWR需要寫入的數據的SCN號大于LGWR記錄的SCN號,DBWR觸發LGWR寫入
    ?
    ??? 一個LGWR進程可以對多個日志文件組成員操作,以避免某個日志文件損壞的情況下發生錯誤。
    ??? LGWR切換日志時生成一個檢查點,通知DBWR寫入數據。因為即將覆蓋日志文件可能是一個事務修改數據留下的日志。
    ?
    ?
    歸檔進程ARCH
    ?
    ??? 當數據庫以歸檔方式運行的時候,Oracle會啟動ARCH進程,當重做日志文件被寫滿時,日志文件進行切換,舊的重做日志文件就被ARCH進程復制到一個或多個特定的目錄/ 遠程機器。這些被復制的重做日志文件被叫做歸檔日志文件。
    ?
    ??? 要啟動 ARCH 進程,除了數據庫要運行在歸檔模式下外,還需要設置初始化參數 ARCHIVE_LOG_START 為 TRUE ,否則當日志寫滿之后,數據庫會被掛起,等待管理員手動歸檔之后重新工作。
    ?
    ??? 一個數據庫實例可以有多個歸檔進程,其數量由歸檔進程參數 LOG_ARCHIVE_MAX_PROCESSES 決定。當歸檔進程對日志歸檔時,任何進程無法訪問日志文件,直到歸檔完畢,因此為了加快歸檔速度,可以啟動多個歸檔進程。
    ?
    ?
    檢查點進程CKPT
    ?
    ??? 檢查點進程 CKPT 負責執行檢查點,并更新控制文件,啟用 DBWR 進程將臟緩存塊中的數據寫入數據文件(該任務一般由 LGWR 執行)。 CKPT 對于許多應用情況的都不是必須的,只有當數據庫數據文件很多, LGWR 在檢查點時明顯降低性能的情況下才使用 CKPT 。
    ?
    ??? CKPT 的作用主要就是:同步數據文件、日志文件和控制文件。由于DBWR/LGWR的工作原理,造成了數據文件,日志文件,控制文件的不一至,這就需要CKPT進程來同步。CKPT會更新數據文件/控制文件的頭信息。
    ?
    ??? 檢查點的執行間隔如果設置過短,則增加磁盤的 I/O 操作,過長則數據庫恢復將消耗太多時間。可以根據以下參數來設置檢查點的間隔時間:
    ?
    ??? LOG_CHECKPOINT_TIMEOUT :決定執行檢查點的時間間隔 ?
    ??? LOG_CHECKPOINT_INTERVAL :設置每產生多少個日志文件數據,系統產生一個檢查點
    ?
    ??? CKPT工作的主要條件如下:
    ??? 1. 在日志切換的時候
    ??? 2. 數據庫用 immediate、transaction、normal 選項 shutdown 數據庫時
    ??? 3. 根據LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET 的設置值執行
    ??? 4. 用戶觸發
    ?
    ?
    系統監控SMON
    ?
    ??? 系統監控進程 SMON 在數據庫實例啟動時,負責對數據庫進行回復操作。如數據庫非正常關閉,則下次啟動時 SMON 將根據重做日志文件對數據庫進行恢復。 SMON 在實例啟動時執行一次,其他時候則在其他進程需要時重新啟動。
    ?
    ??? SMON 的工作主要包含:
    ??? 1. 在系統啟動時,完成系統實例恢復
    ??? 2. 清除臨時空間
    ??? 3. 聚結空閑空間
    ??? 4. 從不可用的文件中恢復事務的活動
    ??? 5. OPS中失敗節點的實例恢復
    ??? 6. 清除OBJ$表
    ??? 7. 縮減回滾段
    ??? 8. 使回滾段脫機
    ?
    ?
    進程監控PMON
    ?
    ??? 進程監控進程 PMON 在用戶進程出現故障時執行進程恢復,并負責清理內存區、釋放該進程所使用的資源。例如用戶未從數據庫退出的情況下直接關閉客戶端程序,或由于網絡中斷而使數據庫連接非正常中斷,均會由 PMON 清除失效的用戶進程,釋放用戶進程所用的資源。
    ?
    ??? 此外 PMON 進程還會周期性地檢查調度程序和服務進程的狀態,如果它們失敗, PMON 將嘗試重啟它們,并釋放資源。例如:PMON將回滾未提交的工作,釋放鎖,釋放分配給失敗進程的SGA資源。
    ?
    ?
    分布式恢復RECO
    ?
    ??? RECO 負責解決分布事物中的故障。
    ?
    ??? 在分布式數據庫系統中包含了多個數據庫實例,他們像一個數據庫一樣運行,其中任何一個實例都可以修改其他數據庫的數據。當由于網絡問題,有些遠程修改過程處于懸而未決的狀態。RECO進程會試圖建立與遠程服務器的通信,當故障消除后,RECO進程自動解決所有懸而未決的會話。
    ?
    ?
    用戶進程User Process
    ?
    ??? 在客戶端,負責將用戶的SQL語句傳遞給服務進程,并從服務器段拿回查詢數據。
    ?
    ?
    服務進程Server Process
    ?
    ??? 服務進程的分類:
    ??? 1 、專用服務進程(Dedicated Server Process)
    ??????? 此時各個服務進程是完全獨立的,一個服務進程對應一個用戶進程,直到用戶斷開與實例間的連接才會終止。
    ??? 2 、共享服務進程(MultiTreaded Server Process)
    ??????? 一個服務進程對應多個用戶進程,輪流為用戶進程服務??梢杂蒙倭糠者M程通過調度進程為任意數量的用戶進程服務。
    ?
    ?
    調度進程 Dnnn
    ?
    ??? 調度進程 Dnnn 是位于用戶進程與共享服務進程之間的關鍵進程。它負責將用戶進程分配給空閑的服務進程,并將處理后的結果返回給用戶進程。
    ?
    ??? 管理員可根據情況配置多個調度程序,其名稱依次為: D000 、 D111 、 D222 、……、 Dnnn
    ?
    ?
    posted on 2008-08-21 23:48 decode360 閱讀(222) 評論(0)  編輯  收藏 所屬分類: 08.DBA
    主站蜘蛛池模板: 亚洲第一区视频在线观看| 婷婷精品国产亚洲AV麻豆不片 | 亚洲狠狠ady亚洲精品大秀| 一级毛片**免费看试看20分钟| 免费看的一级毛片| 亚洲人成网站18禁止| 成年女人视频网站免费m| 亚洲砖码砖专无区2023 | 亚洲国产精品成人久久蜜臀| 国产精品亚洲va在线观看| 国产jizzjizz视频免费看| 杨幂最新免费特级毛片| 亚洲一区二区三区免费| 久久九九久精品国产免费直播| 在线观看午夜亚洲一区| 美女视频黄的免费视频网页| 精品亚洲成a人片在线观看| 永久免费视频网站在线观看| 91亚洲视频在线观看| 成人免费网站在线观看| 亚洲a∨无码一区二区| 亚洲爽爽一区二区三区| 大地影院MV在线观看视频免费 | 中国亚洲呦女专区| 国产麻豆剧传媒精品国产免费 | 亚洲中文久久精品无码ww16| 中国人免费观看高清在线观看二区| 中文亚洲AV片不卡在线观看| 91香焦国产线观看看免费| 中文字幕精品三区无码亚洲| 午夜亚洲av永久无码精品| 国内精品免费视频精选在线观看| 亚洲美女激情视频| 免费看大美女大黄大色| 2022国内精品免费福利视频| 亚洲精品一卡2卡3卡三卡四卡| 在线视频免费国产成人| 日韩电影免费观看| 亚洲国产精品久久久久秋霞小 | 亚洲一级毛片免费看| 亚洲国产成人五月综合网|