LINUX下为ORACLE多个实例配置监听

我的系统是CENTOS6.4 主机名是bogon 装的ORACLE 11G 创建了三个实例 orcl pricing test
重启机后就只有orcl一个实例有监听 按照下面这个修改后(netmgr图形方式)
http://blog.csdn.net/shcy0524/article/details/6846701

链接另外两个实例就变成了ORA-01034&ORA-27101错误

现在有一个监听 LISTENER 端口是1521 请问如何配置让三个实例公用这一个监听

监听上不用任何设置,pmon每2分钟都会检查一下实例,会自动注册service到监听的,除非你数据库没有正常启动。我觉得你就属于后一种情况,另外两个实例重启后没正常启动追问

添加了两个启动脚本 把两外两个实例也给设为自启动了 重启机 链接另外两个实例 还是相同报错

追答

别要监听文件了,给它改个名,重新启动监听,看一下监听状态,是否有这三个db服务在监听
重启监听:
lsnrctl stop
lsnrctl start
查看状态:
lsnrctl status

追问

三个实例都有监听 可还是报错...

追答

这是静态监听啊,不管db是否启动它都会有,按我说的用动态监听,把listener.ora文件改个名字,重新启动一下监听,过个2分钟,再贴一下状态?

追问

改成名LISTENER1.ORA    这个效果 貌似一个都没有了...

追答

每个库用sqlplus
alter system set local_listener='(ADDRESS=(PROROCOL=TCP)(HOST=这里换成ip)(PORT=1521))';
ALTER SYSTEM REGISTER;
操作系统下再看一下监听状态
lsnrctl status

追问

另外两个实例根本上不去 怎么用SQL?

追答

在主机上先看一下你orcl pricing test这三个实例启动没有

export ORACLE_SID=orcl

sqlplus "/as sysdba"
select status from v$instance;
结果应该是open
export ORACLE_SID=pricing

sqlplus "/as sysdba"
select status from v$instance;
结果应该是open
export ORACLE_SID=test

sqlplus "/as sysdba"
select status from v$instance;
结果应该是open
如果都是open状态,监听会自动注册的

追问

按照您的方法做了 第二和第三个实例返回结果是这样:

第一个实例是正常OPEN的

追答

哈哈,我说么,数据库不open,动态监听是不会注册的,有也连接不上
你手动把两个库启动起来吧
在服务器上
export ORACLE_SID=未open的实例名
sqlplus "/as sysdba"
startup force
select status from v$instance;
结果应该是open
然后再看监听

温馨提示:答案为网友推荐,仅供参考