一问题的提出
目前的很多数据库应用程序是使用ORACLE数据库开发的client/server模式众所周知使用此种模式需要在终端上安装ORACLE客户端软件应用程序可以使用InstallShield软件打包成安装程序由用户自行安装但ORACLE客户端软件一般需要有经验的开发人员通过人机交互的方法安装安装完成后还需在Net中配置服务名这样当软件发布时可能需要在不同地点的成千上万个终端上安装ORACLE客户端让费了大量的人力及时间
如何能在不需要人员干预的情况自动完成ORACLE客户端的安装及配置工作是否能将此工作集成到应用程序的安装中去?
答案是肯定的下面逐步阐述实现的过程
二实现步骤
共享ORACLE安装程序
可将ORACLE安装程序放置到一台应用服务器的光驱或拷贝到应用服务器的一个目录下并共享在这里我们假定服务器名称为softserver放置路径为oracle
编写响应文件自动安装ORACLE客户端
ORACLE的缺省的安装模式为人机交互方式即运行ORACLE安装盘上的setupexe后按照安装程序的提示一步一步的选择完成安装ORACLE同时也提供了自动安装(非人机交互)方式此种模式的前提是必须写一个响应文件关于此种方式的说明可以在ORACLE安装盘中找到文件名为doc\Output\在response目录下有一些响应文件的模板可以根据需要将模板修改成适合自己的响应文件
在这里我们举一个只安装Net的例子文件名定为\\softserver\oracle\netrsp内容如下
[General]
RESPONSEFILE_VERSION=
[SESSION]
#productsjar文件所在的路径(在ORACLE安装盘中)
FROM_LOCATION=\\softserver\oracle\stage\productsjar
#ORACLE安装目录
ORACLE_HOME=C:\oracle\ora
#ORACLE安装目录的别名
ORACLE_HOME_NAME=ora
#顶级安装方式这里选择客户端
TOPLEVEL_COMPONENT={oracleclient}
#是否显示动画缺省为false
SHOW_SPLASH_SCREEN=false
#是否显示欢迎界面缺省为false
SHOW_WELCOME_PAGE=false
#是否显示安装过程界面缺省为true
SHOW_INSTALL_PROGRESS_PAGE=false
#是否显示需求信息缺省为true
SHOW_REQUIRED_CONFIG_TOOL_PAGE=false
#
#ORACLE客户端选项
#
[oracleclient_]
#语言这里用英语简体中文
COMPONENT_LANGUAGES={enzh_CN}
#安装方式(缺省定制最小)这里用定制
INSTALL_TYPE=Custom
#要安装的产品列表这里选择Net
DEPENDENCY_LIST={ cltprod}
#
#Net产品
#
[cltprod_]
DEPENDENCY_LIST={ clt}
#
# Net配置助手
#
[ca_]
#是否在安装后启动Net配置助手缺省为true
b_launchNETCA=false
此时如果我们在命令行执行命令
\\softserver\oracle\setup –responsefile \\softserver\oracle\netrsp –silent
则安装程序在后台自动安装过一段时间(十多分钟视机器配置和网络速度而定)后我们可以在程序菜单中看到ORACLE的菜单里面只有Net安装路径为C:\oracle\ora
编写Net配置文件
最简单的方法是用Net Assistant来生成配置好所需的服务后到ORACLE安装目录的network\ADMIN路径下找到tnsnamesora文件即可文件格式为
# TNSNAMESORA Network Configuration File: c:\Oracle\Ora\NETWORK\ADMIN\tnsnamesora
# Generated by Oracle configuration tools
ORA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))
)
(CONNECT_DATA =
(SERVICE_NAME = bigsun)
)
)
将此文件拷贝到\\softserver\oracle\目录中去
编写执行程序
可以使用各种方式编写可执行程序VB程序等执行以下功能
a)自动安装Net
\\softserver\oracle\setup –responsefile \\softserver\oracle\netrsp –silent
b)拷贝Net配置文件配置服务命名
copy \\softserver\oracle\tnsnamesora c:\oracle\ora\network\ADMIN
将可执行程序打包到安装程序中
以InstallShield为例在Custom Actions中添加新动作后在File Name栏选择上一步中编写的执行程序
此时我们的目的已经达到这样在进行应用程序的安装时ORACLE客户端软件的安装及配置工作将隐式的同时进行安装工作完成后应用程序就可以直接运行而无须安装或配置ORACLE客户端