手动制作Oracle9i/10g客户端的实用方法

其实,现在有了Instant Client,可能真的没有必要去尝试制作Oracle客户端。这里,我想说说自己的理由:

1. Instant Client的bug远多于Oracle客户端package,这个是经过很多实践发现的。

2. 爱好技术的人都想看看一个client包,到底如何提取,即算有些冗余,也没多大关系。

3. 当你制作出一份客户端出来以后,只需要这一次制作,不用再重新安装客户端,解压即可使用。

我们先来看看Oracle9i,从它开始:

这里作一个假定,就是Client要安装在D盘d:\oracle\ora92下边,把d:\oracle作为所有Oracle版本的根目录ORACLE_BASE,这样就容易处理一些。而ora92子目录只是作为ORACLE_HOME。

然后开始抽取一些有用的子目录。假设你在别的机器上已经有一份已经安装好的Oracle9i 服务器,它位于c:\oracle\ora92,我推荐提取以下子目录:

assistants

bin

database

dbs

network

oci

ocommon

ODBC

oledb

oracore

otrace

plsql

rdbms

slax

sqlplus

bin中其实有很多可以不用的可执行程序,可以直接删掉,我们可以自行决定。oci子目录便于开发基于OCI的应用程序。ODBC用于ODBC驱动,oledb用于OLEDB。其它子目录都是必须的。

上边是基本的文件抽取。将这些文件复制到d:\oracle\ora92目录当中。然后,需要一个注册表文件来注册它,这个非常关健,以前常有人问我为何不起作用,大多注册表中的内容不正确,或者没有注册。

注册表的内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]

"inst_loc"="C:\\Program Files\\Oracle\\Inventory"

"ORACLE_HOME"="D:\\oracle\\ora92"

"ORACLE_HOME_NAME"="OraHome92"

"API"="D:\\oracle\\ora92\\dbs"

"ORACLE_GROUP_NAME"="Oracle - OraHome92"

"NLS_LANG"="NA"

"VOBHOME2.0"="D:\\oracle\\ora92"

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES]

"HOME_COUNTER"="1"

"DEFAULT_HOME"="OraHome92"

"LAST_HOME"="0"

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\ID0]

"NAME"="OraHome92"

"PATH"="D:\\oracle\\ora92"

"NLS_LANG"="NA"

[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0]

"ID"="0"

"ORACLE_GROUP_NAME"="Oracle - OraHome92"

"ORACLE_HOME_NAME"="OraHome92"

"ORACLE_HOME"="D:\\oracle\\ora92"

"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

"ORACLE_HOME_KEY"="Software\\ORACLE\\HOME0"

"SQLPATH"="D:\\oracle\\ora92\\dbs"

"ORACLE_BASE"="D:\\oracle"

"MSHELP_TOOLS"="D:\\oracle\\ora92\\MSHELP"

"RDBMS_CONTROL"="D:\\oracle\\ora92\\DATABASE"

"RDBMS_ARCHIVE"="D:\\oracle\\ora92\\DATABASE\\ARCHIVE"

将这个文件注册到注册表。

并把d:\oracle\ora92\bin添加到你的PATH环境变量当中,然后运行: sqlplus,看看有没有错。在d:\oracle\ora92\network\admin\tnsadmin.ora文件中添加一些Oracle服务主机信息,就可以使用了。

最后,作为建议,我推荐把当前用户加到组"ORA_DBA"当中。

在用户管理当中,新建组"ORA_DBA",然后添加当前用户到该组。

基本上就这些步骤。抽取干净,总共也就200兆,去掉不相干的,可以压缩成一个压缩文件大概只有20来兆。想想原始的oracle9i安装完,大概要占2G多的样子,差别太明显了。

至于10g,相信如果上述步骤能顺利走过,10g应该不成问题。

如果有兴趣,还可以试试自己提取文件,做成Oracle Server的绿色版,无需安装,只需要几个命令即可。

曾经试过Oracle9i和Oracle10g的提取和免安装。自己动手做这些,有助于加深对Oracle的了解。

 
关于使用Oracle9i时,无法找到客户端的解决办法
  这个其实是由于Oracle9i装在2000的NTFS分区上产生的错误。主要是IIS的权限不足,找不到Oracle9i的文件导致的错误。    Oracle 公司的原版资料: ...查看完整版>>关于使用Oracle9i时,无法找到客户端的解决办法
 
关于使用Oracle9i时,无法找到客户端的解决办法
  这个其实是由于Oracle9i装在2000的NTFS分区上产生的错误。主要是IIS的权限不足,找不到Oracle9i的文件导致的错误。  Oracle 公司的原版资料:  Problem Description -------------------  When running an...查看完整版>>关于使用Oracle9i时,无法找到客户端的解决办法
 
PL/SQL Developer 与 oracle 10g 客户端兼容性问题解决方法
摘要:PL/SQL Developer 与 oracle 10g 客户端兼容性问题解决方法 1. First, Download latest verison of PL/SQL Developer.URL: http://www.allroundautomations.comMarch 6, 2004 - Version 5.1.5 released Bugfix...查看完整版>>PL/SQL Developer 与 oracle 10g 客户端兼容性问题解决方法
 
PL/SQL Developer 与 oracle 10g 客户端兼容性问题解决方法
1. First, Download latest verison of PL/SQL Developer.URL: March 6, 2004 - Version 5.1.5 released Bugfixes Could not use LOB's or Objects on Oracle 10g Number precision would be incorrect on Oracle 9....查看完整版>>PL/SQL Developer 与 oracle 10g 客户端兼容性问题解决方法
 
Oracle9i到10g,空闲等待事件的变化
从Statspack的创建脚本中,我们可以看到从Oracle9i到Oracle10g,空闲等待事件的改变.空闲等待事件在Statspack中,记录在系统表STATS$IDLE_EVENT中.检查其创建脚本我们可以找到这些变化.这个脚本位于$ORACLE_HOME/rdbms/...查看完整版>>Oracle9i到10g,空闲等待事件的变化