前几天接到一个任务,要求给我们负责的数据库上配置一个透明网关,因为以前配置过10g的,大概看了几眼11g的官方文档,估计应该跟10g的配置一样,感觉应该什么难度,正好自己本机上就有一个p13390677_112040_Linux-x86-64_5of7的安装包,然后直接sftp上传,解压,然后打开xstart准备开始安装。
很快安装结束并执行root.sh 以上不在复述,然后在配置监听的地方遇到点问题,因为是在已经有数据库的机器上的安装,所以listener port不能是原有数据库listener的1521,要换成其他的端口,这里给换成了1522,监听名称为LISTENER_B 结果启动的时候就报错,然后查看listener.ora如下:
LISTENER_B =
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.112)(PORT=1522))
)
SID_LIST_LISTENER_1W=
(SID_LIST=(
SID_DESC=(SID_NAME=dg4msql)
(ORACLE_HOME=/app/gateway/product/11.2)
(PROGRAM=dg4msql))
)
官方文档中说,如果已经存在监听的需要在listener.ora配置文件当中也要如下的修改:
LISTENER_B =
(DESCRIPTION_LIST =
(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.112)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
)
)
SID_LIST_LISTENER_B =
(SID_LIST =
(SID_DESC =(SID_NAME = PLSExtProc)
(ORACLE_HOME = /app/gateway/gw_2/product/11.2)
(PROGRAM = extproc)
)
(SID_DESC =(SID_NAME = msdb10k)
(ORACLE_HOME = /app/gateway/gw_2/product/11.2)
(PROGRAM=dg4msql)
)
)
因为在$GATEWAY_HOME/dg4msql/admin目录下的initdg4msql.ora文件我给改成了initmsdb10k.ora,这里我设置的SID就是msdb10k(因为10G就是这么设置的,SID是自己起的名字)
设置之后监听就起来了,但是创建的dblink就一直报ORA-28500的错误。但是最后就是访问不了,排查了用户密码大小写的问题,用双引号小写来创建dblink还是不行,一直报错,询问之后才知道MS SQL-Server是32位的。估计可能32位和64位版本的问题,我装的gateway是x64的,最后只得删除之后重新安装32位的gateway。装好,建好监听,发现用dblink还是不行,最后排查到原来11g需要使用MS SQL-Server的真实的数据库名称,然后把在$GATEWAY_HOME/dg4msql/admin目录下的initdg4msql.ora改成实际的initccdb.ora
listeners.ora也进行修改:
LISTENER_B =
(DESCRIPTION_LIST =
(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.112)(PORT = 1522))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
)
)
SID_LIST_LISTENER_B =
(SID_LIST =
(SID_DESC =(SID_NAME = PLSExtProc)
(ORACLE_HOME = /app/gateway/gw_2/product/11.2)
(PROGRAM = extproc)
)
(SID_DESC =(SID_NAME = ccdb)
(ORACLE_HOME = /app/gateway/gw_2/product/11.2)
(PROGRAM=dg4msql)
)
)
最后用
CCDB=
(DESCRIPTION =
(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.112)(PORT = 1522))
)
(CONNECT_DATA =(SID = ccdb)
)
(HS=OK)
)
来创建dblink,成功。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12216142/viewspace-1124540/
,如需转载,请注明出处,否则将追究法律责任。