使用默认 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的主要内容,如果未能解决你的问题,请参考以下文章

解决oracle11g的ORA-12505问题

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