【发布时间】:2009-04-23 13:16:23
【问题描述】:
我正在重新编译一些我公司目前没有人编译过的 Pro*C 代码。它编译正常,但是当我将它复制到生产服务器并运行它时,我收到 Oracle 错误 ORA-12547 (TNS: lost contact)
有什么想法吗?
【问题讨论】:
标签: oracle tns oracle-pro-c
我正在重新编译一些我公司目前没有人编译过的 Pro*C 代码。它编译正常,但是当我将它复制到生产服务器并运行它时,我收到 Oracle 错误 ORA-12547 (TNS: lost contact)
有什么想法吗?
【问题讨论】:
标签: oracle tns oracle-pro-c
哦,想通了。 :-)
C 可执行文件不直接在服务器上运行,而是通过设置连接环境的脚本启动。即这样的事情:
export SHLIB_PATH=/oracleDatabaseSidHere/oracle/10.2/lib:/usr/lib:/oracleDatabaseSidHere/oracle/10.2/odg/lib
export ORACLE_BASE=/oracleDatabaseSidHere/oracle
export ORACLE_SID=oracleDatabaseSidHere
export ORACLE_HOME=/oracleDatabaseSidHere/oracle/10.2
# Set up the path and executable to run
PATH=.\:$PATH:$ORACLE_HOME/bin:/usrlocal/bin
PATH=$PATH:/path_to_application_logs
cd /path_to_application
application
【讨论】:
与此相关,我刚刚发现当我尝试使用 PL/SQL 连接到 Oracle 数据库并且同时我有 VPN 连接时,我在我的 Windows 机器上收到相同的错误 ORA-12547 TNS 失去联系打开。
【讨论】:
我在 Linux 上遇到了类似的问题,Oracle 11gR2。 Oracle 所有者可以运行 SQL*Plus 并通过 TNS 或本地连接进入。非 oracle 用户可以通过 TNS 登录,但不能作为本地连接。
原来答案是 ORACLE_HOME 文件系统挂载为“nosuid”。删除该挂载选项解决了我的问题。
【讨论】: