我的位置: 首頁 > 學習專區 > 數據庫技術 > 由淺入深講解Oracle數據庫進程的相關概念

由淺入深講解Oracle數據庫進程的相關概念

2013-07-02 08:18:54
來源:
[導讀] Oracle數據庫進程概述:Database buffer cache主要用于存儲數據文件中的數據塊數據庫高速緩存的數據塊是高速緩存與數據文件進行信息交換...

Oracle數據庫進程概述:

Database buffer cache主要用于存儲數據文件中的數據塊

數據庫高速緩存的數據塊是高速緩存與數據文件進行信息交換的基本單位。在Oracle數據庫8i以前,數據塊大小只有一種,而Oracle數據庫9i以后支持2K,4K,8KB,16KB及32KB五種。

用命令SQL>SHOW PARAMETER DB可以顯示當前數據庫的BUFFER CACHE

數據庫緩存和特點如下:

<1>.根據最近最少使用LRU.

<2>. 由DB_BLOCK_SIZE來指定大小。

<3>.ORACLE使用時是以塊大小為單位進行數據存取的。

還包含以下一些獨立的子緩存:

<1>.DB_CACHE_SIZE.

<2>.DB_KEEP_CACHE_SIZE.

<3>.DB_RECYCLE_CACHE_SIZE.

注:可以用Alter system set db_cache_advice=on;設置成根據系統的建議來指定大小。

REDO LOG FILE主要是用于重做日志

用命令SQL>SHOW PARAMETER LOG_BUFFER。

SQL>ALTER SYSTEM SET LOG_BUFFER_SIZE=60M。

用來顯示或修改重做日志緩沖區的一些信息。

命令SQL>achive log list 可以查看數據庫當前的歸檔模式。

LARGE POOL:

與JAVA POOL一樣,都是作為系統可選的內存結構,由SGA來配置。

JAVA POOL:

當安裝或使用JAVA時才用到。

ORACLE內存進程包括兩個,一個是SGA,一個是PGA.

(1)。SGA在ORACLE實例啟動時分配,是ORACLE實例的一個基本組件。

(2)。PGA是在當服務器進程啟動時分配的。

進程結構:

<1>.USER PROCESS.用于用戶與ORACLE SERVER交互的進程。

USER PROCESS必須與ORACLE建立連接后才可使用,不可與ORACLE SERVER交互。

<2>.SERVER PROCESS.

SERVER PROCESS在用戶與服務之間建立連接后,為執行用戶命令的一個進程。

<3>.BACKGROUND PROCESS.

后臺進程:DATABASE WRITER (DBWn)用來把DATA BUFFER CACHE中的臟數據寫回到數據庫中。

(注:臟數據是被改變的數據。)

在以下情況下它會寫數據庫:

<1>.在發生CHECKPOINT同步。

<2>.臟數據達到閥值。

<3>.DATABASE BUFFER CACHE 自由空間太少了。

<4>.TIMEOUT (3秒鐘。)

<5>.RAC PING REQUEST.

<6>.TABLESPACE OFFLINE.

<7>.TABLESPACE READONLY.

<8>.TABLE DROP OR TABLE TRUNCATE (表數據清空或表結構刪除)。

<9>.TABLESPACE BEGIN BACKUP.

由SGA (包含DATABASE BUFFER CACHE,BACKGROUND PROCESS)-----> [ DBWn ]----> {data files,

control files, redo log file} ---->由此過程改變數據庫中的數據。

LOG WRITER (LGWR) 日志寫進程

在Oracle環境中

<1>.當COMMIT的時候。

<2>.當三分之一空間滿時。

<3>.當日志有1MB需要重做時。

<4>.每3秒

<5>.BEFORE DBWn WRITES.(寫數據前先寫日志)。

REDO LOG BUFFER----->LGWR--->DBWn

|--------------------------------------> REDO LOG FILES

SYSTEM MONITOR (SMON)系統監控進程

主要任務:

(1)。啟動過程(假定DATABASE重啟時)如果需要RECOVERY,則此進程會負責打開數據庫,及回滾沒有

提交的事務;以及rolls forward changes in the redo logs這些統稱為:instance recovery.

(2)。對每3秒就對系統自由空間的整理。(COALESCES FREE SPACE EVER 3 SEC.)

(3)。清空臨時段空間(DEALLOCATES TEMPORARY SEGMENTS)。

這個過程也是在系統啟動過程中完成的。

PROCESS MONITOR (PMON) 進程監控進程

主要用于回滾異常終止的或被用戶強制終止的事務。

<1>.rolling back the transaction.

<2>.releasing locks.釋放鎖。

<3>.releasing other resources.

<4>.restarts dead dispatchers.重啟死掉的調度器。(在共享服務器中用)。

PMON (:Include in SGA)----------------------->PGA

CHECKPOINT (CKPT) 檢查點進程

用來在數據庫里實現同步,實現之前會強制將臟數據從內在里寫到物理文件里。

<1>.會啟動DBWn來寫臟數據(SIGNALLING DBWn at CKPT.)

<2>.完后會更新DATAFILE的HEADER和控制文件的HEADER.而HEADER中有同步所需要的信息,即

CHECKPOINT的信息。

<3>.在ORACLE中,正常情況下,所有文件必須同期性地同步;靠CHECKPOINT來完成。

CKPT(作為后臺進程包含在實例中)------------------DATABASE

(data files,control files,redo log files.)

| |______DBWn

|________LGWR

Archive PROCESS (ARCn) :歸檔進程(可選進程),當設置歸檔模式后,可用來自動備份在線日志,(歸檔日志是重做日志的備份。)

<1>.Automatically archives online redo logs when archiverlog mode is set.

(設置歸檔模式后,將自動備份在線日志)

在處理SQL語句時,注意以下過程:

<1>.用以下進程連接到實例。

用戶進程(USER PROCESS)。

服務器進程(SERVER PROCESS)。

<2>.Oracle服務器進程組件的使用依賴于SQL語句的種類。

[1].查詢語句會返回行。

[2].DML語句會記錄這種改變。

[3].COMMIT保證了事務的RECOVERY.

<3>.并不是所有的SQL語句中所有的后臺進程都會參與。

結論:

Oracle Server. Oracle服務器進程包含一些文件,進程和內存,在執行一條SQL語句時,并非所有這些都會用上,有些進程用于提高數據庫的性能;一些用于當發生軟件或硬件異常時恢復數據庫;或應用于完成其他一些維護數據庫的任務。ORACLE服務器包含ORACLE實例和ORACLE數據庫。Oracle Instance: Oracle實例是用于聯系后臺進程和內在之間的活動,對數據庫進行數據存取前必須先啟動實例,每當實例啟動時,SGA就被分配給它并啟動了一些后臺進程。后臺進程執行10秒操作并監控有些進程以提供更好的性能。和可靠性。Oracle Database: 數據庫包含了系統文件,也稱數據庫文件,其提供了用以存儲數據庫信息的實際物理存儲區域,用數據文件保證了數據一致性,并在當實例發生失敗時恢復數據庫。

上文中為大家詳細介紹了關于Oracle數據庫進程的相關概念的知識,希望大家都能很熟練的掌握這些知識,讓這些知識存在于我們的大腦中,便于我們以后遇到類似的問題時的處理。

評論
熱點專題
>>
相關文章推薦
>>
好吊妞免费视频在线观看,久久亚洲国产人成综合网,久久精品国产2020,欧美精品综合在线
视频人妖一区二区 | 日本按摩高潮A级不卡片 | 伊人久久大香线蕉亚洲五月天色悠 | 一区二区视频在线 | 综合专区视频精品 | 亚洲乱码国产乱码精品精在线网站 |