Oracle 9i和10g安裝后的基本環(huán)境與服務(wù)
Oracle數(shù)據(jù)庫安裝后的基本環(huán)境主要涉及安裝后的程序組、DBMS包含的物理文件、與數(shù)據(jù)庫服務(wù)器相關(guān)的服務(wù)、Oracle默認的帳戶/口令以及在MS-DOS,命令行中可使用的命令等。了解和掌握這些基本環(huán)境對正確使用和深入掌握Oracle技術(shù)是十分重要的。
安裝后的程序組
Oracle Database 10g安裝后的程序組Oracle-OraDb10g_ home1包括:
·Oracle Installation Products
·集成管理工具
·配置和移植工具
·應(yīng)用程序開發(fā)
(1)Oracle Installation Products
主要包括:
·Universal Installer:通用安裝器
·通用安裝程序概念指南
(2)集成管理工具
主要包括:
·Oracle Directory Manager:一個基于Java的管理工具,用于管理Oracle Internet Directory。
·Wallet Manager:Wallet Manager可創(chuàng)建加密的Oracle wallet,從而增強其安全性。
(3)配置和移植工具
·Administration Assistant for Windows:可用于管理數(shù)據(jù)庫的實例和管理員角色等。
·Database Configuration
Assistant:數(shù)據(jù)庫配置助手,它可以創(chuàng)建數(shù)據(jù)庫,在現(xiàn)有數(shù)據(jù)庫中配置數(shù)據(jù)庫選項,刪除數(shù)據(jù)庫和管理數(shù)據(jù)庫模板。
·Database Upgrade Assistant:數(shù)據(jù)庫更新助手,幫助用戶升級本地數(shù)據(jù)庫。
·Locale Builder:Oracle Locale
Builder是一個用于定制本地數(shù)據(jù)定義的方便工具。利用該工具可查看創(chuàng)建語言、字符集等。主要功能包括:語言設(shè)置、地域設(shè)置、字符集設(shè)置和語法設(shè)置等。
·Microsoft ODBC Administrator:是ODBC數(shù)據(jù)源管理器。
·Net Configuration
Assistant:網(wǎng)絡(luò)配置助手。使用該助手可進行監(jiān)聽程序配置,命名方法配置,本地NET服務(wù)名配置等。它是進行Oracle網(wǎng)絡(luò)連接時必需的連接配置工具。
·Net Manager:使用該工具可進行網(wǎng)絡(luò)配置,如數(shù)據(jù)庫標識服務(wù)的配置、命名方法配置和監(jiān)聽程序的創(chuàng)建與配置等。該工具與Net Configuration Assistant是網(wǎng)絡(luò)連接配置的主要工具。
(4)應(yīng)用程序開發(fā)
SQL*Plus:它提供了一個編輯、運行SQL和PL/SQL并與數(shù)據(jù)庫進行交互的環(huán)境。
Oracle數(shù)據(jù)庫服務(wù)
Windows平臺上的Oracle不同于其他平臺,它是以服務(wù)的形式呈現(xiàn)的,而在Unix中Oracle是以進程形式運行的。所有Oracle服務(wù)器及其后臺進程都是在Oracle.exe進程下以線索的方式運行。
當Oracle Database 10g系統(tǒng)安裝完成后,在Windows 2000/XP/2003環(huán)境下自動增加了許多數(shù)據(jù)庫服務(wù)。在“管理工具”→“服務(wù)”中,可看到多個以O(shè)racle開頭的服務(wù),這些都是與Oracle數(shù)據(jù)庫服務(wù)器有關(guān)的服務(wù)。
Oracle數(shù)據(jù)庫的運行管理都與其服務(wù)密切相關(guān),所以,我們應(yīng)充分理解Oracle服務(wù)的作用。
1. Oracle服務(wù)
Oracle服務(wù)對數(shù)據(jù)庫的運行和系統(tǒng)管理來說至關(guān)重要。在Windows中,Oracle以服務(wù)的形式來啟動每個實例。服務(wù)是一個在Windows注冊表中注冊并由Windows管理的可執(zhí)行進程(Process)。注冊表自動跟蹤并記錄每個所創(chuàng)建服務(wù)的安全信息。Oracle也使用服務(wù)來對其數(shù)據(jù)庫操作提供支持,這類似于Windows服務(wù)。Oracle服務(wù)是在數(shù)據(jù)庫的創(chuàng)建過程中建立并與Oracle數(shù)據(jù)庫關(guān)聯(lián)。Oracle服務(wù)用于創(chuàng)建、連接和使用一個Oracle數(shù)據(jù)庫實例。在注冊表中通過“編輯”菜單的“查找”選項,查找“Oracle”就可以查找各個服務(wù)的信息。
服務(wù)的優(yōu)點之一是簡化了啟動數(shù)據(jù)庫的過程。當計算機重新啟動時,系統(tǒng)自動啟動并配置數(shù)據(jù)庫,不需要用戶的參與,這是由服務(wù)來完成的。
服務(wù)的另一個優(yōu)點是它們必須由擁有指定權(quán)限的用戶來啟動。例如,OracleManagementServer是Oracle中的一個服務(wù),要停止該服務(wù)必須由帳戶sysman來執(zhí)行,其默認口令為:oem_temp。
服務(wù)啟動的是后臺進程,這類似于Unix中的守護進程。當Oracle數(shù)據(jù)庫服務(wù)啟動時,系統(tǒng)中沒有典型的Oracle進程運行。相反,該服務(wù)進程等待來自SQL*Plus的最初連接,這引起一個前臺進程啟動并創(chuàng)建該系統(tǒng)全局區(qū)域SGA的后臺進程。當Oracle數(shù)據(jù)庫關(guān)閉時,所有創(chuàng)建的進程被終止。但是該進程自身仍在繼續(xù)運行,等待下一個連接請求和啟動命令。這就是當我們通過Windows中的Oracle Service啟動了數(shù)據(jù)庫實例,但在SQL*Plus或Oracle企業(yè)管理器中關(guān)閉了數(shù)據(jù)庫實例后,然而Windows中的OracleService服務(wù)仍處于“已啟動”狀態(tài)的原因。只有停止Windows中的Oracle Service服務(wù)(即進程),才能保證不啟動數(shù)據(jù)庫。當然,當OracleService服務(wù)停止后,還可通過其他方式啟動數(shù)據(jù)庫實例。有多種方式可實現(xiàn)對Windows中有關(guān)Oracle服務(wù)的管理,具體內(nèi)容可詳見后面相關(guān)章節(jié)。
Oracle網(wǎng)絡(luò)監(jiān)聽器(Net Listener)是另一個重要的服務(wù)。該服務(wù)必須在用戶能連接到Oracle數(shù)據(jù)庫之前啟動運行。該進程關(guān)閉與否并不影響已經(jīng)在客戶端與數(shù)據(jù)庫之間建立起的連接和用戶對數(shù)據(jù)庫的使用。以SQL*Plus為例,當Oracle網(wǎng)絡(luò)監(jiān)聽器的服務(wù)OracleTNSListener啟動之前,啟動SQL*Plus并連接至數(shù)據(jù)庫,系統(tǒng)出現(xiàn)錯誤信息“ORA-12541:TNS:nolistener”。原因是沒有啟動監(jiān)聽服務(wù)或者監(jiān)聽器損壞;當Oracle網(wǎng)絡(luò)監(jiān)聽器的服務(wù)啟動SQL*Plus并連接至數(shù)據(jù)庫后,若停止OracleTNSListener服務(wù),則對SQL*Plus沒有任何影響,只要沒有斷開連接,SQL*Plus仍可與數(shù)據(jù)庫進行數(shù)據(jù)交互。其中,TNS(Transparent Network Substrate)代表透明網(wǎng)絡(luò)層。
2.可用的Oracle服務(wù)
根據(jù)安裝的產(chǎn)品不同,在Windows中產(chǎn)生的Oracle服務(wù)也不同,其實也正是這一點說明了數(shù)據(jù)庫服務(wù)器與其所使用的操作系統(tǒng)是緊密相關(guān)的。
Oracle Database 10g安裝后生成多個服務(wù),這些都是Oracle Database 10g運行中所必需的。
通常當創(chuàng)建數(shù)據(jù)庫并完成安裝后,以下兩個主要服務(wù)會自動啟動:
·Oracle Service (Oracle數(shù)據(jù)庫服務(wù))
·OracleTNSListener (Oracle數(shù)據(jù)庫監(jiān)聽服務(wù))
如果安裝了Oracle Enterprise Manager Database
Control,則OracleDBConsole服務(wù)自動啟動。若配置了Automatic Storage
Management,則OracleCSService和OracleASMService+ASM服務(wù)也會出現(xiàn)在服務(wù)列表中。
與Oracle 10g不同,Oracle9i安裝完成后產(chǎn)生12個與其有關(guān)的服務(wù),為便于比較,下面是幾個與Oracle9i數(shù)據(jù)庫相關(guān)的服務(wù):
(1)Oracle Service
數(shù)據(jù)庫服務(wù)。該服務(wù)為數(shù)據(jù)庫實例系統(tǒng)標識符SID而創(chuàng)建,SID是Oracle安裝期間輸入的數(shù)據(jù)庫服務(wù)名字(如OracleServiceTEST)。該服務(wù)是強制性的,它擔(dān)負著啟動數(shù)據(jù)庫實例的任務(wù)。
如果沒有啟動該服務(wù),則當使用任何Oracle工具如SQL*Plus時,將出現(xiàn)ORA-12560的錯誤信息提示。該信息內(nèi)容是“ORA-12560 TNS:
protocol adapter error”,這也意味著數(shù)據(jù)庫管理系統(tǒng)的管理對象沒有啟動,即數(shù)據(jù)庫沒有工作。當系統(tǒng)中安裝了多個數(shù)據(jù)庫時,會有多個Oracle Service,SID會因數(shù)據(jù)庫不同而不同。一般將服務(wù)的啟動類型設(shè)置為“自動”,這樣,當計算機系統(tǒng)啟動后該服務(wù)自動啟動。
(2)OracleTNSListener
監(jiān)聽器服務(wù)。例如,Oracle
OraHome92TNSListener承擔(dān)著監(jiān)聽并接受來自客戶端應(yīng)用程序的連接請求的任務(wù)。當Windows計算機重新啟動后,該服務(wù)將自動啟動。如果該服務(wù)沒有啟動,那么當你使用Oracle企業(yè)管理器控制臺或一些圖形化的工具進行連接時,將出現(xiàn)錯誤信息“ORA-12541 TNS: no listener”。但對一般的連接并無影響。例如,在MS-DOS提示符中用sqlplus/ @net_service_name形式啟動SQL*Plus并進行連接時,則不會出現(xiàn)錯誤信息提示。一般將該服務(wù)的啟動類型設(shè)置為“自動”,這樣,當計算機系統(tǒng)啟動后該服務(wù)自動啟動。也可通過手動方式啟動服務(wù):C:>net start OracleTNSListener。
注意 在連接上出現(xiàn)的問題,多數(shù)都與監(jiān)聽器有關(guān)。
(3)OracleAgent
代理服務(wù)。該服務(wù)是Oracle企業(yè)管理器產(chǎn)品的一部分。執(zhí)行作業(yè)和監(jiān)視Oracle服務(wù)性能及監(jiān)聽器、數(shù)據(jù)庫、Oracle HTTP
Server和Oracle應(yīng)用程序等目標需要使用智能代理(Intelligent Agent)。智能代理還為Capacity
Planner和Performance Manager等收集靜態(tài)數(shù)據(jù)。Capacity Planner和Performance
Manager是用于Oracle診斷包的數(shù)據(jù)收集應(yīng)用程序。一般將該服務(wù)的啟動類型設(shè)置為“自動”,這樣,當計算機系統(tǒng)啟動后該服務(wù)自動啟動。
如果該代理服務(wù)沒有啟動,則在啟動OEM Console時,系統(tǒng)無法通過OracleAgent找到數(shù)據(jù)庫所在的節(jié)點。因此,在使用Enterprise Manager Console打開控制臺時,因無法找到數(shù)據(jù)庫所在的節(jié)點而不能顯示該數(shù)據(jù)庫。OracleAgent是否啟動也影響著數(shù)據(jù)庫的遠程連接。
在網(wǎng)絡(luò)中,Oracle Intelligent
Agent是一個在遠程節(jié)點上的自治進程。代理作為服務(wù)與Oracle數(shù)據(jù)庫服務(wù)器駐留在同一個節(jié)點上,并提供和完成下列功能:
·提供本地服務(wù)或調(diào)用依賴于操作系統(tǒng)的服務(wù),以便與本地管理的目標節(jié)點交互。
·檢查事件,向OEM報告排隊的結(jié)果事件。
·運行Oracle Enterprise Manager作業(yè),搜集其結(jié)果和輸出,并為結(jié)果排隊。
·處理數(shù)據(jù)集合。
·取消那些由控制臺或其他應(yīng)用程序控制的作業(yè)或事件等。
(4)OracleHTTPServer
該服務(wù)使用端口號3339,為基于瀏覽器的企業(yè)管理器及資料檔案庫啟動Oracle HTTP Server。它對應(yīng)于Apache Server,即Web
Server。它也是運行iSQL*Plus所必需的中間層。可根據(jù)實際情況將該服務(wù)的啟動類型設(shè)置為“自動”或“手動”。當設(shè)置為“自動”后,Oracle HTTPServer將隨著計算機的啟動而自動啟動;否則,可通過菜單組中的“Start HTTP Server powered by Apache”來啟動Oracle HTTP Server。
(5)OracleManagementServer OMS(Oracle Management Server)服務(wù)在客戶端與所管理目標之間起著集中管理和分布式的控制作用,與代理協(xié)同工作,處理監(jiān)視信息和作業(yè)信息并使用管理資料檔案庫存儲其管理數(shù)據(jù)。
當系統(tǒng)安裝完成后,OracleManagementServer并沒有出現(xiàn)在Windows的“服務(wù)”窗口中,只有當使用程序組“Configuration
and Migration Tools”中的“Enterprise Manager Configuration
Assistant”創(chuàng)建了資料檔案庫后,系統(tǒng)才隨之創(chuàng)建并啟動該服務(wù)。若要停止該服務(wù),也就是停止Oracle Management
Server必須提供超級管理員身份證明。即管理員的帳戶和口令,默認的帳戶和口令為:sysman/oem_temp。Oracle企業(yè)管理器只有在創(chuàng)建了資料檔案庫后才能以sysman帳戶登錄,否則只能以獨立形式直接使用和管理本地數(shù)據(jù)庫。
如果要啟動、關(guān)閉或設(shè)置服務(wù)的狀態(tài),也可在DOS命令行中使用omsntsrv.exe命令完成。具體命令的使用格式可通過如下命令查看:omsntsrv -h。
只有安裝了Oracle企業(yè)管理器,以下服務(wù)才會被創(chuàng)建并自動啟動:
·OracleAgent
·OracleHTTPServer
·OracleManagementServer
以上是Oracle9i的五個主要服務(wù)。Oracle9i的其他服務(wù)如下。
(6)OracleMTSRecoveryService
針對分布式環(huán)境下的COM/COM+對象和事務(wù),Microsoft Transaction
Server作為應(yīng)用服務(wù)器用于中間層。OracleMTSRecoveryService允許Oracle9i數(shù)據(jù)庫在Microsoft Transaction
Server-coordinated事務(wù)中用于資源管理器,并為Oracle解決方案與Microsoft Transaction
Server之間提供強大的集成手段。
(7)OracleServiceOEMREP
OEMREP是系統(tǒng)為Oracle企業(yè)管理器而創(chuàng)建的資料檔案庫,OracleServiceOEMREP為對應(yīng)的資料檔案庫服務(wù)。它與OracleService SID的作用等同。OEMREP實際上是一個數(shù)據(jù)庫,用在多節(jié)點的數(shù)據(jù)庫管理中,為三層的Oracle體系結(jié)構(gòu)存儲管理信息。在Oracle9i之前,Oracle的資料檔案庫是在某個具體數(shù)據(jù)庫中創(chuàng)建的,不是單獨創(chuàng)建的。
(8)OracleClientCache
用于客戶端高速緩沖存儲器服務(wù)。
(9)OraclePagingServer
尋呼服務(wù)器服務(wù)。Oracle企業(yè)管理器的尋呼服務(wù)器(Paging Server)允許管理員接受關(guān)于注冊的事件和預(yù)定作業(yè)的尋呼通知。
(10)OracleSNMPPeerMasterAgent
簡單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management
Protocol,SNMP),它是一個標準的互聯(lián)網(wǎng)協(xié)議。它能使網(wǎng)絡(luò)中的節(jié)點針對網(wǎng)絡(luò)設(shè)備和應(yīng)用程序訪問其狀態(tài)和活動。所有發(fā)給網(wǎng)絡(luò)節(jié)點的請求都由同一個主代理(Master Agent)來處理。
(11)OracleSNMPPeerEncapsulator
該服務(wù)只有在系統(tǒng)中配置并安裝了一個以上的SNMP副代理時,才需要封裝器(Encapsulator)。
事實上,除了在“管理工具”→“服務(wù)”中啟動或停止以上數(shù)據(jù)庫服務(wù)外,也可在DOS提示符中通過使用NET命令來啟動或停止。格式如下所示:
·啟動服務(wù):net start
·停止服務(wù):net stop
·查找?guī)椭簄et-h
3.Oracle Database 10g服務(wù)的啟動與停止
啟動Oracle服務(wù)有三種方式。
(1)通過“控制面板”啟動Oracle服務(wù),步驟如下:
選擇“開始”→“控制面板”→“管理工具”→“服務(wù)”。
找到要啟動的Oracle服務(wù),單擊“啟動”。
(2)通過MS-DOS命令啟動Oracle服務(wù),步驟如下:
在“附件”中打開MS-DOS命令提示符窗口。
在窗口中輸入:net start Oracle。
(3)通過Oracle Administration Assistant for Windows啟動Oracle服務(wù) ,步驟如下:
選擇“開始”→“程序”→“Oracle-OraDb10g_home1”→“配置和移植工具”→“Oracle Administration Assistant
for Windows”。
在主機名中找到要啟動的數(shù)據(jù)庫SID并用右鍵單擊“Oracle”。
選擇“啟動服務(wù)”即可。
Oracle服務(wù)的停止與啟動的操作步驟類似。
4.基于Oracle性能的Windows配置
合理地配置Windows操作系統(tǒng)與硬件和Oracle數(shù)據(jù)庫服務(wù)器是同等重要的。Windows中不同的服務(wù)或進程對Oracle數(shù)據(jù)庫服務(wù)器的影響是不同的。過多地安裝軟件會對數(shù)據(jù)庫服務(wù)器的性能產(chǎn)生負面影響。
(1)不可以在數(shù)據(jù)庫服務(wù)器上運行
為保持最佳的運行速度,下列各項不能在數(shù)據(jù)庫服務(wù)器上運行:
·DNS服務(wù)器:出于維護的目的必須停止該服務(wù)器,域命名不再工作。
·域控制器:與上面的DNS服務(wù)器原因相同,數(shù)據(jù)庫服務(wù)器不應(yīng)該作為一個主域控制器或輔助域控制器。
·路由器:數(shù)據(jù)庫服務(wù)器不應(yīng)當作為一個網(wǎng)絡(luò)路由器。
·文件/打印服務(wù)器:由于這些功能消耗CPU和內(nèi)存資源以及帶寬,所以數(shù)據(jù)庫服務(wù)器不能作為文件服務(wù)器和打印服務(wù)器。
·終端服務(wù):這些類型的服務(wù)需要大量的內(nèi)存,并依賴于用戶的裝載。
下列這些服務(wù)對數(shù)據(jù)庫服務(wù)器和利用寶貴的系統(tǒng)資源是多余的,應(yīng)該關(guān)閉:
·License Logging Service
·Plug and Play
·Remote Access Autodial Manager
·Remote Access Connection Manager
·Remote Access Server
·Telephony Service
刪除所有不使用的網(wǎng)絡(luò)協(xié)議,只保留Oracle所使用的協(xié)議。
(2)可以在數(shù)據(jù)庫服務(wù)器上運行
下列各項可以在數(shù)據(jù)庫服務(wù)器上運行:
·任何獲取性能信息的監(jiān)視軟件。Oracle提供了企業(yè)管理器和性能監(jiān)視功能。
·在操作系統(tǒng)級上的安全和審計軟件。
·下列在數(shù)據(jù)庫服務(wù)器上的服務(wù)對正常操作是必需的,不應(yīng)該關(guān)閉:
·Alerter
·Computer Browser
·EventLog
·Messenger
·OracleServiceSID
·OracleHOME_NAMETNSListener
·Remote Procedure Call (RPC) Service
·Server
·Spooler
·TCP/IP NetBIOS Helper
·Workstation
關(guān)閉以上任何一項服務(wù)都會引起系統(tǒng)問題。由于Windows的版本不同,上述各項服務(wù)可能會有所變化。另外,一般不應(yīng)選擇普通PC機作為服務(wù)器,而應(yīng)該選擇磁盤陣列組(RAID);否則,會極大影響系統(tǒng)性能。
