Oracle安裝後的基本環境主要涉及安裝後的程式組、DBMS包含的物理檔案、與資料庫伺服器相關的服務、Oracle預設的帳戶/口令以及在MS-DOS命令列中可使用的命令等。
瞭解和掌握這些基本環境對正確使用和深入掌握Oracle技術是十分重要的。
1、安裝後的程式組
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並與資料庫進行互動的環境。
2、Oracle資料庫服務
Windows平台上的Oracle不同於其他平台,它是以服務的形式呈現的,而在Unix中Oracle是以進程形式啟動並執行。
所有Oracle伺服器及其後台進程都是在Oracle.exe進程下以線索的方式運行。
當Oracle Database 10g系統安裝完成後,在Windows 2000/XP/2003環境下自動增加了許多資料庫服務。
在“管理工具”→“服務”中,可看到多個以Oracle開頭的服務,這些都是與Oracle資料庫伺服器有關的服務。
Oracle資料庫的運行管理都與其服務密切相關,所以,我們應充分理解Oracle服務的作用。
2.1 Oracle服務
Oracle服務對資料庫的運行和系統管理來說至關重要。在Windows中,Oracle以服務的形式來啟動每個執行個體。服務是一個在Windows註冊表中註冊並由Windows管理的可執行進程(Process)。註冊表自動跟蹤並記錄每個所建立服務的安全資訊。Oracle也使用服務來對其資料庫操作提供支援,這類似於Windows服務。Oracle服務是在資料庫的建立過程中建立並與Oracle資料庫關聯。Oracle服務用於建立、串連和使用一個Oracle資料庫執行個體。在註冊表中通過[編輯] 功能表的“尋找”選項,尋找“Oracle”就可以尋找各個服務的資訊。
服務的優點之一是簡化了啟動資料庫的過程。當電腦重新啟動時,系統自動啟動並設定資料庫,不需要使用者的參與,這是由服務來完成的。服務的另一個優點是它們必須由擁有指定許可權的使用者來啟動。例如,Oracle<Home_Name>ManagementServer是Oracle中的一個服務,要停止該服務必須由帳戶sysman來執行,其預設口令為:oem_temp。
服務啟動的是後台進程,這類似於Unix中的守護進程。當Oracle資料庫服務啟動時,系統中沒有典型的Oracle進程運行。相反,該服務進程等待來自SQL*Plus的最初串連,這引起一個前台進程啟動並建立該系統全域地區SGA的後台進程。當Oracle資料庫關閉時,所有建立的進程被終止。但是該進程自身仍在繼續運行,等待下一個串連請求和啟動命令。這就是當我們通過Windows中的Oracle Service<SID>啟動了資料庫執行個體,但在SQL*Plus或Oracle企業管理器中關閉了資料庫執行個體後,然而Windows中的OracleService<SID>服務仍處於“已啟動”狀態的原因。只有停止Windows中的Oracle Service<SID>服務(即進程),才能保證不啟動資料庫。當然,當Oracle Service<SID>服務停止後,還可通過其他方式啟動資料庫執行個體。有多種方式可實現對Windows中有關Oracle服務的管理,具體內容可詳見後面相關內容。
Oracle網路監聽器(Net Listener)是另一個重要的服務。該服務必須在使用者能串連到Oracle資料庫之前啟動運行。該進程關閉與否並不影響已經在用戶端與資料庫之間建立起的串連和使用者對資料庫的使用。以SQL*Plus為例,當Oracle網路監聽器的服務Oracle<Home_Name>TNSListener啟動之前,啟動SQL*Plus並串連至資料庫,系統出現錯誤資訊“ORA-12541:TNS:no listener”。原因是沒有啟動監聽服務或者監聽器損壞;當Oracle網路監聽器的服務啟動SQL*Plus並串連至資料庫後,若停止Oracle<Home_Name>TNSListener服務,則對SQL*Plus沒有任何影響,只要沒有中斷連線,SQL*Plus仍可與資料庫進行資料互動。其中,TNS(Transparent Network Substrate)代表透明網路層。
2.2 可用的Oracle服務
根據安裝的產品不同,在Windows中產生的Oracle服務也不同,其實也正是這一點說明了資料庫伺服器與其所使用的作業系統是緊密相關的。
Oracle Database 10g安裝後產生多個服務,這些都是Oracle Database 10g運行中所必需的。如所示。
下面這張圖表是Oracle Database 10g安裝後的系統服務及其含義
這裡<SID>代表資料庫執行個體,如TEST;Home_Name代表OraDB 10g_home1。而且不能手動修改這些服務。
通常當建立資料庫並完成安裝後,以下兩個主要服務會自動啟動:
·Oracle Service<SID> (Oracle資料庫服務)
·Oracle<Home_Name>TNSListener (Oracle資料庫監聽服務)
如果安裝了Oracle Enterprise Manager Database Control,則OracleDBConsole<SID>服務自動啟動。若配置了Automatic Storage Management,則OracleCSService和OracleASMService+ASM服務也會出現在服務列表中。
與Oracle 10g不同,Oracle9i安裝完成後產生12個與其有關的服務,為便於比較,下面是幾個與Oracle9i資料庫相關的服務:
(1)Oracle Service<SID>
資料庫服務。該服務為資料庫執行個體系統標識符SID而建立,SID是Oracle安裝期間輸入的資料庫服務名字(如OracleServiceTEST)。該服務是強制性的,它擔負著啟動資料庫執行個體的任務。
如果沒有啟動該服務,則當使用任何Oracle工具如SQL*Plus時,將出現ORA-12560的錯誤資訊提示。該資訊內容是“ORA-12560 TNS: protocol adapter error”,這也意味著資料庫管理系統的管理對象沒有啟動,即資料庫沒有工作。當系統中安裝了多個資料庫時,會有多個Oracle Service<SID>,SID會因資料庫不同而不同。一般將服務的啟動類型設定為“自動”,這樣,當電腦系統啟動後該服務自動啟動。
(2)Oracle<HOME_NAME>TNSListener
監聽器服務。例如,Oracle OraHome92TNSListener承擔著監聽並接受來自用戶端應用程式的串連請求的任務。當Windows電腦重新啟動後,該服務將自動啟動。如果該服務沒有啟動,那麼當你使用Oracle企業管理器控制台或一些圖形化的工具進行串連時,將出現錯誤資訊“ORA-12541 TNS: no listener”。但對一般的串連並無影響。例如,在MS-DOS提示符中用sqlplus<username>/<password>@net_service_name形式啟動SQL*Plus並進行串連時,則不會出現錯誤資訊提示。一般將該服務的啟動類型設定為“自動”,這樣,當電腦系統啟動後該服務自動啟動。也可通過手動方式啟動服務:C:\>net start Oracle<Home_Name>TNSListener。
注意 在串連上出現的問題,多數都與監聽器有關。
(3)Oracle<Home_Name>Agent
代理服務。該服務是Oracle企業管理器產品的一部分。執行作業和監視Oracle服務效能及監聽器、資料庫、Oracle HTTP Server和Oracle應用程式等目標需要使用智能代理(Intelligent Agent)。智能代理還為Capacity Planner和Performance Manager等收集待用資料。Capacity Planner和Performance Manager是用於Oracle診斷套件的資料收集應用程式。一般將該服務的啟動類型設定為“自動”,這樣,當電腦系統啟動後該服務自動啟動。
如果該代理服務沒有啟動,則在啟動OEM Console時,系統無法通過Oracle<Home_Name>Agent找到資料庫所在的節點。因此,在使用Enterprise Manager Console開啟控制台時,因無法找到資料庫所在的節點而不能顯示該資料庫。Oracle<Home_Name>Agent是否啟動也影響著資料庫的遠端連線。
在網路中,Oracle Intelligent Agent是一個在遠程節點上的自治進程。代理作為服務與Oracle資料庫伺服器駐留在同一個節點上,並提供和完成下列功能:
·提供本地服務或調用依賴於作業系統的服務,以便與本地管理的目標節點互動。
·檢查事件,向OEM報告排隊的結果事件。
·運行Oracle Enterprise Manager作業,搜集其結果和輸出,並為結果排隊。
·處理資料集合。
·取消那些由控制台或其他應用程式控制的作業或事件等。
(4)Oracle<Home_Name>HTTPServer
該服務使用連接埠號碼3339,為基於瀏覽器的企業管理器及資料檔案庫啟動Oracle HTTP Server。它對應於Apache Server,即Web Server。它也是運行iSQL*Plus所必需的中介層。可根據實際情況將該服務的啟動類型設定為“自動”或“手動”。當設定為“自動”後,Oracle HTTP Server將隨著電腦的啟動而自動啟動;否則,可通過菜單組中的“Start HTTP Server powered by Apache”來啟動Oracle HTTP Server。
(5)Oracle<Home_Name>ManagementServer
OMS(Oracle Management Server)服務在用戶端與所管理目標之間起著集中管理和分布式的控製作用,與代理協同工作,處理監視資訊和作業資訊並使用管理資料檔案庫儲存其管理資料。
當系統安裝完成後,Oracle<Home_Name>ManagementServer並沒有出現在Windows的“服務”視窗中,只有當使用程式組“Configuration and Migration Tools”中的“Enterprise Manager Configuration Assistant”建立了資料檔案庫後,系統才隨之建立並啟動該服務。若要停止該服務,也就是停止Oracle Management Server必須提供超級管理員身份證明。即管理員的帳戶和口令,預設的帳戶和口令為:sysman/oem_temp。Oracle企業管理器只有在建立了資料檔案庫後才能以sysman帳戶登入,否則只能以獨立形式直接使用和管理本機資料庫。
如果要啟動、關閉或設定服務的狀態,也可在DOS命令列中使用omsntsrv.exe命令完成。具體命令的使用格式可通過如下命令查看:omsntsrv -h。
只有安裝了Oracle企業管理器,以下服務才會被建立並自動啟動:
·Oracle<Home_Name>Agent
·Oracle<Home_Name>HTTPServer
·Oracle<Home_Name>ManagementServer
以上是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)Oracle<Home_Name>ClientCache
用於用戶端高速緩衝儲存空間服務。
(9)Oracle<Home_Name>PagingServer
呼叫伺服器服務。Oracle企業管理器的呼叫伺服器(Paging Server)允許管理員接受關於註冊的事件和預定作業的呼叫通知。
(10)OracleSNMPPeerMasterAgent
簡易網路管理通訊協定(Simple Network Management Protocol,SNMP),它是一個標準的互連網協議。它能使網路中的節點針對網路裝置和應用程式訪問其狀態和活動。所有發給網路節點的請求都由同一個主代理(Master Agent)來處理。
(11)OracleSNMPPeerEncapsulator
該服務只有在系統中配置並安裝了一個以上的SNMP副代理時,才需要封裝器(Encapsulator)。
事實上,除了在“管理工具”→“服務”中啟動或停止以上資料庫服務外,也可在DOS提示符中通過使用NET命令來啟動或停止。格式如下所示:
·啟動服務:net start<Service_name>
·停止服務:net stop<Service_name>
·尋找協助:net-h
2.3 Oracle Database 10g服務的啟動與停止
啟動Oracle服務有三種方式。
(1)通過“控制台”啟動Oracle服務,步驟如下:
1)選擇“開始”→“控制台”→“管理工具”→“服務”。
2)找到要啟動的Oracle服務,單擊“啟動”。
(2)通過MS-DOS命令啟動Oracle服務,步驟如下:
1)在“附件”中開啟MS-DOS命令提示字元視窗。
2)在視窗中輸入:net start Oracle<Service_Name>。
(3)通過Oracle Administration Assistant for Windows啟動Oracle服務 ,步驟如下:
1)選擇“開始”→“程式”→“Oracle-OraDb10g_home1”→“配置和移植工具”→“Oracle Administration Assistant for Windows”。
2)在主機名稱中找到要啟動的資料庫SID並用按右鍵“Oracle<SID>”。
3)選擇“啟動服務”即可。
Oracle服務的停止與啟動的操作步驟類似。
2.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);否則,會極大影響系統效能。