我正在重新编译一些Pro * C代码,目前我公司的任何人都没有编译过。它正在编译好,但是当我将它复制到生产服务器并运行它时,我收到Oracle错误ORA-12547(TNS:失去联系)
有什么想法吗?
答案 0 :(得分:2)
哦,想通了。 : - )
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
答案 1 :(得分:0)
与此相关,我发现当我尝试使用PL / SQL连接到Oracle数据库并且同时我有一个VPN连接时,我得到了同样的错误ORA-12547 TNS在我的Windows机器上丢失了联系人开。
答案 2 :(得分:0)
我在Linux,Oracle 11gR2上遇到了类似的问题。 Oracle所有者可以运行SQL * Plus并通过TNS或本地连接进入。非oracle用户可以通过TNS登录,但不能作为本地连接登录。
结果是答案是ORACLE_HOME文件系统已挂载“nosuid”。删除该挂载选项解决了我的问题。