国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Oracle > 正文

UNIX 和 WINDOWS2000 上的 ORACLE 的差異

2024-08-29 13:31:08
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

 

 

ian adam,          saic ltd

david stien,       saic ltd

翻譯:fenng       

 

摘要

oracle是廣為人知的unix硬件平臺(tái)上的領(lǐng)先的數(shù)據(jù)庫(kù)系統(tǒng)。oracle用戶和管理員因此熟悉unix平臺(tái)上的oracle架構(gòu)以及它上面的工具和技巧,并從他們的數(shù)據(jù)庫(kù)得到最大的收益。相反,windows上的oracle架構(gòu)就不那么的被廣為了解。這篇文章從一個(gè)dba的角度考察了兩個(gè)操作系統(tǒng)之間的關(guān)鍵的異同點(diǎn)。

 

簡(jiǎn)介

在看了幾本令人失望的這方面的書之后,我們寫了這篇文章。那些書的通病是試圖做太多的事情--在細(xì)節(jié)上講述windows和oracle。我們的這篇文章假定讀者熟悉unix平臺(tái)上的oracle dba的工作。因此本文將分析兩個(gè)平臺(tái)上的oracle的關(guān)鍵的差異而不是從頭教你oracle的技巧。我們不想把它作為你的一份詳盡的指導(dǎo)或者是手冊(cè)的替代品,事實(shí)上它可能鼓勵(lì)你閱讀一些手冊(cè)。作為數(shù)據(jù)庫(kù)服務(wù)器平臺(tái),它只會(huì)涉及一些unix和windows上相關(guān)的優(yōu)點(diǎn),這就是本文的目的。

 

范例

這個(gè)例子使用linux上的oracle 8i,實(shí)例名字叫作eighti。windows 2000上面的oracle 8i的實(shí)例名字叫作atei。

 

客戶端對(duì)oracle的訪問

當(dāng)客戶端連接到oracle時(shí),通常的來(lái)說oracle服務(wù)器的平臺(tái)與客戶端的應(yīng)用無(wú)關(guān)。這實(shí)際上很難說清。 oracle dba 和系統(tǒng)管理人員更關(guān)心操作系統(tǒng)平臺(tái),他們有的時(shí)候會(huì)基于需求(如運(yùn)行時(shí)間和可擴(kuò)展性)選擇平臺(tái)。 更通常的情況下,他們接受(或是接手)給定的平臺(tái)并學(xué)習(xí)從中得到最大受益。

 

關(guān)于windows 2000

值得一提的是windows 2000是從windows nt升級(jí)而來(lái)。在這兩個(gè)操作系統(tǒng)之間有很多的相似點(diǎn),windows 2000 也有些新的特性。微軟從nt4.0的升級(jí)途徑見下表。

 

兩個(gè)系統(tǒng)間有很多相似點(diǎn):

-------------------------------------------------------------------------------------

nt 4.0                                                     windows 2000

-------------------------------------------------------------------------------------

nt 4.0 workstation                                  windows 2000 professional

nt 4.0 server                                         windows 2000 server

nt 4.0 enterprise edition                        windows 2000 advanced server

unix                                                         windows 2000 datacenter server

-------------------------------------------------------------------------------------

 

 

oracle后臺(tái)進(jìn)程

下面這句話對(duì)于用過oracle的人來(lái)說是會(huì)很熟悉的:"每一個(gè)運(yùn)行著的oracle數(shù)據(jù)庫(kù)都對(duì)應(yīng)一個(gè)oracle實(shí)例,當(dāng)一個(gè)數(shù)據(jù)庫(kù)在數(shù)據(jù)庫(kù)服務(wù)器(不考慮機(jī)器的類型)上啟動(dòng)的時(shí)候,oracle分配一塊叫做system global area (sga)的內(nèi)存區(qū)域并啟動(dòng)一個(gè)或者多個(gè)oracle進(jìn)程。sga和oracle進(jìn)程合起來(lái)稱作oracle 實(shí)例。"――摘自 oracle 8i concepts [4 l leverenz, 1999]。處理后臺(tái)進(jìn)程是放在首位的,也是不同的操作系統(tǒng)之間最明顯的差異。

 

oracle在unix上的后臺(tái)進(jìn)程

任何連接到unix的用戶都可以很容易的察看oracle的后臺(tái)進(jìn)程:

 

% ps -ef|grep eighti|grep -v grep

 

oracle8 18451     1  0 16:37:18 ?        0:00 ora_pmon_eighti

oracle8 18453     1  0 16:37:19 ?        0:00 ora_dbw0_eighti

oracle8 18457     1  0 16:37:19 ?        0:04 ora_ckpt_eighti

oracle8 18461     1  0 16:37:19 ?        0:00 ora_reco_eighti

oracle8 18455     1  0 16:37:19 ?        0:02 ora_lgwr_eighti

oracle8 18459     1  0 16:37:19 ?        0:01 ora_smon_eighti

oracle8 19168 19167  0 16:43:46 ?        0:00 oracleeighti

                           (description=(local=yes)(address=(protocol=beq)))

 

最后一行的oracle進(jìn)程與一個(gè)sql*plus會(huì)話相關(guān),其他的進(jìn)程都是后臺(tái)進(jìn)程。在oracle中我們可以通過輸入sql*plus會(huì)話察看這些進(jìn)程:

 

select sid, spid, osuser, s.program

from v$process p, v$session s where p.addr=s.paddr;

 

         sid spid    osuser             program

    -------------------------------------------------------------------

         1 18451     oracle8              [email protected] (pmon)

         2 18453     oracle8              [email protected] (dbw0)

         3 18455     oracle8              [email protected] (lgwr)

         4 18457     oracle8              [email protected] (ckpt)

         5 18459     oracle8              [email protected] (smon)

         6 18461     oracle8              [email protected] (reco)

         7 19168     oracle8              [email protected](tns v1-v3)

7 rows selected.

 

每一個(gè)后臺(tái)進(jìn)程都有一行,還有一行信息是與sql*plus會(huì)話相關(guān)的,spid對(duì)應(yīng)相應(yīng)的unix進(jìn)程號(hào)。

 

 

在windows2000上的oracle后臺(tái)進(jìn)程

回到windows上,從操作系統(tǒng)中察看后臺(tái)進(jìn)程有些困難。從任務(wù)管理器中可能會(huì)看到運(yùn)行著的應(yīng)用(任務(wù)管理器的察看方法:在任務(wù)欄點(diǎn)擊右鍵選擇"任務(wù)管理器")。在服務(wù)器上orac

le可以是可用的,運(yùn)行著的應(yīng)用卻是不可見的。進(jìn)程表的確顯示一個(gè)進(jìn)程叫做oracle.exe,

察看alert log 顯示oracle的所有后臺(tái)進(jìn)程都是啟動(dòng)的:

 

pmon started with pid=2

dbw0 started with pid=3

lgwr started with pid=4

ckpt started with pid=5

smon started with pid=6

reco started with pid=7

 

要看實(shí)際的后臺(tái)進(jìn)程,需要運(yùn)行額外的軟件,例如,進(jìn)程察看器。該軟件可以從windows

2000 cd 中得到(windows nt 的話可以從資源包中得到)。

 

在windows 2000上,oracle實(shí)例是作為一個(gè)單一的windows 2000進(jìn)程(oracle.exe)實(shí)現(xiàn)的。這個(gè)進(jìn)程包括實(shí)例所需要實(shí)現(xiàn)的每個(gè)任務(wù)的線程。

因此一個(gè)線程對(duì)應(yīng)每個(gè)oracle 后臺(tái)進(jìn)程。oracle.exe進(jìn)程作為一個(gè)服務(wù)運(yùn)行,可以從控制面板的服務(wù)中察看到 oracleservicesid。其他的服務(wù)也可以這樣控制。

 

這允許oracle在沒有用戶登錄服務(wù)器的時(shí)候也持續(xù)的運(yùn)行。對(duì)于共享主處理器資源的所有的進(jìn)程來(lái)說,oracle能夠達(dá)到高速、低負(fù)荷的上下文切換。

 

在unix下顯示oracle中的進(jìn)程,我們也可以通過輸入簡(jiǎn)單的sql語(yǔ)句來(lái)達(dá)到。為了顯示pid列,sql語(yǔ)句做了些輕微的改動(dòng)。要注意pid匹配警告日志中報(bào)告的值。

 

select s.sid, p.pid, p.spid signaled, s.osuser, s.program

from v$process p, v$session s

where p.addr=s.paddr;

 

sid      pid threadid  osuser          program

---- ------- --------- --------------- --------------------

   1       2 1088      system          oracle.exe

   2       3 1172      system          oracle.exe

   3       4 1180      system          oracle.exe

   4       5 1192      system          oracle.exe

   5       6 1212      system          oracle.exe

   6       7 1220      system          oracle.exe

   7       8 1200      administrator   sqlplusw.exe

7 rows selected.

 

每一個(gè)后臺(tái)進(jìn)程都有一行,還有一行信息是與sql*plus會(huì)話相關(guān)。程序名字并沒有指明后臺(tái)進(jìn)程的名字,和在unix 中一樣,這些名字可以通過和v$bgprocess 連接得到。

 

select s.sid sid, p.spid threadid, p.program processname, bg.name name

from v$process p, v$session s, v$bgprocess bg

where p.addr = s.paddr

and  p.addr = bg.paddr

and  bg.paddr <> '00' ;

 

sid threadid  processname     name

---------- --------- --------------- -------------

         1 1088      oracle.exe      pmon

         2 1172      oracle.exe      dbw0

         3 1180      oracle.exe      lgwr

         4 1192      oracle.exe      ckpt

         5 1212      oracle.exe      smon

         6 1220      oracle.exe      reco

6 rows selected.

 

 

斷開會(huì)話

提交sql命令 alter system disconnect session可以斷開會(huì)話。有的時(shí)候需要在操作系統(tǒng)級(jí)別斷開會(huì)話,在unix上,通過kill命令實(shí)現(xiàn),前面例子中的sql會(huì)話可以通過輸入unix命令斷開:

 

kill -9 19168

 

在windows 2000上可以用orakill斷開一個(gè)會(huì)話。orakill是windows平臺(tái)上的oracle的一個(gè)特定命令,默認(rèn)安裝在$oracle_home/bin下。在命令行下輸入orakill可以察看它的用法。前面例子中的sql*plus會(huì)話可以通過輸入如下的命令斷開:

 

orakill atei 1200

kill of thread id 1200 in instance atei successfully signaled.

 

在windows 2000中,如果一個(gè)斷開的會(huì)話標(biāo)記為 "marked for kill"但是沒被刪除,orakill會(huì)終止它。要記住殺掉一個(gè)后臺(tái)進(jìn)程總不是個(gè)好主意,尤其是windows上,會(huì)導(dǎo)致進(jìn)程崩潰,甚至導(dǎo)致數(shù)據(jù)庫(kù)不可用。

 

windows 2000 注冊(cè)表

和其他的windows 2000中的應(yīng)用那樣,oracle的大多數(shù)的設(shè)定都在注冊(cè)表中。應(yīng)該看看hkey_local_machine oftware/oracle下面都有什么。這些參數(shù)中的一些在后面會(huì)詳細(xì)討論。和oracle服務(wù)相關(guān)的參數(shù)和其他的服務(wù)一樣存貯在同樣的位置:

hkey_local_machine ystem/currentcontrolset ervices。

 

 

環(huán)境變量

在unix中兩個(gè)最重要的變量是oracle_home和oracle_sid。一旦這些變量設(shè)定的話,應(yīng)用就可以運(yùn)行并聯(lián)接到本地?cái)?shù)據(jù)庫(kù)。 通常也把$oracle_home/bin 包含在 $path

中以便在使用oracle 工具(如:sqlplus)的時(shí)候免去輸入全路徑的麻煩。

 

windows 2000 中可以打開命令行設(shè)定oracle_sid 變量再聯(lián)接到本地?cái)?shù)據(jù)庫(kù)。其他的值可以從注冊(cè)表中得到。

 

multiple oracle homes

windows 2000全面支持多個(gè)oracle home。以前在windows nt上這是個(gè)主要的問題,一直到oracle8.0.4以后才開始支持。最初得對(duì)這一點(diǎn)的支持很差勁。oracle home selector, oracle8i的一個(gè)新的應(yīng)用工具, 改變環(huán)境路徑,使選擇的oracle home 路徑作為主的home。只是簡(jiǎn)單的改變系統(tǒng)路徑,把oracle選擇的bin目錄放在啟動(dòng)路徑中。

 

每一個(gè) bin目錄都有一個(gè)oracle.key文件,指明在注冊(cè)表中oracle程序在哪里可以找oracle_home 和其他的環(huán)境變量。如果在服務(wù)器上面只有一個(gè)數(shù)據(jù)庫(kù),通常在注冊(cè)表中設(shè)定oracle_sid。不過,不要設(shè)定 oracle_home,對(duì)于oracle產(chǎn)品來(lái)說根本不需要,可能會(huì)導(dǎo)致問題。

 

文件系統(tǒng)

多 oracle home的支持允許在windows上面實(shí)現(xiàn) unix 的ofa 標(biāo)準(zhǔn)。這極大的簡(jiǎn)化了從unix的過渡。ofa目錄樹的頂層的名字有差異,不過主要的子目錄和文件名字在兩種操作系統(tǒng)中都是一致的。

 

 

unix

nt

oracle_base

/oracle/app/oracle

d:/oracle

oracle_home

/oracle/app/oracle/product/8.1.7

d:/oracle/ora817

admin directories

/oracle/app/oracle/admin

d:/oracle/admin

database files

/db01/oradata/sid

d:/oracle/oradata id

 

/db02/oradata/sid

f:/oracle/oradata id

 

/db03/oradata/sid

g:/oracle/oradata id

 

 

服務(wù)管理器

從oracle 8i開始,服務(wù)管理器的名字在不同的平臺(tái)上都一致了,都叫做svrmgrl。以前在

windows nt上oracle的執(zhí)行文件名字隨著版本變動(dòng)而改變,對(duì)于那些在多平臺(tái)上工作的人來(lái)說這很令人討厭,尤其是在使用一些命令(imp、exp等)的時(shí)候。

 

------------------------------------------------------------------

oracle 服務(wù)器版本          windows 服務(wù)器管理器可執(zhí)行文件

------------------------------------------------------------------

 7.3                             svrmgr23

 8.0                             svrmgr30

 8.1                             svrmgrl

------------------------------------------------------------------

 

要注意server manager 正在逐步被淘汰(譯者注:9i中徹底淘汰了svrmgrl),一些額外的功能被加到了sql*plus 中。

 

parti. to be continued…..

 
,歡迎訪問網(wǎng)頁(yè)設(shè)計(jì)愛好者web開發(fā)。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 百色市| 神池县| 丽水市| 梅州市| 吉木乃县| 桦南县| 嘉禾县| 漳州市| 屏东县| 井冈山市| 左贡县| 格尔木市| 泰和县| 民和| 昌都县| 德惠市| 安西县| 金寨县| 讷河市| 泸水县| 闽侯县| 宾川县| 金沙县| 奉贤区| 延津县| 正安县| 竹溪县| 临潭县| 建平县| 沛县| 修文县| 图木舒克市| 水城县| 云安县| 台南县| 邵阳市| 刚察县| 乌苏市| 永吉县| 东源县| 杭锦后旗|