声明: 本文均为作者本人(iihero@CSDN)探索学习Oracle数据库过程当中的经验总结,其方法或过程只能用于开发和学习,不能将其用于商业产品发布,违者后果自负。
Oracle数据库的客户端向来以“肥大”著称,即使是它的instant client,也不算瘦。个人以为,虽然instant client发布并使用了有一段时间,但是比起它的原装产品来说,稳定性和安全性肯定有些差距。所以,我宁可自己手动extract一些有用的包,为开发所用,也不愿意去单独折腾个instant client来配置。
这里就以9i为例,在你安装完一份Oracle服务器版或Oracle客户端,在安装的目标目录会有一份完整的目录列表。有很多很多都是用不着的文件。
我们通常要用的功能也就是:
1. sqlplus命令行,imp, exp, tnsping, sqlldr (用于管理)
2. oci接口库,pro*c库,jdbc, odbc (甚或oledb)等 (用于开发)
有了这些功能,基本上可以做很多事情了。
制作原理:
1. 抽取相关目录,发布到一个新目录。
2. 生成注册表文件到这个新目录。
3. 将这个新目录复制或移动到新机器的新目录里边,就可以注册使用了。
下边是我编写的一个发布的批处理脚本oraclient_dist.bat,以及过滤文件exclude.txt
exclude.txt 文件要与oraclient_dist.bat文件位于同一目录当中
其命令格式是:
oraclient_dist.bat -from d:/oracle/ora92 -to e:/dist-inst d://ora92client
意思是从源:d:/oracle/ora92目录下边提取免安装包到目录e:/dist里头,最终安装目录定制在d:/ora92client。
@echo off
rem
rem Copyright (c) 2005 ~ 2009, iihero@CSDN
rem
rem This script will ship an Simple Oracle client from an
rem installed Oracle9i/10g server or client package.
rem
rem Any issues, please notify me: iiihero@hotmail.com
rem This script only can be used for learning/researching on oracle db.
rem
setlocal
:LOOP
set arg=%1
if %arg%! == ! goto END_LOOP
if %arg%! == -help! goto SET_HELP
if %arg%! == -h! goto SET_HELP
if %arg%! == -from! goto SET_FROM
if %arg%! == -to! goto SET_TO
if %arg%! == -inst! goto SET_INST
goto LOOP
:SET_FROM
shift
set ORA_FROM=%1
shift
goto LOOP
:SET_TO
shift
set ORA_TO=%1
shift
goto LOOP
:SET_INST
shift
set INSTALL_DIR=%1
shift
goto LOOP
:END_LOOP
echo ORA_FROM = %ORA_FROM%
if %ORA_FROM%! == ! set ORA_FROM=%ORACLE_HOME%
if %ORA_FROM%! == ! goto ERROR_RUNTIME
if %ORA_TO%! == ! goto SET_HELP
if not exist %ORA_TO% goto SET_HELP
if %INSTALL_DIR%! == ! goto SET_HELP
mkdir %ORA_TO%\oracle
set ORACLIENT="%ORA_TO%\oracle"
echo "Begin distribute files into %ORACLIENT%"
mkdir "%ORACLIENT%\network"
xcopy "%ORA_FROM%\network\admin" "%ORACLIENT%\network\admin" /Q /S /I
xcopy "%ORA_FROM%\network\mesg" "%ORACLIENT%\network\mesg" /Q /S /I
xcopy "%ORA_FROM%\ocommon\nls\admin" "%ORACLIENT%\ocommon\nls\admin" /Q /S /I
xcopy "%ORA_FROM%\ocommon\nls\mesg" "%ORACLIENT%\ocommon\nls\mesg" /Q /S /I
xcopy "%ORA_FROM%\odbc" "%ORACLIENT%\odbc" /Q /S /I
xcopy "%ORA_FROM%\oracore" "%ORACLIENT%\oracore" /Q /S /I
xcopy "%ORA_FROM%\rdbms\mesg" "%ORACLIENT%\rdbms\mesg" /Q /S /I
xcopy "%ORA_FROM%\sqlplus\mesg" "%ORACLIENT%\sqlplus\mesg" /Q /S /I
xcopy "%ORA_FROM%\bin" "%ORACLIENT%\bin" /Q /S /I /EXCLUDE:exclude.txt
xcopy "%ORA_FROM%\oci\lib" "%ORACLIENT%\oci\lib" /Q /S /I
xcopy "%ORA_FROM%\oci\include" "%ORACLIENT%\oci\include" /Q /S /I
xcopy "%ORA_FROM%\jdbc\lib" "%ORACLIENT%\jdbc\lib" /Q /S /I
xcopy "%ORA_FROM%\jdbc\Readme.txt" "%ORACLIENT%\jdbc\" /Q /S /I
xcopy "%ORA_FROM%\precomp\admin" "%ORACLIENT%\precomp\admin" /Q /S /I
xcopy "%ORA_FROM%\precomp\mesg" "%ORACLIENT%\precomp\mesg" /Q /S /I
xcopy "%ORA_FROM%\precomp\lib" "%ORACLIENT%\precomp\lib" /Q /S /I
xcopy "%ORA_FROM%\precomp\public" "%ORACLIENT%\precomp\public" /Q /S /I
echo "Begin register entry into %ORACLIENT%\oraclient.reg"
echo Windows Registry Editor Version 5.00 >> %ORACLIENT%\oraclient.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Oracle in OraHome] >> %ORACLIENT%\oraclient.reg
echo "APILevel"="1" >> %ORACLIENT%\oraclient.reg
echo "CPTimeout"="60" >> %ORACLIENT%\oraclient.reg
echo "ConnectFunctions"="YYY" >> %ORACLIENT%\oraclient.reg
echo "Driver"="%INSTALL_DIR%\\BIN\\SQORA32.DLL" >> %ORACLIENT%\oraclient.reg
echo "DriverODBCVer"="03.51" >> %ORACLIENT%\oraclient.reg
echo "FileUsage"="0" >> %ORACLIENT%\oraclient.reg
echo "Setup"="%INSTALL_DIR%\\BIN\\SQORAS32.DLL" >> %ORACLIENT%\oraclient.reg
echo "SQLLevel"="1" >> %ORACLIENT%\oraclient.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE] >> %ORACLIENT%\oraclient.reg
echo "ORACLE_HOME"="%INSTALL_DIR%" >> %ORACLIENT%\oraclient.reg
echo "ORACLE_HOME_NAME"="OraHome" >> %ORACLIENT%\oraclient.reg
echo "NLS_LANG"="NA" >> %ORACLIENT%\oraclient.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES] >> %ORACLIENT%\oraclient.reg
echo "HOME_COUNTER"="1" >> %ORACLIENT%\oraclient.reg
echo "DEFAULT_HOME"="OraHome" >> %ORACLIENT%\oraclient.reg
echo "LAST_HOME"="0" >> %ORACLIENT%\oraclient.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\ID0] >> %ORACLIENT%\oraclient.reg
echo "NAME"="OraHome" >> %ORACLIENT%\oraclient.reg
echo "PATH"="%INSTALL_DIR%" >> %ORACLIENT%\oraclient.reg
echo "NLS_LANG"="NA" >> %ORACLIENT%\oraclient.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0] >> %ORACLIENT%\oraclient.reg
echo "ID"="0" >> %ORACLIENT%\oraclient.reg
echo "ORACLE_GROUP_NAME"="Oracle - OraHome" >> %ORACLIENT%\oraclient.reg
echo "ORACLE_HOME_NAME"="OraHome" >> %ORACLIENT%\oraclient.reg
echo "ORACLE_HOME"="%INSTALL_DIR%" >> %ORACLIENT%\oraclient.reg
echo "NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" >> %ORACLIENT%\oraclient.reg
echo "ORACLE_HOME_KEY"="Software\\ORACLE\\HOME0" >> %ORACLIENT%\oraclient.reg
echo "Begin genrating readme file for Oracle client into %ORACLIENT%\readme.txt"
echo 本程序是Oracle 9.2 for windows的简化客户端版本。>> %ORACLIENT%\readme.txt
echo 带有最基础的一些功能: sqlplus(w), exp, imp, oci, pro*c, ocopy, tkprof, tnsping, odbc, jdbc>> %ORACLIENT%\readme.txt
echo 1. 将%ORACLIENT%目录移动到目标目录: %INSTALL_DIR", >> %ORACLIENT%\readme.txt
echo 2. 导入注册表oracleint.reg之后,将bin目录全路径添加到path之后,>> %ORACLIENT%\readme.txt
echo 3. 编辑%INSTALL_DIR%\network\admin\tnsnames.ora文件,添加适当的servicename>> %ORACLIENT%\readme.txt
echo 就可以正常使用.>> %ORACLIENT%\readme.txt>> %ORACLIENT%\readme.txt
echo 有问题,欢迎联系:iiihero@hotmail.com (iihero@CSDN)>> %ORACLIENT%\readme.txt
echo "Successfully distribute oracle client into %ORACLIENT%!!!"
goto END
:SET_HELP
echo "Usage:"
echo "oraclient_dist -from <ORACLE_HOME> -to <TargetDir> -inst <InstallDir>"
echo "eg: oraclient_dist -from d:\oracle\ora92 -to f:\income -inst d:\\ora92"
echo "InstallDir format: d:\\ora92 (there should be 2 '\' in the path)"
echo "Thanks! iiihero@hotmail.com (iihero@CSDN) "
goto END
:ERROR_RUNTIME
echo "Please set ORACLE_HOME or use as the help"
:END
endlocal
最终你还可以将目标目录压缩,也就30来M,最终使用时,参见发布后生成的readme.txt文件。
exclude.txt文件内容如下:
- .bat
- .bmp
- \COREJAVA
- \OracleNet
- \ag
- \ldap
- \hs
- \ib
- \omts
- \scc
- \snmim
- \va
- \vm
- \vo
- \vs
- \xp
分享到:
相关推荐
Tom经典大作,Oracle Database 9i/10g/11g编程艺术深入数据库体系结构中文版
Oracle Database 9i/10g/11g编程艺术深入数据库体系结构中文版
总之,《Oracle Database 9i/10g/11g编程艺术:深入数据库体系结构(第2版)》是一本全方位的Oracle技术参考书,无论你是新手还是经验丰富的DBA,都能从中获益匪浅,提升自己的Oracle数据库技能。通过阅读和实践书中...
此方法由网友“巴士飞扬”分享,其使用了一个更小巧的绿色版Oracle客户端,体积仅3M多,解压后约为10M。相较于前一种方法,该方案在使用上更为便捷,配置也更为简单。 **操作流程** 1. **下载绿色版Oracle客户端**...
Oracle客户端免安装版,也被称为Oracle Instant Client,是Oracle公司提供的一种轻量级的数据库连接工具,无需完整的Oracle数据库服务器安装即可使用。它主要用于在不安装完整客户端的情况下,实现应用程序与Oracle...
Oracle Database 9i/10g/11g编程艺术深入数据库体系结构中文版
### Oracle 9i/10g 数据库管理详细知识点 #### 一、Oracle 9i/10g 概述 - **Oracle 9i** 和 **Oracle 10g** 是Oracle公司推出的两个重要的数据库管理系统版本。这些版本在企业级数据库管理领域具有重要意义。 - *...
Tom大师经典著作,Oracle Database 9i/10g/11g编程艺术深入数据库体系结构中文版。
总之,Oracle 11g免安装客户端提供了一种便捷的方式来连接和管理Oracle数据库,通过配置tnsnames.ora文件,可以灵活地添加、管理和切换多个数据库连接。同时,它也能与其他应用,如ArcGIS,无缝集成,满足GIS相关的...
本压缩包“oracle9i客户端精简免安装.rar”是专为Windows操作系统设计的Oracle9i客户端版本,旨在简化Oracle数据库的管理和操作,让用户无需进行复杂的安装过程即可快速使用。 Oracle9i客户端主要包括以下几个关键...
Oracle Database 9i/10g/11g编程艺术深入数据库体系结构中文版
Oracle免安装客户端,也被称为Instant Client,是Oracle公司提供的一种轻量级的数据库连接工具,无需完整安装Oracle数据库服务器即可使用。它包含了连接到Oracle数据库所需的基本组件,如OCI(Oracle Call Interface...
Oracle Database 9i/10g/11g编程艺术深入数据库体系结构(第二版)PDF及涉及源代码 由于文件超过最大上传大小,因此分开两部分,需要两部分都下载了之后,才能正常解压使用。
### PowerBuilder 9 连接 Oracle 10g 的说明(免安装 Oracle 客户端) 在企业级应用开发中,PowerBuilder 和 Oracle 数据库是非常常见的组合。PowerBuilder 是一款非常强大的快速应用开发工具,而 Oracle 数据库则...
Oracle 9i Client (Oracle 9i 客户端) 简化版 (不安装Oracle客户端,也可以使用PLSQL Developer 不用安装Oracle客户端也可以使用PLSQL Developer 绿色! 安全! 轻便! 可靠! 1、本软件可作为简单的Oracle9i客户端...
在本文中,我们将深入探讨“免安装”的Oracle客户端,这种轻量级的解决方案如何简化设置过程,以及如何使用它来连接到Oracle服务器。 首先,免安装的Oracle客户端通常指的是便携式版本或轻量级版本,无需经过传统...
"Oracle client for win_64X免安装版" 提供了一个便捷的方式,无需进行常规的安装过程,便于在需要快速部署或移动环境中的使用。 此免安装版本包含的核心组件通常有以下几部分: 1. **Instant Client**: Oracle ...
Oracle11g免安装的32位客户端是针对那些需要在Windows系统上使用32位Oracle数据库连接工具的用户设计的。这个版本的客户端无需经历完整的安装过程,只需下载压缩包,解压后配置相关环境变量,即可方便快捷地进行...
"plsql 免安装oracle客户端版"意味着这个版本的PLSQL Developer包含了Oracle客户端组件,用户无需单独下载和安装Oracle数据库客户端即可使用。这对于那些没有权限或者不想在计算机上安装完整Oracle客户端的用户来说...
Oracle Database 9i/10g/11g编程艺术深入数据库体系结构中文版,内容含盖9i/10g/11g,绝对超值。