原文:IS2009制作Oracle 静默安装包(一)感谢空白先生特许授权

上一篇: MyEclipse中消除frame引起的“the file XXX can not be found.Please check the location and try again.”的错误

本文经原作者特许授权于海洋女神发布,转载请务必注明出处与链接;原作者和海洋女神保留对该文的一切法律许可下的权益;需要发布在盈利性报刊、网站等请与原作者或海洋女神联系。
序言

这份文档并非本人所写,而是一位朋友在最近做了安装包以后总结出的教程,在此非常感谢这位朋友空白先生的无私分享。做一个工程也需要花不少时间,而写一篇文章甚至要花更多的时间,对于别人的劳动,如果每一个人都能够给予尊重,那么也许收获得会更多。

第一部分:前言
目标需求
实现 ESL——嵌入式软件许可
在安装过程中,需要安装我们的软件产品,并且安装Oracle 数据库。安装数据库之后
需要导入基础数据,创建指定的库,创建用户和表空间。在安装Oracle 数据时,必须实现
静默安装,不能出现GUI 界面,也不能暴露出安装参数。所有安装过程一次完成,无需用
户干预。
环境说明
操作系统——Windows XP SP3
安装工具——InstallShield 2009 — Premier Edition
数据库——Oracle 10G-R2

第二部分:配置Oracle
此过程需要对Oracle 进行相关的配置,包括录制Response 文件、制作带数据的模板、
调整安装脚本、解锁用户脚本,设置环境变量等操作。
录制 response文件
1. 运行CMD,在命令行窗口进入Oracle 所在路径,这里路径为D:\Orac\database,
Oracle10gserver.rsp是要保存的文件名。


2. 运行此命令后,Oracle安装界面被打开。
3. 去掉创建启动数据库
4. 在汇总信息出现时,退出安装界面,不进行安装。

5. 此时发现在D:\Orac\database 目录中出现了Oracle10gserver.rsp 文件,说明录制成功。该
文件存放的路径,我们后续将会在Install.bat中用到。
创建用户、表空间、导入基础数据
1. 在已有的同版本数据库中创建用户、表空间、导入基础数据
2. 使用 SQL系统账号登陆,并执行CreateDB.sql脚本。注意:脚本中的路径应该以实际的
数据路径为准。
3. 导入文件zgisexp.dmp 和zproexp.dmp。把此脚本存为CMD 文件,直接执行即可。
注意:脚本中的路径应该为实际dmp 文件存放的路径。另外此脚本为本单位的数据信息,
可不作为参考!

创建用户、表空间脚本:

制作带基础数据的模板
有了以上的数据,我们就开始制作数据的模板,以便建库的时候使用。
1. 创建数据库模板

2. 创建好后,我们会在<ORACLE_HOME>\assistants\dbca\templates\目录中,发现如下两个模板
文件。temp_10g.dbc temp_10.dfb
此处两个文件的作用是,按照数据库模板的形式创建数据库,无需在导入表,创建
用户和导入基础数据。这一步,先在已有的Oracle环境下完成。我们拷贝这两个文
件即可。
3. 修改temp_10g.dbc

安装脚本描述
在进行Oracle安装过程中,需要安装程序调用以下的脚本,以实现Oracle的安装过程。
1. Install.cmd 安装Oracle软件脚本
执行此脚本时,需要带以上的参数,具体参数后边会有说明。

2. copynetca.cmd 拷贝监听文件和模板文件,并创建监听服务脚本。

Ø 脚本中存在两个接收的变量,这个是从IS 中传出来的路径参数,必须存在。另外,模
板文件必须拷贝到指定的路径下,<Oracle_Home>\assistants\dbca\templates。
3. createDB.cmd 创建带模板数据的数据库脚本。
此脚本用于根据数据模板创建数据库,命令带如下的参数:

4. unlock.bat 用户解锁脚本
安装模板生成的数据库,其用户状态为锁定,需要执行解锁脚本。

其中change.sql为:

集合Oracle安装脚本
以上的4 个脚本是安装过程必备的4 个脚本,我们现在整理为一个批处理文件install.bat,
以便我们在制作安装包的时候调用该批处理。根据上述脚本的参数类型,我们把参数补完整。

Ø 脚本中存在一个接收的环境变量%DATABASEDIR%,这是由IS运行此程序带出来的参
数,此参数为安装的目标路径。
Ø %SOURPATH%这个参数虽然没有在BAT 文件中有任何的接收说明,但是在执行安装
过程中,IS会创建该参数在BAT文件头端,该参数为目标源路径地址。如何在IS中自
动创建该变量,在第三部份中说明。
Ø 以上的脚本分别调用了上边的4 个脚本,他们后边均带有参数。

Ok,现在已经完成了Oracle方面的设置,我们需要保留的文件为1+4个批处理文件、1 个.SQL
文件和两个模板文件。这些文件将会在IS或安装中被调用。
卸载脚本描述
1. deinstall.cmd 卸载oracle软件,该脚本的参数如下:

2. completeClean.cmd 清除相关文件和设置,该脚本的相关参数如下:

集合卸载脚本
Ø 以上两个脚本为卸载数据库所用,我们把他集合为一个批处理,以方便IS调用。
Ø 该脚本中依然存在%DATABASEDIR%和%SOURPATH%两个参数。作用同install.bat

下一篇: IS2009制作Oracle 静默安装包(二) 感谢空白先生特许授权

IS2009制作Oracle 静默安装包(一)感谢空白先生特许授权的更多相关文章

  1. IS2009制作Oracle 静默安装包(二) 感谢空白先生特许授权

    原文:IS2009制作Oracle 静默安装包(二) 感谢空白先生特许授权 上一篇: IS2009制作Oracle 静默安装包(一)感谢空白先生特许授权本文经原作者特许授权于海洋女神发布,转载请务必注 ...

  2. 制作linux内核安装包

    实验基于Centos 6.2 升级linux内核 直接在一个有编译环境的设备上,编译升级内核很简单. make menuconfig 或者 拷贝现有系统的.config文件 修改.config文件  ...

  3. NSIS:制作软件升级安装包

    原文 NSIS:制作软件升级安装包 相信不是每个人写的软件都只发布一次就可以了,肯定要有修改和维护的情况发生.在这种情况下,您可能就需要一个软件的升级安装包了.   现在,我们就来一步步把这个安装包做 ...

  4. Advanced Installer 制作.NetWeb部署安装包

    原文:Advanced Installer 制作.NetWeb部署安装包 因为是.Net的Web应用程序,所以想用Advanced Installer 调用Dll实现安装部署. 因为我需要自己定制参数 ...

  5. 制作iis自动安装包

    原文:制作iis自动安装包 MS 一直没有提供可独立安装的 IIS 安装包,Windows 的缺省安装没有安装它,通常要到控制面板的"添加/删除 Windows 程序"中去选择安装 ...

  6. 用Inno Setup制作WEB程序安装包

    原文 用Inno Setup制作WEB程序安装包 最近做了一个WEB程序的安装包,我把制作的过程做个介绍,贴出源码给大家做个参考 看看inno 的脚本 [Setup] AppCopyright=tes ...

  7. C# 制作Windows服务安装包

    C# 制作Windows服务安装包   这两天公司要用C#写一个windows服务,做成安装安装包.制作的过程中遇到了一些问题,写完之后总结一下.如果以后在用到的话可以可以参考一下,而且由于原来没有做 ...

  8. 使用NSIS制作可执行程序的安装包

    使用NSIS制作可执行程序的安装包: 1,NSIS下载地址:https://pan.baidu.com/s/1GzzQNXgAlJPJWgjBzVwceA 下载完成之后解压缩,打开安装程序,默认安装即 ...

  9. Inno Setup制作应用程序安装包

    我最近写了一个MFC应用程序,想发给其他的小伙伴玩一玩,直接发了个exe文件过去,结果发现小伙伴那边打不开.原来这个exe文件虽然是MFC静态编译的,但是还依赖了其他几个.dll文件,需要把这几个dl ...

随机推荐

  1. ubuntu-14.04 系统安装mysql-5.6.21

    1.安装mysql前准备工作  (1).从官网下载mysql-5.6.21.tar.gz  (2).tar -zxvf mysql-5.6.21-tar.gz  会生成mysql-5.6.21的目录 ...

  2. HDU--3829--Cat VS Dog【最大点独立集】

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=3829 题意:动物园有n条狗.m头猫.p个小孩,每一个小孩有一个喜欢的动物和讨厌的动物.如今动物园要转移一些 ...

  3. 采用max_dump_file_size 参数限制trc文件大小

    max_dump_file_size 参数:这个参数可以限制相应的过程trc文件大小(进程是否是oracle后台和前台应用程序对应的server process) 使用案例: 若是一个trc文件已经4 ...

  4. Android的相关的源代码的方法

    这里给大家介绍一个非常方便的相关法源代码. 1.打开Android SDK Manager.把你所使用的版本号的API给下载下来,例如以下图所看到的... 2.关联源代码时,将源代码关联到相应API的 ...

  5. AngularJS+ASP.NET MVC+SignalR实现消息推送

    原文:AngularJS+ASP.NET MVC+SignalR实现消息推送 背景 OA管理系统中,员工提交申请单,消息实时通知到相关人员及时进行审批,审批之后将结果推送给用户. 技术选择 最开始发现 ...

  6. Windows平台Oracle使用USE_SHARED_SOCKET角色

    前两天在一个朋友QQ集团提出了一个问题.背景例如,下面的: 继续问后,有例如以下回复: 1.对方server连接无问题. 2.从client能够telnetserver的1521port. 3.tns ...

  7. HTML5分析实战WebSockets一个简短的引论

    HTML5 WebSockets规范定义了API,同意web页面使用WebSockets与远程主机协议的双向通信. 介绍WebSocket接口,并限定了全双工通信信道,通过套接字网络. HTML5 W ...

  8. ABP展现层——动态生成WebApi

    ABP展现层——动态生成WebApi 点这里进入ABP系列文章总目录 ABP(现代ASP.NET样板开发框架)系列之20.ABP展现层——动态生成WebApi ABP是“ASP.NET Boilerp ...

  9. PL/SQL编程(1) - 存储过程,函数以及参数

    存储过程 PROCEDURE [schema.]name[( parameter[, parameter...] ) ] [AUTHID DEFINER | CURRENT_USER ] [ACCES ...

  10. char与byte差异

    很多人刚开始学习(包含I,我已经学会了一年多java该)肯会char和byte怀疑这两个数据类型,相互混淆.今天,大量的信息专门搜索,至byte和char两个数据类型进行了总结和比较.第一批成果与大家 ...