“Fatal OSN connect error 12547”的分析

        今日安装一应用,数据库采用的是Oracle 8i。
        按照说明安装并配置,但是无法连接到数据库。查看sqlnet.log文档,内容如下:


***********************************************************************
Fatal OSN connect error 12154, connecting to:
 ORA8

  VERSION INFORMATION:
    TNS for 32-bit Windows: Version 2.3.4.0.0 - Production
  Time: 17-JAN-07 13:58:10
  Tracing not turned on.


***********************************************************************
Fatal OSN connect error 12547, connecting to:
 (DESCRIPTION=(ADDRESS_LIST=
        (ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle80)(ARGV0=oracle80ORCL)
        (ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))')))
        (CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=XXXX.exe)(HOST=PC-002)(USER=Administrator))))

  VERSION INFORMATION:
    TNS for 32-bit Windows: Version 2.3.4.0.0 - Production
    Oracle Bequeath NT Protocol Adapter for 32-bit Windows: Version 2.3.4.0.0 - Production
  Time: 17-JAN-07 13:58:10
  Tracing not turned on.
  Tns error struct:
    nr err code: 12206
    TNS-12206: Message 12206 not found; No message file for product=NETWORK, facility=TNS
    ns main err code: 12547
    TNS-12547: Message 12547 not found; No message file for product=NETWORK, facility=TNS
    ns secondary err code: 12560
    nt main err code: 517
    TNS-00517: Message 517 not found; No message file for product=NETWORK, facility=TNS
    nt secondary err code: 0
    nt OS err code: 0
***********************************************************************

    到Google上搜索吧,信息挺少,只好到MSN上找高人请教了。
    网友wish发来的解决帖,并附其翻译(呵呵,怎知俺鸟语不咋地呢?)

1) Make sure your tnsnames.ora have the same correct entries on both local and remote databases.
then lsnrctl reload

确保你的tnsnames.ora文件在本地和远程数据库都有正确的实体名
然后lsnrctl重新加载

2) create a public database link on the local database:
As sys (or a user that can create dblinks):
CREATE PUBLIC DATABASE LINK <choose name="" a="">
CONNECT TO LINKUSER
IDENTIFIED BY
USING '
';

在本地数据库创建一个公共的数据库的连接 :
作为sys(或者可以创建数据库连接的用户):
CREATE PUBLIC DATABASE LINK <选择一个名字>
CONNECT TO LINKUSER
IDENTIFIED BY <有效的密码>
USING '<指向远程数据库的tnsnames.ora文件的服务名>';


3) On the remote database, create a user for the link to use:
CREATE USER LINKUSER IDENTIFIED BY <the above="" password="" valid="">
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE <an profile="" appropriate="">

在远程数据库里创建一个使用连接的用户
CREATE USER LINKUSER IDENTIFIED BY <上面有效的密码>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
PROFILE <一个适当的profile>


ACCOUNT UNLOCK;
4) GRANT CONNECT TO <the above="" name="" link="" chosen="">;
or perhaps
grant create session to linkuser;

解锁帐户
4) GRANT CONNECT TO <上面选择的连接>;
或者
grant create session to 连接用户;

Also make sure the tables and column names called in the trigger are valid ones.

    吼吼,希望有用,只有明天试试看了。。。。。。。。</the> </an></the>
</choose>

你可能感兴趣的:(oracle,windows,OS,Google)