SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\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 = C:\app\Administrator
将localhost直接改为本机Ip地址,重启监听服务停止监听:lsnrctl stop
启动监听:lsnrctl start
查看监听:lsnrctl status
结果失败。
正确的方式,运行Net Configuration Assistant,修改监听配置,一步一步即可,无需修改任何数据结果listener.ora文件变为:
# listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\Administrator\product\11.2.0\dbhome_1)(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll"))
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = WIN-VI5UF46V3UG)(PORT = 1521)))
)
ADR_BASE_LISTENER = C:\app\Administrator
Host处变为主机名,这样远程计算机就可以访问服务器了。
无需修改服务方式为共享还是专用,无需修改IP地址,可能该向导在后面自动做了很多工作
Oracle客户端连接服务端,监听端口是固定的1521。但是,监听连接后,会随机分配一个端口,并告知客户端连接此端口,获取数据。
这就造成 路由器的端口映射无法设置,使用防火墙的,也会有这个问题。
但是部署在Unix系统上的Oracle,不存在此问题,原因不再深究。
解决如下:在注册表 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME x(x目录编号)上新建一个字符串值:USE_SHARED_SOCKET=TRUE。
如果安装了多个目录,则每个类似的目录都要设置。并重启 数据库。
这样设置就是告知Oracle,不要随机分配连接端口,而是总是使用与监听相同的1521端口。
在linux机器上写一个shell脚本:功能如下:
1)远程连接内网的数据库导出到linux机器的目录里
2)远程连接外网的数据库把刚导出的文件导入外网数据库.
3)成功导入后把文件删除.
把scripts放在crontab 里定时执行.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)