原文: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. Appium之java API

    AppiumDriver getAppStrings() 默认系统语言相应的Strings.xml文件内的数据. driver.getAppStrings(String language) 查找某一个 ...

  2. MEF初体验之十:部件重组

    一些应用程序被设计成在运行时可以动态改变.例如,一个新的扩展被下载,或者因为其它的多种多样的原因其它的扩展变得不可用.MEF处理这些多样的场景是依赖我们称作重组的功能来实现的,它可已在最初的组合后改变 ...

  3. JUnit + Mockito 单元测试(二)(good)

    import org.junit.Test; import org.mockito.Matchers; import org.mockito.Mockito; import java.util.Lis ...

  4. 使用live delegate on解决js后装html故障问题

    今天写一个前端的东西.每学到更多的知识.几下就能写几行代码.代码行数十个.代码几个文件量--这是真的.一直以来研究的前端遇到的问题仍然在实践百度谷歌问答. 我今天遇到这样的问题:已经写js代码,正确a ...

  5. uva 10825 - Anagram and Multiplication(暴力)

    题目链接:uva 10825 - Anagram and Multiplication 题目大意:给出m和n,要求找一个m位的n进制数,要求说该数乘以2~m中的随意一个数的结果是原先数各个位上数值的一 ...

  6. jquery :操作iframe

    原文 jquery :操作iframe 1. 内容里有两个ifame <iframe id="leftiframe"...</iframe> <iframe ...

  7. linux sdio card睡眠治疗 sdio card removed解决方案

    近期调试几款sdio card suspend时都会出现sdio card removed,之后 要么死机要么模块不能正常工作.根本原因也就是休眠没有处理好.昨天最终找到了 解决方法. 1:host端 ...

  8. centos安装wget 及配置(转)

    yum -y install wget #yum install perl Searching for GCC... The path "" is not valid path t ...

  9. Java NIO系列教程(三) Buffer(转)

    Java NIO中的Buffer用于和NIO通道进行交互.如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的. 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存.这块内存被包装成NIO ...

  10. 《STL源代码分析》---stl_heap.h读书笔记

    Heap堆的数据结构是经常使用,Heap它还能够存储元件的.但STL并且不提供Heap集装箱.仅仅提供信息Heap算术运算.只支持RandomAccessIterator该容器可以被用作Heap集装箱 ...