您的位置:首页 > 数据库 > Oracle

关于用其他32位客户端 连接64位oracle 的lisner的配置方案

2014-03-19 13:37 399 查看
网上差了很多资料 都很片面 没有实用价值 只好自己写一份留着以后省的忘了

首先按照前面的方法安装配置好64位oracle 并且本机情况下直接可以用32位client 连接进入oracle 才涉及以下问题:

本文要解决的主要问题:其他用户使用他们自己的电脑连接你服务器上的64位oracle 经常提示监听错误

简单说明下原理 以下都说的是服务器端 不是个人电脑 !!!

oracle安装目录下一般都会有几个文件 比如我的目录下D:\app\Louis_chen\product\11.2.0\dbhome_1\NETWORK\ADMIN

有三个文件listener.ora;sqlnet.ora;tnsnames.ora 这些文件就是配置连接数据库的大家都知道,但是具体怎么用可能就不是很清楚了

listener.ora 用来监听别人电脑登录你的oracle 如果自己登录就不用配置了(但是如果你用plsql/developer登录的话就算是用别人的电脑来登陆 这是后你必须配置这个文件)

tnsnames.ora用来配置你要登录的oracle ip 端口 和Instance 这个比较简单就不说了

重点

说下我的环境我在本机的network\admin下面没有那三个ora文件,为什么呢?因为我不需要!我在本机上有oracle server也有client,由于oracle64位的不支持plsql/developer所以解决的办法就是下一个32位的oracle client 然后解压到D:\app\Louis_chen\product下,全路径就是D:\app\Louis_chen\product\instantclient_11_2,这时候再用oracle原来有的那三个ora文件复制到里面 就可以用developer登录64位oracle了,所以我用不上在sever那个network\admin下面配置那三个文件。

这时候如果别人想要用他们本地的developer登录你的64位oracle又出现问题了 还是上不去自己上的去为啥?

第一你的服务器要开启监听,然后配置下监听文件,就在刚才的product\insatantclient_11_2下面 全文如下,红字表示要改的!

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = CLRExtProc)

(ORACLE_HOME = D:\app\Louis_chen\product\11.2.0\dbhome_1)

(PROGRAM = extproc)

(ENVS = "EXTPROC_DLLS=ONLY:D:\app\Louis_chen\product\11.2.0\dbhome_1\bin\oraclr11.dll")

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

)

)

ADR_BASE_LISTENER = D:\app\Louis_chen

这时候这个lisentner的意思就是只监听自己,所以谁都登陆不上去,包括自己电脑用developer也登陆不上去 会提示监听没有打开!

你要把这个localhost改成你64位oracle那个服务器的ip地址,这样就表示他监听的是连接他这个ip的所有session!

第二就是你要配置你自己本地电脑(本地电脑连接服务器)的tnsname.ora 全文如下 红字表示要改的!

LISTENER_ORCL =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.28.105.149)(PORT = 1521))

ORACLR_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

(CONNECT_DATA =

(SID = CLRExtProc)

(PRESENTATION = RO)

)

)

ORCL =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.28.105.149)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

hzj =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 172.28.105.149)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

hzj表示连接名字 就是一个标识没别的意思 你用developer登陆的时候会选择数据库下拉菜单就是那个!这个的意思不是Instance!!!!2
172.28.105.149表示你要连接的服务器ip地址
orcl表示连接的Instance

最后再强调一点 改完ora配置文件,要重启各种服务才能生效!!!!别说我改完咋还没用啊?那你就2了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐