原文: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. .NET应用架构设计—再次了解分层架构(现代企业应用分层架构核心设计元素)

    阅读文件夹: 1.背景介绍 2.简要回想下传统三层架构 3.企业级应用分层架构(现代分层架构的基本演变过程) 3.1.服务层中应用契约式设计来解决动态条件不匹配错误(通过契约式设计模式来将问题在线下暴 ...

  2. EntityFramework6 用 PostgreSQL

    开篇 1.这是自己第一篇博客,希望能够坚持下去.. 2.可能技术比较初级,大神看不下的话,多鼓励.. 3.开发环境为 vs2013,.net framework 4.5; 开始 1.安装entityf ...

  3. js 滚轮事件 滚轮焦点图(轮播图)

    利用滚轮,切换轮播图.附带mousewheel插件以及原生js写法:   <!doctype html> <html> <head> <meta charse ...

  4. [Python]sqlite3二进制文件存储问题(BLOB)(You must not use 8-bit bytestrings unless you use a text_factory...)

    事情是这种: 博主尝试用Python的sqlite3数据库存放加密后的usernamepassword信息,表是这种 CREATE TABLE IF NOT EXISTS user ( userID ...

  5. ZOJ 3623 Battle Ships 简单DP

    链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3623 题意:给出N种可以建造的船和对方的塔生命值L,每种船给出建造时 ...

  6. NSIS:卸载加密码示例

    原文 NSIS:卸载加密码示例 最近有几个同学问我关于卸载时加密码的问题,其实很简单,懂点基础就可以根据安装加密码那篇文章http://www.flighty.cn/html/bushu/201009 ...

  7. (大数据工程师学习路径)第五步 MySQL参考手册中文版----MySQL数据库管理

    一.MySQL权限管理 账户权限信息被存储在mysql数据库的user.db.host.tables_priv.columns_priv和procs_priv表中. GRANT和REVOKE语句所用的 ...

  8. 用Maven整合SpringMVC+Spring+Hibernate 框架,实现简单的插入数据库数据功能

    一.搭建開始前的准备 1.我用的MyEclipse2014版,大家也能够用IDEA. 2.下载Tomcat(免安装解压包).MySQL(zip包下载地址 免安装解压包,优点就是双击启动,最后我会把ba ...

  9. cocos2dx 3.1.1移植安卓apk (lua交叉编译器项目 mac环境)

    cocos2dx 3.1.1   lua项目安卓交叉编译 mac环境 本文基于ant,sdk,ndk,adt等软件和环境已经事前设置好 1\新建项目 在mac的终端下输入命令: cocos new t ...

  10. crawler_jsoup HTML解析器_使用选择器语法来查找元素

    参照:http://www.open-open.com/jsoup/selector-syntax.htm 使用选择器语法来查找元素 问题 你想使用类似于CSS或jQuery的语法来查找和操作元素. ...