首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLPLUS / AS SYSDBA登录ORA-12560失败

SQLPLUS / AS SYSDBA登录ORA-12560失败
EN

Stack Overflow用户
提问于 2017-06-20 13:18:37
回答 2查看 18.9K关注 0票数 0

我得到了

代码语言:javascript
复制
ERROR:
ORA-12560: TNS:protocol adapter error

试图以SYSDBA身份登录时出现适配器错误。我做了一些研究,发现首先在Windows中没有任何OracleJobSchedulerdb12gr1OracleServicedb12gr1。e.t.c.

所以我把它们加起来,然后开始:

代码语言:javascript
复制
C:\Windows\system32>oradim -new -sid db12gr1

所以我也开始了一个听众:

代码语言:javascript
复制
C:\Windows\system32>lsnrctl start

在那之后,当我检查我得到的状态:

代码语言:javascript
复制
C:\Windows\system32>lsnrctl status

Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Services Summary...
Service "XE" has 1 instance(s).
  Instance "XE", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

不确定UNKNOWN是否是问题所在,我从listener.ora中删除了所有其他SID_LIST_LISTENERLISTENER看起来如下(在listener.ora中):

代码语言:javascript
复制
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

此外,我还将ORACLE_HOME设置为env,并将其添加到bin文件夹的路径中,以便能够访问sqlplus。在我尝试作为sysdba登录之前,定义ORACLE_SID (set ORACLE_SID=localhost)没有任何区别。而且,我只能从命令提示符启动服务和启动监听器,当然,在那些仍然不能sqlplus / as sysdba的地方,可以作为管理员打开。

tnsnames.ora:

代码语言:javascript
复制
EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORACLR_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
      (SID = CLRExtProc) 
      (PRESENTATION = RO) 
    ) 
  ) 
XE =
  (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = XE)
     )
  )

我真的没什么主意了。有人知道这会花多少钱吗?

PS: OS: Windows 10;Oracle : 12c

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-20 20:03:21

您必须将ORACLE_SID环境变量设置为正确的值:设置ORACLE_SID=db12gr1并确保实例服务正确启动。

票数 5
EN

Stack Overflow用户

发布于 2019-10-12 02:18:56

让我们这样做:

  1. 打开Oracle网络配置助理
  2. 在本地网络服务名称配置处选择单选按钮选项,然后单击Next
  3. 选择“重新配置”的单选按钮选项,然后单击“下一步”。
  4. 选择要重新配置的.NET服务名称( ORACLR_CONNECTION_DATA或ORCL ),然后单击Next
  5. 输入您的服务名称,如果已安装oracle的服务名称为ORCL,则将ORCL写入该字段,然后单击Next
  6. 选择要使用的协议,例如,选择TCP,然后单击Next
  7. 输入主机名,例如安装在桌面或笔记本上的oracle数据库引擎(服务), 然后填写本地主机,并填写您的端口号(选择选项使用标准端口号1521),或者如果使用其他端口,则填写端口号。 然后单击next。
  8. 选择“是执行测试”,如果有必要,更改用户登录 然后单击next
  9. 如果未配置其他网络服务名称,请选择“否”,然后单击“下一步”
  10. 单击Finish

如果要使用MS在.net框架上进行连接,应该下载、解压缩和安装ODTwithODAC183.zip和.net。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44654221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档