Oracle安裝后的基本環境主要涉及安裝后的程序組、DBMS包含的物理文件、與數據庫服務器相關的服務、Oracle默認的帳戶/口令以及在MS-DOS命令行中可使用的命令等。
了解和掌握這些基本環境對正確使用和深入掌握Oracle技術是十分重要的。
1、安裝后的程序組
Oracle Database 11g安裝后的程序組Oracle-OraDb11g_ home1包括:
- Oracle Installation Products
- 集成管理工具
- 配置和移植工具
- 應用程序開發
(1)Oracle Installation Products
主要包括:
- Universal Installer:通用安裝器
(2)集成管理工具
主要包括:
- 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環境下自動增加了許多數據庫服務。在“管理工具”→“服務” (services.msc)中,可看到多個以Oracle開頭的服務,這些都是與Oracle數據庫服務器有關的服務。Oracle數據庫的運行管理都與其服務密切相關,所以,我們應充分理解Oracle服務的作用。
(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) 可用的Oracle服務
根據安裝的產品不同,在Windows中產生的Oracle服務也不同,其實也正是這一點說明了數據庫服務器與其所使用的操作系統是緊密相關的。下面這張圖表是Oracle Database 11g安裝后的系統服務及其含義:
表1 Oracle服務名及其含義
oracle服務名 | 含義 |
OracleServiceSID | 數據庫實例服務,這個服務會自動地啟動和停止數據庫。如果安裝了一個數據庫,它的缺省啟動類型為自動。服務進程為ORACLE.EXE,參數文件initSID.ora,日志文件SIDALRT.log,控制台SVRMGRL.EXE、SQLPLUS.EXE。(必須啟動) |
OracleHome_NameTNSListener | 監聽器服務,服務只有在數據庫需要遠程訪問時才需要(無論是通過另外一台主機還是在本地通過 SQL*Net 網絡協議都屬於遠程訪問),不用這個服務就可以訪問本地數據庫,它的缺省啟動類型為自動。服務進程為TNSLSNR.EXE,參數文件 Listener.ora,日志文件listener.log,控制台LSNRCTL.EXE,默認端口1521、1526。(必須啟動) |
Oracle SID VSS Writer Service | OCI客戶端,是一個寫服務,它支持日志、拷貝、全數據備份、增量數據庫備份和差別數據庫備份操作。(非必須啟動) |
OracleJobSchedulerSID | Oracle定時器服務。(非必須啟動) |
OracleMTSRecoveryService | 該服務允許數據庫充當一個微軟事務服務器、COM/COM+對象和分布式環境下的事務資源管理器。(非必須啟動) |
OracleHome_NameClrAgent | Oracle數據庫.NET擴展服務的一部分。(非必須啟動) |
OracleDBConsoleSID: | Oracle控制台服務,即企業管理器(OEM)。OEM是Oracle提供的一個基於Web的圖形化數據庫管理工具。通過OEM,用戶可以完成幾乎所有的原來只能通過命令行方式完成的工作,包括數據庫對象、用戶權限、數據文件、定時任務的管理,數據庫參數的配置,備份與恢復,性能的檢查與調優等。(非必須啟動) |
*這里SID代表數據庫實例,如TEST;Home_Name代表OraDB 11g_home1。
- Oracle Service<SID>數據庫服務。
該服務為數據庫實例系統標識符SID而創建,SID是Oracle安裝期間輸入的數據庫服務名字(如OracleServiceTEST)。該服務是強制性的,它擔負着啟動數據庫實例的任務。如果沒有啟動該服務,則當使用任何Oracle工具如SQL*Plus時,將出現ORA-12560的錯誤信息提示。該信息內容是“ORA-12560 TNS: protocol adapter error”,這也意味着數據庫管理系統的管理對象沒有啟動,即數據庫沒有工作。當系統中安裝了多個數據庫時,會有多個Oracle Service<SID>,SID會因數據庫不同而不同。一般將服務的啟動類型設置為“自動”,這樣,當計算機系統啟動后該服務自動啟動。
- 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 Database 11g服務的啟動與停止
啟動Oracle服務有三種方式。
a. 通過“控制面板”啟動Oracle服務,步驟如下:
1)選擇“開始”→“控制面板”→“管理工具”→“服務”或services.msc。
2)找到要啟動的Oracle服務,右鍵,單擊“啟動”。
b. 通過MS-DOS命令啟動Oracle服務,步驟如下:
1)在“附件”中打開MS-DOS命令提示符窗口或cmd。
2)在窗口中輸入:net start Oracle<Service_Name>。如,net start OracleServiceTEST。
c. 通過Oracle Administration Assistant for Windows啟動Oracle服務 ,步驟如下:
1)選擇“開始”→“程序”→“Oracle-OraDb10g_home1”→“配置和移植工具”→“Administration Assistant for Windows”。
2)在主機名中找到要啟動的數據庫SID並用右鍵單擊“Oracle<SID>”。
3)選擇“啟動服務”即可。
Oracle服務的停止與啟動的操作步驟類似。
(4)基於Oracle性能的Windows配置
合理地配置Windows操作系統與硬件和Oracle數據庫服務器是同等重要的。Windows中不同的服務或進程對Oracle數據庫服務器的影響是不同的。過多地安裝軟件會對數據庫服務器的性能產生負面影響。
- 不可以在數據庫服務器上運行為保持最佳的運行速度,下列各項不能在數據庫服務器上運行:
·DNS服務器:出於維護的目的必須停止該服務器,域命名不再工作。
·域控制器:與上面的DNS服務器原因相同,數據庫服務器不應該作為一個主域控制器或輔助域控制器。
·路由器:數據庫服務器不應當作為一個網絡路由器。
·文件/打印服務器:由於這些功能消耗CPU和內存資源以及帶寬,所以數據庫服務器不能作為文件服務器和打印服務器。
·終端服務:這些類型的服務需要大量的內存,並依賴於用戶的裝載。
下列這些服務對數據庫服務器和利用寶貴的系統資源是多余的,應該關閉:
·License Logging Service
·Plug and Play
·Remote Access Autodial Manager
·Remote Access Connection Manager
·Remote Access Server
·Telephony Service
刪除所有不使用的網絡協議,只保留Oracle所使用的協議。
- 可以在數據庫服務器上運行下列各項可以在數據庫服務器上運行:
·任何獲取性能信息的監視軟件。Oracle提供了企業管理器和性能監視功能。
·在操作系統級上的安全和審計軟件。
·下列在數據庫服務器上的服務對正常操作是必需的,不應該關閉:
·Alerter
·Computer Browser
·EventLog
·Messenger
·OracleServiceSID
·OracleHOME_NAMETNSListener
·Remote Procedure Call (RPC) Service
·Server
·Spooler
·TCP/IP NetBIOS Helper
·Workstation
關閉以上任何一項服務都會引起系統問題。由於Windows的版本不同,上述各項服務可能會有所變化。另外,一般不應選擇普通PC機作為服務器,而應該選擇磁盤陣列組(RAID);否則,會極大影響系統性能。