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);否则,会极大影响系统性能。