前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >案例:数据库无法登录发生ORA-12560/ORA-12557错误

案例:数据库无法登录发生ORA-12560/ORA-12557错误

作者头像
SQLplusDB
发布2020-03-26 10:38:38
2.3K0
发布2020-03-26 10:38:38
举报
Keyword:

ORA-12560 ORA-12557 BEQ 数据库连接 登录

##问题:

Windows环境下进行数据库登陆时,发生ORA-12560/ORA-12557错误。

> oerr ora 12560

12560, 00000, "TNS:protocol adapter error"

// *Cause: A generic protocol adapter error occurred.

// *Action: Check addresses used for proper protocol specification. Before

// reporting this error, look at the error stack and check for lower level

// transport errors. For further details, turn on tracing and reexecute the

// operation. Turn off tracing when the operation is complete.

> oerr ora 12557

12557, 00000, "TNS:protocol adapter not loadable"

// *Cause: On some platforms (such as OS/2) protocol adapters are loaded at

// run-time. If the shared library (or DLL) for the protocol adapter is

// missing or one of its supporting libraries is missing then this error is

// returned.

// *Action: For further details, turn on tracing and reexecute the operation.

// The trace file will include the name of the shared library (or DLL) that

// could not be loaded.

通常来讲,ORA-12560和ORA-12557错误常常是由于环境变量等设置不正确引起,

本文介绍连接错误基本的解决思路和方法。

##解决错误的基本思路:

1.确认用户连接方法和数据库认证方式,是否使用了Listener监听登陆,在BEQ登陆的方式下是否有同样的问题

2.查看网络相关的配置文件sqlnet.ora、listener.ora、tnsnames.ora的配置

3.查看告警日志alert和trace中,发生问题时是否有其他的错误或异常发生

4.查看用户环境变量的设置

##解决过程:

1.用户的连接方法:

用户在不使用监听(Listener)本地BEQ连接的时候也发生问题。

用户的连接方法如下,即使用了OS认证。

sqlplus / as sysdba

2.查看用户网络相关的配置文件sqlnet.ora:

sqlnet.ora中AUTHENTICATION_SERVICES设置成了NTS,即可以使用OS认证

SQLNET.AUTHENTICATION_SERVICES= (NTS)

3.查看警日志alert和trace,有相关的TNS错误

TNS-12537: TNS:connection closed

ns secondary err code: 12560

nt main err code: 0

nt secondary err code: 0

nt OS err code: 0

opiodr aborting process unknown ospid (872) as a result of ORA-609

4.根据上面的内容,可能和用户环境的设定会有很大的关系。

用户设定ORACLE_HOME和ORACLE_SID后连接发生ORA-12557错误。

5.取得环境变量:

C:\Users>set

ORACLE_HOME=D:\oracle\product\11.2.0\dbhome_1 ★<--

...

Path=D:\MicroFocus\NetExpress5.1\Base\BIN;D:\oracle\product\11.2.0\client_1\bin;★<--

ORACLE_HOME和PATH的设定有所不同,启动的bin文件是某Client端的内容。

可能是由于同一台机器装了不同的客户端和服务器端,而卸载时没有卸载干净导致的。

5.

要求用户设定ORACLE_HOME和ORACLE_SID以及PATH后连接成功。

> echo %ORACLE_HOME%

> echo %ORACLE_SID%

> echo %PATH%

> set ORACLE_HOME=

> set ORACLE_SID=

> set PATH=%PATH%;%ORACLE_HOME%/bin

> echo %ORACLE_HOME%

> echo %ORACLE_SID%

> echo %PATH%

> sqlplus / as sysdba

> select * from V$INSTANCE;

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Oracle数据库技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档