Solved oracle: fatal: open failed:

Posted on 2005-10-19
Last Modified: 2007-12-19
Running Oracle 10g under solaris 9

When I try going into sqlplus as user b, i get message:

Enter user-name: oracle: fatal: open failed: No such file or directory
ORA-12547: TNS:lost contact

I go in as user a and everything is fine.  I've copied user a .profile to user b and still get the error.
Any ideas what is the problem?
Question by:xoxomos

    Author Comment

    I've just noticed, the userid that works has both a .profile and a .bash_profile
    The one that doesn't has only a .profile.  
    LVL 47

    Expert Comment

    The OS user B has to have same Oracle environment variables as user A
    in order to get access to the Oracle binaries and libraries.

    Author Comment

    Yeah, I copied Oracles .profile into user b but that doesn't seem to make a difference.

    Author Comment

    If I go:
    psdwp /sysadm/xoxomos $ sqlplus

    SQL*Plus: Release - Production on Wed Oct 19 10:50:56 2005

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

    Enter user-name: student
    Enter password: oracle: fatal: open failed: No such file or directory
    ORA-12547: TNS:lost contact

    Enter user-name:

    But  as the same os user I can go

    psdwp /sysadm/xoxomos $ sqlplus student/nt311m3nt@dwproddb

    SQL*Plus: Release - Production on Wed Oct 19 10:52:17 2005

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

    Connected to:
    Oracle Database 10g Enterprise Edition Release - 64bit Production
    With the Partitioning, OLAP and Data Mining options


    And everything is fine.???????????

    LVL 6

    Accepted Solution

    Try to follow this thread, it is simular to your problem.

    The way you tried to connect before is called a direct/bequeath connection. This works by directly creating a new oracle process from sqlplus and comunicating with it using a pipe (no listener involved) . But since you were running it as a different user it was having some problems starting, I am not sure exactly why, maybe its permissions on the shared memory segments or the actual data files. In principle it should be able to work this way,even from another user, but maybe not on all platforms and depending on permissions, I am not sure.

    The second way was connecting via the network listener (dependant on your tnsnames configuration) and the oracle process will get started by the oracle user, so there are no problems with permissions on shared memory or files.

    You can set a TWO_TASK environment variable to dwproddb and the it would connect without specifying the @dwproddb.
    When TWO_TASK is defined any connection you make without specifying a TNS entry will get "@TWO_TASK" glued to it before trying to connect. This works exactly as if you have connected to "sqlplus user/pass@dwproddb".

    Author Comment

    I'll close this and try to follow that thread you mentioned.  Exporting the TWO_TASK inside the script even has the cron job running again ok.

    Featured Post

    Looking for New Ways to Advertise?

    Engage with tech pros in our community with native advertising, as a Vendor Expert, and more.

    Join & Write a Comment

    Suggested Solutions

    Title # Comments Views Activity
    surrogate key in database world 6 61
    Oracle Pivot 8 56
    SAP and ODBC links 2 69
    oracle query help 29 52
    Subquery in Oracle: Sub queries are one of advance queries in oracle. Types of advance queries: •      Sub Queries •      Hierarchical Queries •      Set Operators Sub queries are know as the query called from another query or another subquery. It can …
    How to Unravel a Tricky Query Introduction If you browse through the Oracle zones or any of the other database-related zones you'll come across some complicated solutions and sometimes you'll just have to wonder how anyone came up with them.  …
    This video explains at a high level about the four available data types in Oracle and how dates can be manipulated by the user to get data into and out of the database.
    This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function

    746 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    15 Experts available now in Live!

    Get 1:1 Help Now