问题描述:
小学期修Oracle课程,为了小团队的便利性,在腾讯云中使用Docker创建了Oracle容器进行共享,在这段时间使用是正常的。在一两个星期后使用nacicat连接oracle时,报了ORA-12505:TNS: 监听程序当前无法识别连接描述符中所给出的 SID
错误。
问题解决:
- 通过查阅多篇文章后,将问题探索到了 %ORACLE_HOME中的
/home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora
文件。此文件便是对监听程序的一个配置文件。但是查看文件后发现并没有问题。 - 接着,想通过sqlplus命令程序连接进入一下数据库,报了
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
错误。因此去查看/home/oracle/.bash_profile
这个隐藏的配置文件。通过cat命令查看此文件内容时,发现相关设置是齐全的。$ORACLE_BASE
,$ORACLE_HOME
,PATH
均有配置。 - 此时便陷入了迷茫。刚刚明明看到已经配置了
$ORACLE_HOME
,为什么现在显示没有设置呢?所以问题就定位到了这个listener配置文件有没有生效。因此便使用source /home/oracle/.bash_profile
,去读取运行这个配置文件使其生效。 - 接着再进入SQL内部重新打开数据库。
sqlplus / nolog
conn / as sysdba
startup