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.

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone. Privacy Policy Terms of Use

    Featured Post

    Learn The Basics of Ethical Hacking & Pen Testing

    Computer and network security is one of the fastest growing and most essential industries in technology, meaning companies will pay big bucks for ethical hackers. This is the perfect course to leap into this lucrative career, learning how to use ethical hacking to reveal ...

    Truncate is a DDL Command where as Delete is a DML Command. Both will delete data from table, but what is the difference between these below statements truncate table <table_name> ?? delete from <table_name> ?? The first command cannot be …
    How to Create User-Defined Aggregates in Oracle Before we begin creating these things, what are user-defined aggregates?  They are a feature introduced in Oracle 9i that allows a developer to create his or her own functions like "SUM", "AVG", and…
    This video shows how to copy a database user from one database to another user DBMS_METADATA.  It also shows how to copy a user's permissions and discusses password hash differences between Oracle 10g and 11g.
    Video by: Steve
    Using examples as well as descriptions, step through each of the common simple join types, explaining differences in syntax, differences in expected outputs and showing how the queries run along with the actual outputs based upon a simple set of dem…

    680 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

    26 Experts available now in Live!

    Get 1:1 Help Now