服务器有很多端口的,所以当你访问不同端口的时候响应的数据不一样。譬如你访问数据库1521 oracle,服务器就知道有人要来访问我的数据库了;反之,如果你访问的是mysql,mysql就傻了,就不会相应你本服务器上的数据库服务。
mysql和oracal是一样的吗?
MYSQL:3306
ORACLE: 1521
有可能是你监听不是指向你现在用的服务,你的oracle服务有两个ACCP、ORCL,你的监听很可能是对应你另外一个你没用的服务。
解决办法是切换监听所对的服务数据库。
1, 在开始中找到Net Manager。
2. 选择监听程序,在右侧上方的下拉列表中,我着显示有点问题,选择数据库服务,配置如下
我默认的是ORCL库,对应的Oracle主目录:
在windows下是 set ORACLE_HOME=d:\oracle\prodcut\10.2.0\db_1
在linux下是 export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
3. 点击文件--》保存设置--》然后重启服务和监听--- 不确定就都重启就是了。
二,另一个办法是添加监听,还是第二个图,添加监听(左侧绿色的加号)--》下拉列表(监听位置)添加地址(在下面),流程如刚才一样,然后保存。
2. 你添加的监听其实在服务中没有的,你需要启动,进入CMD
启动listener1 这个listener1是刚刚添加的监听名字,可以任意起。之后会提示成功。
(最好再把所有服务再重启一边,以防加载不成功)
方法一:在oracle_home下找到lsnrctl.exe 输入 start
方法二
可能认不到实例名
在cmd下运行
set oracle_sid=自己数据库的实例名(大多数orcl)
网上还有很多解决办法
也许不见得管用,这种问题具体问题具体分析比较好。介绍的这2种您的机器还不行。就去修改一个TNSNAMES.ORA。
***************************************************************
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = TESTDB)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = xyz123)(PORT = 1521))
)
)
Listener 改为上面的样子(ORACLE_SID为TESTDB,如果实际不是,自己改一下).
然后lsnrctl stop
lsnrctl start
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)