linux – 在Oracle中,如何更改“默认”数据库?

我真的应该知道这一点,但有人会告诉我如何在Linux上更改默认数据库吗?

例如:

我在server1上有一个数据库test1,ORACLE_SID = test1.所以,要连接到test1,我可以使用:

sqlplus myuser/password

连接到默认数据库test1

我现在想将默认的sqlplus连接转到服务器server2上的数据库test2.

所以,我更新了tnsnames,以便旧的test1条目现在指向test2 @ server2.我还为test2添加了一个指向同一个地方的单独条目.但是,默认连接似乎仍然是test1 @ server1.

以下两者都可以正常工作并转到server2上的数据库test2:

sqlplus myuser/password@test1
sqlplus myuser/password@test2

但是默认连接sqlplus myuser / password转到test1 @ server1.

有任何想法吗?

谢谢.

最佳答案
为了扩展kerchingo的答案:Oracle有多种方法来识别数据库.

最好的方法 – 你应该经常使用的方法 – 是USER / PASSWORD @ SERVER.这将使用Oracle命名查找(tnsnames.ora)来查找实际的服务器,每次连接到它时,它可能位于不同的物理主机上.您还可以将Oracle连接字符串指定为SERVER,但假装您不能.

还有两种方法可以通过环境变量指定默认服务器.第一个是TWO_TASK,它使用命名查找,第二个是ORACLE_SID,它假定服务器在当前机器上运行. ORACLE_SID优先于TWO_TASK.

你应该总是使用显式连接字符串的原因是你不知道用户是否设置了TWO_TASK,ORACLE_SID,两者都是,或者两者都没有;你也不知道他们可能会做什么.将两者设置为不同的值是一个特别痛苦的诊断问题,特别是通过电话与一个不太了解Oracle如何工作的人(去过那里,做过那样).

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...