gpt4 book ai didi

linux - 在 Linux 中设置默认的 ORACLE_SID

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:41:59 25 4
gpt4 key购买 nike

每次登录oracle都报错:

ORA-12162 TNS:net service name is incorrectly specified

所以我不得不运行这个:

ORACLE_SID=mydb; export ORACLE_SID

我想将 mydb 设置为默认的 ORACLE_SID。我一直在寻找方法来做到这一点,但我对 linux 太生疏了,无法实现。到目前为止,这是我尝试过的:

[oracle]$ --> in .profile add export ORACLE_SID=mydb
-bash: in: Permission denied

[root]$ chsh -s /bin/bash oracle
Changing shell for oracle.
Shell changed.

这是我的 tnsnames.ora 的样子:

MYDB=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=mydb,
SID=mydb)
)
)

最佳答案

我必须定义 ORACLE_SID 并将其导出到 oracle 用户的 .bash_profile 中。这意味着每次 oracle 用户登录时都会运行这两个步骤,因此它可能更像是 hack,但它有效:

这是简短的版本。如果您不确定自己在做什么,请转到详细部分,我会在其中解释正在发生的事情。

$ sudo -i
$ chsh /bin/bash oracle
$ sudo su - oracle
$ cd
$ vi .bash_profile
$ i

...
# User specific environment and startup programs
PATH=$PATH:$HOME/bin

export PATH

###### ADD YOUR SID STUFF HERE ######
ORACLE_SID=mydb
export ORACLE_SID
~
~

esc, :w! 保存,:q 退出。

$ exit
$ sudo su - oracle
$ sqlplus / as sysdba

就是这样。


详情

定义外壳(可选)

如果您像我一样,并且系统管理员将 oracle 帐户设置为在注销时自动禁用 shell,您需要首先为 oracle 用户(作为 root)重新定义 shell:

$ sudo -i
$ chsh /bin/bash oracle

编辑个人资料然后您需要以 oracle 用户身份登录并编辑 .bash_profile:

$ sudo su - oracle
$ cd
$ vi .bash_profile
$ i

您现在正在 VI 编辑器中编辑 .bash_profile。它应该看起来像这样:

# .bash_profile
...
# User specific environment and startup programs
PATH=$PATH:$HOME/bin

export PATH
~
~

您需要做的是在 export PATH 之后添加您的 SID 内容,因此它应该如下所示:

# User specific environment and startup programs
PATH=$PATH:$HOME/bin

export PATH

###### ADD YOUR SID STUFF HERE ######
ORACLE_SID=mydb
export ORACLE_SID
~
~

好的,现在你必须保存文件,然后退出 vi:

esc, :w! 保存,:q 退出。

Troubleshooting Sidebar: If you have an issue saving the file because the oracle user doesn't have privileges, then you'll have to do it using the root user, which means you'll have to find oracle's .bash_profile file, which is probably in /home/oracle/ (Remember, it's a hidden file, so use ls -a to see it instead of ls)

好的,假设您仍然以 oracle 用户身份登录,您需要注销并重新登录。这将激活您刚刚添加的代码,并定义 ORACLE_SID。

$ exit
$ sudo su - oracle

关于linux - 在 Linux 中设置默认的 ORACLE_SID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41771081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com