熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

UNIX和WINDOWS2000上的ORACLE的差異(1)

2013-11-13 15:46:26  來源: Oracle 

  摘要
  
  
  
    ORACLE是廣為人知的Unix硬件平台上的領先的數據庫系統ORACLE用戶和管理員因此熟悉Unix平台上的ORACLE架構以及它上面的工具和技巧並從他們的數據庫得到最大的收益相反Windows上的ORACLE架構就不那麼的被廣為了解這篇文章從一個DBA的角度考察了兩個操作系統之間的關鍵的異同點
  
    簡介
  
    在看了幾本令人失望的這方面的書之後我們寫了這篇文章那些書的通病是試圖做太多的事情--在細節上講述Windows和ORACLE我們的這篇文章假定讀者熟悉Unix平台上的ORACLE DBA的工作因此本文將分析兩個平台上的ORACLE的關鍵的差異而不是從頭教你ORACLE的技巧我們不想把它作為你的一份詳盡的指導或者是手冊的替代品事實上它可能鼓勵你閱讀一些手冊作為數據庫服務器平台它只會涉及一些Unix和Windows上相關的優點這就是本文的目的
  
    范例
  
    這個例子使用linux上的ORACLE i實例名字叫作eightiWindows 上面的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 sprogram
  
    FROM v$process p v$session s WHERE paddr=spaddr
  
    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 VV)
  
   rows selected
  
    每一個後台進程都有一行還有一行信息是與SQL*Plus會話相關的SPID對應相應的UNIX進程號
  
    在WINDOWS上的ORACLE後台進程
  
    回到WINDOWS上從操作系統中察看後台進程有些困難從任務管理器中可能會看到運行著的應用(任務管理器的察看方法在任務欄點擊右鍵選擇任務管理器在服務器上ORACLE可以是可用的運行著的應用卻是不可見的進程表的確顯示一個進程叫做ORACLEEXE察看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 進程(ORACLEEXE)實現的這個進程包括實例所需要實現的每個任務的線程
  
    因此一個線程對應每個ORACLE 後台進程ORACLEEXE進程作為一個服務運行可以從控制面板的服務中察看到 ORACLEServiceSID其他的服務也可以這樣控制
  
    這允許ORACLE在沒有用戶登錄服務器的時候也持續的運行對於共享主處理器資源的所有的進程來說ORACLE能夠達到高速低負荷的上下文切換
  
    在Unix下顯示ORACLE中的進程我們也可以通過輸入簡單的SQL語句來達到為了顯示PID列SQL語句做了些輕微的改動要注意PID匹配警告日志中報告的值
  
  (未完待續)
From:http://tw.wingwit.com/Article/program/Oracle/201311/17281.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.