这个问题可能有点超出了ServerFault的范围,但考虑到我以前在Oracle方面提问时得到了帮助,所以我还是先在这里尝试一下。
我正在尝试从PHP连接到一个Oracle数据库,但是遇到了以下错误:
ORA-12505: TNS:listener does not currently know of SID given in connect descriptor
这是PHP报告的错误,也是出现在Oracle的listener.log中的错误。
我目前遇到的问题是修复此错误。我想要得到回答的更大问题是Oracle连接模型是如何工作的?
这是在我的本地Windows机器上运行的开发环境,一直到现在都一直在工作。不幸的是,这个环境是交给我的(我没有设置它),而设置它的人不可用于帮助我调试。
如果我在MySQL或PostgreSQL中遇到类似的错误(这两个系统我比较熟悉),我会检查数据库进程是否正在运行,然后尝试使用用户名/密码/连接字符串手动连接到数据库。 不幸的是,我不熟悉Windows上的Oracle工具(除了SQL Developer之外),并且我不知道在Oracle的上下文中TNS:listener或SID是什么(我有模糊的想法,但是在调试此类问题时模糊的想法很少有用)。
任何一般性的建议都将不胜感激。
根据评论的更新:
我的tnsnames.ora文件中有许多条目,其中相关条目为
OBS2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = steel-ae39650)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = OBS2)
)
)
当我运行时,这并没有反映在实例列表中
LSNRCTL> services
所以我认为我的下一个问题是,我如何尝试手动启动OBS2实例?