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