~~redhatlinux as3 RAC 配置监听问题~数据库连接错误~~
两台IBM 71C 41C 服务器,系统redhatlinux as3
配置RAC,oracle9i 和 dbac 都正常
查资料,lsnrctl的配置应该是TAF模式
tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1als)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2als)(PORT = 1521))
(LOAD_BALANCE = on)
(FAILOVER = on)
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
(FAILOVER_MODE =
(TYPE = session)
(METHOD = basic)
)
)
)
listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1als)(PORT = 1521))
)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/ora9/product/ 9.2.0 )
(PROGRAM = extproc)
)
(SID_DESC =
(ORACLE_HOME = /opt/ora9/product/ 9.2.0 )
(SID_NAME = orcl1)
)
)
---------------------------------------------------------
lsnrctl启动也没问题
$ srvctl status database -d orcl
Instance orcl1 is running on node rac1als
Instance orcl2 is running on node rac2als
-------------------
客户机安装了sqlplus,system/oracle@orcl可以连接
SQL>;select instance_name from v$instance;
instance_name: orcl1
如果拔掉节点1的网先再重新连接再重新连接
SQL>;select instance_name from v$instance;
instance_name: orcl2
---------------
但在服务器节点1上执行
$srvctl stop instance -d orcl -i orcl1 -o abort
就是停不掉orcl1服务,节点2上执行
$srvctl stop instance -d orcl -i orcl2 -o abort
可以停掉服务
现在节点1 $oemapp dbastudio
进入后输入用户和密码,不能进入,在终端下提示信息
java.lang.ArrayIndexOutofBoundeException:16
at oracle.net.nl.NVTokens.parseTokens(NVTokens.java)
at oracle.net.nl.NVFactory.createNVPair(NVFactory.java)
at oracle.net.nl.NLParamParser.addNLPlistElement(NLParamParser.java)
at oracle.net.nl.NLParamParser.<init>;(NLParamParser.java)
at oracle.sysman.vdb.VdbUtil.findInTNSFile(vdbUtil,java:156)
..................................下面还有
java:266 java:1118 java:417 java:446 java:271
节点2就可以正常连接数据库
-----------------------------
1.监听的配置是否正确?
2.节点1的oracle连不上数据库是什么问题?
高手门,帮下忙阿,谢谢谢谢了
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
哎~~~这么到我这,就没人了
监听不正确
如下:
LISTENER_orcl1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1als)(PORT = 1521))
)
)
)
SID_LIST_LISTENER_orcl1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /opt/ora9/product/ 9.2.0 )
(PROGRAM = extproc)
)
(SID_DESC =
(ORACLE_HOME = /opt/ora9/product/ 9.2.0 )
(SID_NAME = orcl1)
)
)
节点2类似
我咋看这一样阿?
哦。。。。
SID_LIST_LISTENER_orcl1 =
LISTENER_orcl1 =
就这里不同吗?
我咋看这一样阿?
哦。。。。
SID_LIST_LISTENER_orcl1 =
LISTENER_orcl1 =
就这里不同吗?
是的,就这里不同,当然你原来的那个需要停掉
lsnrctl stop listener
lsnrctl start LISTENER_orcl1
linux下我没有改动过监听,不知道是不是这样啊