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