我刚刚在我的工作开发计算机上安装了Oracle 11g,该计算机具有Windows 7 64位并且位于具有域设置的网络上。当我尝试使用SQL Developer连接到“XE”数据库/ SID时,我会在下面看到以下错误列表。
有什么想法吗?
我在网上进行了研究并尝试了一些建议的解决方案,但无法使其发挥作用。我可以确认以下内容:
当我第一次尝试连接时,SQL Developer中的设置如下:
Hostname: localhost
Port: 1521
SID: xe
但是,我收到以下错误:
Status : Failure -Test failed: Listener refused the connection with the following error: ORA-12505
在研究之后,我发现我应该查看“listner.ora”文件中的监听器端点(无论这意味着什么)并确认主机名。该文件包含以下内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\Oracle\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\Oracle\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = mycomputername.abc.de.mycompany.com.)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
当我看到主机名不同时,我首先尝试在“mycomputername.abc.de.mycompany.com”中更改listener.ora文件中的“HOST”。到“localhost”然后到“127.0.0.1”(注意前面的末尾真的有一个额外的句号)。完成后,我仍然收到相同的错误消息。
然后,我把所有内容都放回“listener.ora”文件中,然后转到SQL Developer并将我的登录信息更改为以下内容:
Hostname: mycomputername.abc.de.mycompany.com. (again... there really is a period at the end)
Port: 1521
SID: xe
我甚至只用“mycomputername”尝试过它。我再次收到错误消息:
Status : Failure -Test failed: Listener refused the connection with the following error: ORA-12505
答案 0 :(得分:0)
我找到了朋友的朋友的帮助。这就是他所做的。
首先,请注意他将设置保留在" listener.ora"单独归档。相反,他在命令提示符下完成了以下所有操作。
步骤1:直接从命令提示符运行SQL Plus,作为" sysdba"在命令提示符下模拟SQL Plus。
C:\windows\system32>sqlplus / as sysdba
步骤2:输入以下SQL Plus命令以验证数据库名称(即全局名称或SID)。返回值为" XE"。
SQL> select * from global_name;
步骤3:输入以下SQL Plus命令,将列表器设置为使用' localhost'作为" HOST"。显然,听众会覆盖" listner.ora"中的设置。文件。我认为他说这是保存在数据库的某个地方,并没有保存在文件中。
SQL> alter system set LOCAL_LISTENER='(DESCRIPTION_LIST = (DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)
(HOST = localhost)(PORT = 1521))))';
步骤4:输入以下SQL Plus命令以注册您在上面的步骤3中设置的内容。
SQL> alter system register;
步骤5:在命令提示符下退出SQL plus模拟。
SQL> exit