【process】一些常見file和process的作用總結
檔案和程式的作用
檔案:
l 引數檔案:這些檔案告訴oracle例項在哪裡可以找到控制檔案,並且指定某些初始化引數,這些引數定義了某種記憶體結構有多大等設定。
l 警告檔案:與跟蹤檔案類似,但是包含“期望”時間的有關資訊,並且通過一個集中式檔案(其中包含多個資料庫事件)警告DBA.。這是一個簡單的文字檔案,從資料庫“出生”那一天就會編寫該檔案,直到資料庫“完結”為止。在這個檔案中,可以看到資料庫的“編年史”,包括日誌開關:可能出現的內部錯誤:表空間何時建立、離線以及恢復為線上,等等。這時一個檢視資料庫歷史的及其有用的檔案。TOM喜歡讓警告檔案儘量增長,知道非常大了才會對其“歸檔”。在TOM看來,這個檔案的資訊越多越好。
l 資料檔案:每一個Oracle資料庫都要有一個或者多個物理的資料檔案,這些資料檔案裡儲存的就是Oracle資料庫裡的資料。就好比你有一個資料夾,裡面有幾個txt的文字檔案,文字檔案裡記錄的你這個月的每一筆花銷。如果把資料夾看做是資料庫,那麼txt檔案就是資料檔案,而txt檔案裡面記錄的每一筆花銷就是資料了。
然而表、索引等等其實都是資料庫的邏輯結構,這些表、索引都被物理的儲存在了資料檔案裡面。
資料檔案有三個特性:
1、一個資料檔案只能屬於一個資料庫。
2、資料庫中的資料檔案可以被設定成自動的增長。(當資料庫的空間用完的時候,資料庫中的資料檔案就會自動增長,比如原來1G的資料檔案自動變成了2G的資料檔案)
3、一個或者多個資料檔案就組成了資料庫的一個邏輯單元叫做---表空間。
資料檔案裡的資料,在需要的時候就會被讀取到內容Oracle的緩衝區中,比如當我們想檢視一天資料時,而這條資料恰好又不在Oracle的緩衝區中,那麼Oracle就會把這條資料從資料檔案中讀取到Oracle的緩衝區中來。
當更改或者新增一天資料時,也不是馬上就寫到資料檔案裡面,這麼做是為了減少對磁碟的訪問,提高效率,資料先儲存在緩衝區,然後在一次都寫入資料檔案,這個過程有一個dbwn後臺程式來控制。
l 重做日誌檔案:每個Oracle資料庫都擁有一組檔案,其中包括2個或者多個重做日誌檔案(其實也可以擁有多組,用途跟多個控制檔案一樣)。這組檔案整體被稱為資料庫的重做日誌,而重做日誌又是由一條一條的重做記錄組成的,所有也被稱為重做記錄。
重做日誌的主要作用就是記錄所有的資料變化,當一個故障導致被修改過的資料沒有從記憶體中永久的寫到資料檔案裡,那麼資料的變化是可以從重做日誌中獲得的,從而保證了對資料修改的不丟失。
為了防止重做日誌自身的問題導致故障,所以Oracle擁有多重重做日誌功能,也就是可以同時儲存多組完全相同的重做日誌在不同的磁碟上。
重做日誌裡的資訊只是用於恢復由於系統或者介質故障所引起的資料沒法寫入資料檔案的資料。比如突然斷電導致資料庫的關閉,那麼記憶體中的資料就不能寫入到資料檔案中,記憶體中的資料就會丟失。但當資料庫重新啟動時丟失的資料是可以被恢復的,可以從最近的重做日誌中讀取丟失資訊然後應用到資料檔案中,這樣就把資料庫恢復到斷電前的狀態。
在恢復操作中恢復重做日誌資訊的過程叫做前滾。
l 臨時檔案:臨時資料檔案(temporary dataf files)是一種特殊型別的資料檔案。Oracle使用臨時檔案來儲存大規模排序操作和雜湊操作的中間結果,如果RAM中沒有足夠的空間,還會用臨時檔案件儲存全域性臨時表資料,或結果集資料。永久資料物件(如表或索引)不會儲存在臨時檔案中,但是臨時表機器索引的內容要儲存在臨時檔案中。所以,不可能在臨時檔案中建立表。但是使用臨時表時完全可以再其中儲存資料。
l 控制檔案:每一個資料庫都擁有控制檔案(它和資料檔案一樣重要),控制檔案裡記錄的是對資料庫物理結構的詳細資訊,例如它包括如下三個資訊:
1、資料庫的名稱
2、資料檔案的名字和存在位置,重做日誌檔案的名字和儲存位置
3、資料庫建立的時間標識
Oracle可以使用多重的控制檔案,也就是說它可以同時維護多個完全一樣的控制檔案,這麼做就是為了防止資料檔案損壞而造成的資料庫故障。比如Oracle同時維護3個控制檔案,當其中有1個控制檔案出問題了,就比較好解決,把出問題的刪了,在複製一份沒有問題的就可以了。
每當Oracle資料庫的例項啟動的時候,它就會通過控制檔案來識別,要想執行資料庫的一些操作,必須需要哪些資料檔案和重做日誌檔案,以及這些資料檔案和重做日誌檔案都存在在什麼位置。當資料庫的物理構成發生改變的時候,比如新增加了一個資料檔案或者重做日誌檔案,那麼控制檔案就會自動的更新來記錄這些變化。另外在資料庫恢復的時候也會用到控制檔案。
l 密碼檔案:是一個可選檔案,允許遠端SYSDBA或管理員訪問資料庫。
l 跟蹤檔案:能提供除錯資訊。伺服器遇到問題時,它會生成一個包含大量診斷資訊的跟蹤檔案。如果執行了DBMS_MONITOR.SESSION_TRACE_ENABLE,伺服器就會生成一個包含效能相關資訊的跟蹤檔案。我們之所以可以使用這些跟蹤檔案,是因為oracle是一個允許充分測量的軟體。
通常有兩類跟蹤檔案:
1) 你想要跟蹤的檔案:例如啟用DBMS_MONITOR.SESSION_TRACE_ENABLE 選項的結果,其中包含有關會話的診斷資訊,有助於你調整應用,優化應用的效能,並診斷出遭遇的瓶頸
2) 你不想要的跟蹤檔案,但是由於出現了以下錯誤,伺服器會自動生成這些跟蹤檔案。這些錯誤包括”ORA-00600 Interal Error(內部錯誤)、ORA-03113”End of file on communication channel”(通訊通道上檔案結束)或ORA-07445”Exception Endcountered”(遇到異常)。這些跟蹤檔案包含一些診斷資訊,它們主要對ORACLE SPORT的分析人員有用,但對於我們來說,除了能出應用中哪裡出現了內部錯誤之外,用處不大。
常見程式:
l PMON:1)程式監視器負責在出現異常中止之後完成清理。例如,如果專用伺服器“失敗”或由於每種原因被撤銷,就要由PMON程式負責修正,並釋放資源。PMON會回滾未提交的工作,並釋放為失敗程式分配的SGA資源。
2)PMON還負責監視其它ORACLE後臺程式,並在必要時重啟這些後臺程式。
3)PMON還會向ORACLE TNS監聽器註冊例項資訊。
l SMON: SMON負責系統監視已經一些系統清理及恢復工作,這些工作主要包括:
1.清理臨時空間以及臨時段
SMON負責在資料庫啟動時清理臨時表空間中的臨時段,或者一些異常操作過程遺留下來的臨時段,例如,當建立索引過程中,建立期間分配給索引的Segment被標誌為TEMPORARY,如果Create Index (或rebuild
Index等)會話因某些原因異常中斷,SMON負責清理這些臨時段。
2.接合空閒空間
在DMT(字典管理表空間)中,SMON負責把那些在表空間中空閒的並且互相是鄰近的Extent接合成一個較大的空閒擴充套件區,這需要表空間的pctincrease設定為非零值。
3.執行例項恢復(Instance recovery)
在例項恢復過程中,SMON的工作包括三個環節:應用Redo執行前滾、開啟資料庫提供訪問、回滾未提交資料
4.離線(Offline)回滾段
在自動回滾段管理(AUM)中負責Offline不再需要的回滾段,日誌中會記錄類似如下資訊:
5.執行並行恢復
l CKPT:檢查點程式並不像它的名字所暗示的那樣真正的建立檢查點,建立檢查點主要是DBWn的任務。CKPT只是更新資料檔案的檔案首部,以輔助真正建立檢查點的程式(DBWn).
l DBWn:負責將髒塊寫入磁碟的後臺程式。
l LGWR:負責將SGA中重做日誌緩衝區的內容重新整理輸出到磁碟。如果滿足一下某個條件,就會做這個工作:
1) 每3秒會重新整理輸出一次;
2) 任何事務發出一個提交時;
3) 重做日誌緩衝區1/3滿,或者已經包含1MB的緩衝資料
l ARCn:將線上重做日誌檔案複製到至少兩個位置,進行重做日誌檔案的冗餘。用於完成介質恢復。
這些東西也都很簡單,做一個簡單彙總方便需要時檢視。
ballontt
2013/3/14
----The End---
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27425054/viewspace-756187/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- process和session的總結Session
- 關於oracle裡的process總結Oracle
- Java Process 阻塞測試總結Java
- ORACLE SESSION 和 PROCESSOracleSession
- Process Monitor Process (PMON) (121)
- Process W000 died, see its trace file
- ORA-27092: skgfofi: size of file exceeds file size limit of the processMIT
- Process J000 died, see its trace file,kkjcre1p: unable to spawn jobq slave process
- process/session/connection的一些問題Session
- O/S-Error: (OS 33) The process cannot access the fileError
- oracle session和process的關係OracleSession
- Oracle dedicated server process and shared server processOracleServer
- Android之Service設定android:process作用Android
- 關於v$process與v$session中process的理解Session
- 問題之Process m000 died, see its trace file&ksvcreate: Process(m000) creation failedAI
- 修改Oracle process 和 session 的方法--摘OracleSession
- 在oracle裡把backugroupd process叫做oracle的deamon process咋樣Oracle
- Process Architecture
- Oracle backgroud ProcessOracle
- find process by port
- goldengate的Collector processGo
- v$session.PROCESS/V$process.SPID含義Session
- golang 常見疑惑總結Golang
- 常見問題總結
- 常見corruption block總結BloC
- 常見啟用函式的介紹和總結函式
- Ksvcreate:Process(xx) Creation Failed/ORA-00445:Background Process "xx"AI
- 在Oracle中session和process的區別(轉)OracleSession
- oracle session和process的關係 .轉自CSDNOracleSession
- 【Multiprocessing系列】Process
- session,connect,processSession
- oracle中修改processOracle
- What is strategy development process?dev
- pipe stderr into another process
- 總結Oracle根據時間查詢的一些常見情況Oracle
- python常見漏洞總結Python
- mysql常見問題總結MySql
- Vue 常見問題總結Vue