1. 程式人生 > >【轉】Oracle基礎結構認知—進程及邏輯結構 禮記八目 2017-12-17 19:33:21

【轉】Oracle基礎結構認知—進程及邏輯結構 禮記八目 2017-12-17 19:33:21

sum 活動 lte min system表空間 數據塊 ack 共享數據 and

原文地址:https://www.toutiao.com/i6500477672349499917/

一、 Process Structure進程結構

Oracle有兩種類型的進程: 服務器進程和後臺進程(server processes and background processes)。

1.服務器進程 Oracle 服務器進程是處理用戶與實例連接的事務。

任務是:

(1)分析和執行應用所發出的SQL語句。

(2)從數據文件讀必要的數據到SGA區的共享數據區。

(3)返回必要信息給應用。

2.後臺進程 Oracle系統使用一些附加的進程來處理系統的必須的工作;其中有5個強制性的進程(DBWn,LGWR,CKPT,PMON,SMON)。

(1) DBWn 數據庫寫入器(Database Writer)的任務是將修改,變更,撤銷後的(在內存)數據塊寫回數據文件(data file)中。在某些操作系統中,Oracle可以有兩個BDWn進程.

(2)LGWR 日誌寫入器(Log Writer)用於將SGA區中的存在於redo log buffer(重做日誌緩存區)日誌信息寫入日誌文件(redodlog file)的進程。一般是用戶所作的修改值先記入日誌文件。等到一定時才真正將修改結果寫回數據文件.

(3)CKPT 檢測點(Check Point)在系統運行中當出現查找數據請求時,系統從數據庫中找出這些數據並存入內存區,這樣用戶就可以對這些內存區數據進行修改等。當需要對被修改的數據寫回數據文件時就產生重做日誌的交替寫(Switch),這時就出現校驗點。系統要把內存中灰數據(修改過)塊中的信息寫回磁盤的數據文件中,此外系統還將重做日誌通知控制文件。DBA可以改變參數文件中CHECKPOINT_PROCESS TRUE來使能(使有效或無效)該進程。

(4)SMON 系統監控器(System monitor)是在數據庫(database=control file+data file+redolog file)系統啟動時執行恢復工作的強制性進程。比如在並行服務器模式下(兩臺服務器共用一磁盤組),SMON可以恢復另一臺處於失敗的數據庫;使系統切換到另一臺正常的服務器上。

(5)PMON 進程監控器(Process Monitor)用於終止那些失敗的用戶,釋放該用戶所占用的資源等;回滾當前用戶所執行的事物,重置當前用戶所占用的鎖表和行級鎖,釋放當前用戶保留的其他資源。

(6)ARCn 歸檔器(Archive)可選進程,當數據庫系統處於歸檔(ARCHIVELOG)模式時使用.

(7)RECO 恢復器 (Recover)分布式數據庫(不同地點有不同機器和不同的Oracle系統)模式下使用的可選進程,用於數據不一致時作的恢復工作。在RECO解決恢復前,所作的修改數據的標誌均標為“可疑” 。

(8)LCK0 鎖(LOCK) 可選進程,當在並行服務器模式可出現多個鎖定進程以利於數據庫通信。

(9)調度(Dnnn) 可選進程,在多線程下使用,即對每個在用(D000,...,Dnnn)的通信協議至少創建一個調度進程,每個調度進程負責從所聯接的用戶進程到可用服務器進程的路由請求。把響應返回給合適的用戶進程。

(10) 快照進程(SNPn) 快照進程處理數據庫快照的自動刷新,並通過 DBMS_JOB 包運行預定的數據庫過程. INITsid.ORA 參數 JOB_QUEUE_PROCESS 設置快照進程數, 參數 JOB_QUEUE_INTERVAL 決定快照進程在被喚醒以處理掛起的作業或事務之前休眠的秒數。

(11)並行查詢進程(Pnnn)可根據數據庫的活動並行查詢選項的設置,ORACLE服起動起動或停止查詢進程.這些進程涉及並行索引的創建,表的創建及查詢。啟動的數量與參數 PARALLEL_MIN_SERVERS指定的數量相同,不能超出該參數指定的值。

#查看oracle後臺進程和連接數

1.查看oracle後臺進程

select * from v$bgprocess where paddr <> ‘00‘; 或在linux系統上:ps -ef |grep ora_

技術分享圖片

使用v$bgprocess查看oracle進程

技術分享圖片

使用ps -ef查看oracle進程

2.查看oracle連接數

select count(*) from v$session;

技術分享圖片

3.查看oracle並發連接數

select count(*) from v$session where status=‘ACTIVE‘;

技術分享圖片

4.查看最大連接數

show parameter processes;

技術分享圖片

5.修改連接數,重啟數據庫生效

alter system set processes=500 scope=spfile;

技術分享圖片

二、oracle 邏輯結構

Oracle數據庫包含至少一個表空間,一個表空間對應著多個數據文件(數據表),一個表空間(由多個數據文件組成)包含多個段,一個段包括多個盤區,一個盤區包含若幹個塊,oracle存儲數據的基本單位是塊, 塊的大小可以從2k至64k不等,一般情況下,一塊=8K=7192字節.

表(Table) :存放專門數據而建立和分配的空間。

表空間(Tablespace):是一個或多個數據文件的集合,所有的數據對象都存放在指定的表空間中,但主要存放的是表, 所以稱作表空間。

表空間可分為:

1.系統表空間(System tablespace):是各種不同版本的Oracle必備的部分,存放Oracle系統的一些信息,一般只有一個SYSTEM表空間。

2.臨時表空間(Temporary tablespace ):由於Oracle工作時經常需要一些臨時的磁盤空間,這些空間主要用作查詢時帶有排序(Group by,Order by等)等算法所用,當用完後就立即釋放,對記錄在磁盤區的信息不再使用,因此叫臨時表空間。一般安裝之後只有一個TEMP臨時表空間。

3.工具表空間(Tools tablespace):用於保存Oracle數據庫工具所需的數據庫對象,這些工具表空間存放在工作時所用的專用表。舊的Oracle版本無此表空間。安裝之後的工具表空間是Tools。

4.用戶表空間(Users tablespace):用於存放一些實驗例子用的空間,當然也可以用於存放應用系統的數據。舊版本無Users表空間。現在的用戶表空間為 USERS 。

5.數據及索引表空間 :存放數據及索引的表空間,Oracle7以後都提倡在應用系統中,特別是具有大量數據的系統,要把數據和索引分開存放在不同的分區中,以便提高查詢速度。在安裝後索引表空間可能是INDX。數據表空間就是USERS。

6.回滾段表空間(Rollback Segment):Oracle數據庫系統在運行Insert、Update、Delete時都需要一個磁盤空間來存放恢復信息(Undo Information),以便在進行恢復時能將原來信息讀出來。安裝後的回滾段表空間是RBS表空間。數據庫管理員也可根據應用的需要建立另外的回滾段 表空間。 Oracle 以表空間來存儲邏輯數據並以物理數據相連。

#查詢表空間剩余情況

select tablespace_name, sum(bytes) / 1024 / 1024 / 1024 AS G

from dba_data_files

group by tablespace_name

order by tablespace_name;

技術分享圖片

【轉】Oracle基礎結構認知—進程及邏輯結構 禮記八目 2017-12-17 19:33:21