![尝试以 SYSDBA 身份连接时出现 ORA-12154](https://linux22.com/image/718073/%E5%B0%9D%E8%AF%95%E4%BB%A5%20SYSDBA%20%E8%BA%AB%E4%BB%BD%E8%BF%9E%E6%8E%A5%E6%97%B6%E5%87%BA%E7%8E%B0%20ORA-12154.png)
这是我的环境
- Oracle 12.2
- 非CDB
oracle 用户属于 dba 和 oinstall 组,如下所示
$ id oracle uid=1000(oracle) gid=54322(dba) groups=54322(dba),54321(oinstall)
ORAPW 文件已使用 ORAPWD 实用程序创建
ORACLE_HOME 和 ORACLE_SID 设置为 DBALIAS
这是我的问题:
我可以使用以下方法连接
a. sqlplus SYS"@DBALIAS" as sysdba (要求输入密码)
b. sqlplus SYS/PW@DBALIAS 作为 sysdba
但是当我使用以下命令时,出现 ORA-12154 错误
sqlplus'/as sysdba'错误:ora-12154:TNS:无法解析指定的连接标识符
答案1
您命令 shell 运行sqlplus
程序并为其提供一个参数/ as sysdba
。该参数是一个包含空格的单词(这是 shell 中引号的作用)。因此 sqlplus 查找 TNS 名称/ as sysdba
并失败。
相反尝试
sqlplus / as sysdba
这是一个程序名称加上三个独立的参数。
如果你真的设置了ORACLE_HOME=DBALIAS
,那么它肯定会失败。你需要将它设置为与启动此数据库时使用的字符串完全相同。类似
export ORACLE_HOME=/dir/for/oracle/binaries
如果你设置正确,你应该能够执行
"$ORACLE_HOME"/bin/sqlplus / as sysdba