- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
每次登录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 usels -a
to see it instead ofls
)
好的,假设您仍然以 oracle 用户身份登录,您需要注销并重新登录。这将激活您刚刚添加的代码,并定义 ORACLE_SID。
$ exit
$ sudo su - oracle
关于linux - 在 Linux 中设置默认的 ORACLE_SID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41771081/
我来自 SQL Server/Sybase 背景。 我习惯于引用特定模式中的表,格式如下: SCHEMA_NAME..TABLE_NAME. 我今天问了一位同事关于在 Oracle 数据库上创建新的“
每次登录oracle都报错: ORA-12162 TNS:net service name is incorrectly specified 所以我不得不运行这个: ORACLE_SID=mydb;
我是一名优秀的程序员,十分优秀!