使用默认 SID 的 Sqlplus 连接 Oracle DB
Posted
技术标签:
【中文标题】使用默认 SID 的 Sqlplus 连接 Oracle DB【英文标题】:Connect Oracle DB using Sqlplus with default the SID 【发布时间】:2017-10-02 04:25:20 【问题描述】:我有 1 个数据库服务器和 1 个应用程序服务器,我想使用 sqlplus
客户端从应用程序服务器连接数据库服务器。并且数据库有两个不同的数据库实例。
我已经在位于应用服务器的sqlplus
客户端中配置了我的TNSnames.ora
,并且我正在使用下面的脚本连接到数据库服务器并且它可以工作:
sqlplus username/password@SID
现在我需要设置 SID,使其取决于登录 linux 的用户 ID。我尝试将ORACLE_SID
导出到我想连接的 SID:
export ORACLE_SID=mySID
sqlplus username/password
我得到了这个错误:
用户名/密码无效
我相信其原因是我没有连接到正确的实例。如何在 Linux 中根据用户登录设置 SID 环境?
【问题讨论】:
【参考方案1】:我找到了解决方案,以防其他人参考:
在 Linux 中,将变量 TWO_TASK
设置为您要配置的别名。
例如如下:
export TWO_TASK=alias2
【讨论】:
我不确定您的示例真正显示的是什么。您需要做的就是导出 ORACLE_HOME 和 ORACLE_BASE 和 ORACLE_SID。这可以存储在每个用户的 ~/.bash_profile(或您正在使用的任何 shell)中。 @bobdylan 当然你可以导出这些。但是,ORACLE_SID 仅适用于 LOCAL DB,不适用于 REMOTE DB。如果你需要从 App 服务器连接 DB 服务器,在这种情况下 ORACLE_SID 不会帮助你。 所以你不是在做@SID,而是在做@TASK_TWO,其中TASK_TWO 是tnsnames 中定义的一些远程数据库名称。这更有意义。以上是关于使用默认 SID 的 Sqlplus 连接 Oracle DB的主要内容,如果未能解决你的问题,请参考以下文章
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解决
oracle ora-01033错误,怎么解决,在sqlplus下用system登陆权限不足
sqlplus连接远程数据库报错 ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME
sqlplus sys 登录提示ora-28009 大神帮帮忙
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor