Tag:开源 , 源码 , 控件 , 控件开发 , 皮肤 , Skin , MVC , WCF , Remoting , AJAX , JQuery , Flex , Silverlight , SQL Server , 设计模式 , 框架 , 正则 , Web服务 , 数据库 , PetShop , WordPress , XP同时安装Oracle9i与Oracle10g遇到的问题和解决
 CS Windows 程序员之窗
 
您的位置: >> 首页 >> .Net博文 >> 同时安装Oracle9i与Oracle10g遇到的问题和解决(WinXP)

同时安装Oracle9i与Oracle10g遇到的问题和解决(WinXP)

2010-07-26  来自:CSDN  字体大小:【  
  • 摘要:因工作需要,需要在本机安装Oracle10g,之前本机已经安装了一个Oracle9i,后来在安装完Oracle10g之后,发现Home Selector中还是只有一个Home,报告的错误是:"there is only one(1) oracle home defined on this machine..."

最近因工作需要,需要在本机安装Oracle10g,之前本机已经安装了一个Oracle9i,后来在安装完Oracle10g之后,发现Home Selector中还是只有一个Home,报告的错误是:"there is only one(1) oracle home defined on this machine...",因为当时10g和9i没有装在同一个目录中,所以以为是目录问题,然后把10g卸载了,重新安装后还是存在这个问题,这个时候,灵机一动,原来有一台服务器上安装了一个Oracle9i和Oracle form,但是服务器上的Home Selector中是可以在Oracle9i和Oracle form之间切换的,于是把注册表打开,研究了一下,惊喜的发现:

HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/ALL_HOMES/下面有一个ID0,里面包含三个键值:NAME,PATH,NLS_LANG,于是在本机注册表中新建了一个ID1,把ID0里面的三个键值如法炮制,其中的PATH指向10g的安装目录,然后再启动Home Selector,问题解决了.

修改后的注册表内容如下:

Windows Registry Editor Version 5.00

[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\ALL_HOMES\ID1]
"NAME"=hex(7):4f,00,72,00,61,00,48,00,6f,00,6d,00,65,00,31,00,30,00,67,00,00,\
  00,00,00
"PATH"=hex(7):44,00,3a,00,5c,00,6f,00,72,00,61,00,63,00,6c,00,65,00,5c,00,70,\
  00,72,00,6f,00,64,00,75,00,63,00,74,00,5c,00,31,00,30,00,2e,00,32,00,2e,00,\
  30,00,5c,00,64,00,62,00,5f,00,31,00,00,00,00,00
"NLS_LANG"=hex(7):4e,00,41,00,00,00,00,00

最后,还要谈一谈listener配置和tnsnames配置的问题:

因为Oracle默认端口为1521,本机的1521已被Oracle9i的listener 占据,所以,最终把Oracle10g的listener 端口号设置成了另外一个端口1522,请注意,在使用10g的Net Configuration Assistant进行listener配置 时,一定不要修改listener 的任何默认设置:名称(LISTENER)或端口号(1521)(因为如果修改了默认名称或者端口号会造成在Windows服务管理器中找不到10g的listener 服务的问题),配置完成后,Oracle应用程序会自动将9i的listener 停止,因为其端口1521与当前的10g的listener 冲突了,请保持镇定,先在Windows服务管理器中手动停止10g的listener 服务(本机名称为OracleOraDb10g_home1TNSListener),然后进入D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN(本机安装目录),在文本编辑器中修改listener.ora中LISTENER的端口号为1522,保存listener.ora文件,最后,在Windows服务管理器中分别手动启动9i和10g的listener 服务(本机名称分别为OracleOraHome92TNSListener和OracleOraDb10g_home1TNSListener),如你所愿,两个listener 服务都会成功启动.

剩下的就是本地Net服务名的配置了,也就是tnsnames的配置,配置过程与9i相同,唯一需要注意的就是把端口号修改为1522即可.

在本机调试的时候,可以依据需要利用Home Selector在9i和10g之间自由切换,同时,其他机器请求本机的10g和9i服务均一切正常.

 

作者:sharpnessdotnet
相关文章:
该文章已有条评论 我要发表评论
Website Statisticsflip hd camcorder