摘要
ORACLE是廣為人知的Unix硬件平台上的領先的數據庫系統
ORACLE用戶和管理員因此熟悉Unix平台上的ORACLE架構以及它上面的工具和技巧
並從他們的數據庫得到最大的收益
相反
Windows上的ORACLE架構就不那麼的被廣為了解
這篇文章從一個DBA的角度考察了兩個操作系統之間的關鍵的異同點
簡介
在看了幾本令人失望的這方面的書之後
我們寫了這篇文章
那些書的通病是試圖做太多的事情--在細節上講述Windows和ORACLE
我們的這篇文章假定讀者熟悉Unix平台上的ORACLE DBA的工作
因此本文將分析兩個平台上的ORACLE的關鍵的差異而不是從頭教你ORACLE的技巧
我們不想把它作為你的一份詳盡的指導或者是手冊的替代品
事實上它可能鼓勵你閱讀一些手冊
作為數據庫服務器平台
它只會涉及一些Unix和Windows上相關的優點
這就是本文的目的
范例
這個例子使用linux上的ORACLE
i
實例名字叫作eighti
Windows
上面的ORACLE
i的實例名字叫作atei
客戶端對ORACLE的訪問
當客戶端連接到ORACLE時
通常的來說ORACLE服務器的平台與客戶端的應用無關
這實際上很難說清
ORACLE DBA 和系統管理人員更關心操作系統平台
他們有的時候會基於需求(如運行時間和可擴展性)選擇平台
更通常的情況下
他們接受(或是接手)給定的平台並學習從中得到最大受益
關於WINDOWS
值得一提的是Windows
是從Windows NT升級而來
在這兩個操作系統之間有很多的相似點
Windows
也有些新的特性
微軟從NT
的升級途徑見下表
兩個系統間有很多相似點
NT
Windows
NT
Workstation Windows
Professional
NT
Server Windows
Server
NT
Enterprise Edition Windows
Advanced server
Unix Windows
Datacenter server
ORACLE後台進程
下面這句話對於用過ORACLE的人來說是會很熟悉的
每一個運行著的ORACLE數據庫都對應一個ORACLE實例
當一個數據庫在數據庫服務器(不考慮機器的類型)上啟動的時候
ORACLE分配一塊叫做System Global Area (SGA)的內存區域並啟動一個或者多個ORACLE進程
SGA和ORACLE進程合起來稱作ORACLE 實例
――摘自 ORACLE
i Concepts [
L Leverenz
]
處理後台進程是放在首位的
也是不同的操作系統之間最明顯的差異
ORACLE在UNIX上的後台進程
任何連接到UNIX的用戶都可以很容易的察看ORACLE的後台進程
% ps
ef|grep eighti|grep
v grep
oracle
:
:
?
:
ora_pmon_eighti
oracle
:
:
?
:
ora_dbw
_eighti
oracle
:
:
?
:
ora_ckpt_eighti
oracle
:
:
?
:
ora_reco_eighti
oracle
:
:
?
:
ora_lgwr_eighti
oracle
:
:
?
:
ora_smon_eighti
oracle
:
:
?
:
oracleeighti
(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
最後一行的ORACLE進程與一個SQL*Plus會話相關
其他的進程都是後台進程
在ORACLE中我們可以通過輸入SQL*Plus會話察看這些進程
SELECT sid
spid
osuser
s
program
FROM v$process p
v$session s WHERE p
addr=s
paddr
SID SPID OSUSER PROGRAM
oracle
oracle@saic
(PMON)
oracle
oracle@saic
(DBW
)
oracle
oracle@saic
(LGWR)
oracle
oracle@saic
(CKPT)
oracle
oracle@saic
(SMON)
oracle
oracle@saic
(RECO)
oracle
sqlplus@saic
(TNS V
V
)
rows selected
每一個後台進程都有一行
還有一行信息是與SQL*Plus會話相關的
SPID對應相應的UNIX進程號
在WINDOWS
上的ORACLE後台進程
回到WINDOWS上
從操作系統中察看後台進程有些困難
從任務管理器中可能會看到運行著的應用(任務管理器的察看方法
在任務欄點擊右鍵選擇
任務管理器
)
在服務器上ORACLE可以是可用的
運行著的應用卻是不可見的
進程表的確顯示一個進程叫做ORACLE
EXE
察看alert log 顯示ORACLE的所有後台進程都是啟動的
PMON started with pid=
DBW
started with pid=
LGWR started with pid=
CKPT started with pid=
SMON started with pid=
RECO started with pid=
要看實際的後台進程
需要運行額外的軟件
例如
進程察看器
該軟件可以從Windows
CD 中得到(Windows NT 的話可以從資源包中得到)
在Windows
上
ORACLE實例是作為一個單一的Windows
進程(ORACLE
EXE)實現的
這個進程包括實例所需要實現的每個任務的線程
因此一個線程對應每個ORACLE 後台進程
ORACLE
EXE進程作為一個服務運行
可以從控制面板的服務中察看到 ORACLEServiceSID
其他的服務也可以這樣控制
這允許ORACLE在沒有用戶登錄服務器的時候也持續的運行
對於共享主處理器資源的所有的進程來說
ORACLE能夠達到高速
低負荷的上下文切換
在Unix下顯示ORACLE中的進程
我們也可以通過輸入簡單的SQL語句來達到
為了顯示PID列
SQL語句做了些輕微的改動
要注意PID匹配警告日志中報告的值
(未完待續)
From:http://tw.wingwit.com/Article/program/Oracle/201311/17281.html