Borderline 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 实例?