首先,我知道有很多类似的帖子,但我用谷歌搜索了很多,还没有找到这个特定问题的答案。
其次,我对 Oracle 很陌生(我是一名 SQL Server 人员),所以请耐心等待。
好的,几个月后,我有一个客户给了我一个 Oracle 数据库备份,以将其导入 Windows 10 上的 Oracle 18c XE,然后通过使用 ODP.Net 11.2 的 .Net 程序从中提取数据。我安装了 18c XE 和 ODP.Net,创建了一个用户/模式并使用 DBCA 导入了备份,所有这些都使用教程等。我可以连接到 SQL Developer 中的用户/模式并进行查询。我运行了我的 .Net 程序,一切都很好。
那时我可以连接到 SQL 并使用“sys as sysdba”来执行创建用户、授予权限等命令。但是现在当我几个月后登录以对新备份进行相同的练习时,我再也不能连接到 SQLPlus,总是为任何用户收到“ORA-12560: TNS:protocol adapter error”。其他一切仍然有效,但我需要 SQLPlus 删除用户/模式,以便导入新备份。客户的 IT 公司说他们没有接触过 Oracle,因为它只是在我的用户帐户中设置的,除了我之外没有其他人可以登录。
所以这是我到目前为止在搜索和阅读 SO 上的帖子时所做的检查。(我已将主用户和密码更改为下面的 mike,但已使用真实用户和密码进行了尝试)
检查的服务:OracleOraDB18Home1TNSListener 和 OracleServiceXE 都在运行。
运行“lsnrctl status”并得到以下内容,我认为它看起来不错(反正没有错误):
我的监听器和 tnsnames.ora 文件如下所示:
- ORACLE_SID = XE
- ORACLE_HOME = C:\app\mike\product\18.0.0\dbhomeXE
- 使用“sqlplus mike/mike@XE”尝试了 SQLPLus,尽管它给了我一个错误“SP2-0310:无法打开文件“LOGIN.SQL”,但它让我登录了
- 使用“sqlplus sys as sysdba/mike@XE”尝试了 SQLPLus,但再次出现 TNS-12560 错误。
最后,我查看了 C:\app\mike\product\18.0.0\diag\tnslsnr\APP01\listener\alert 中的侦听器日志文件,得到了以下内容,我也认为它看起来是正确的:
<msg time='2020-05-29T12:38:48.315+10:00' org_id='oracle' comp_id='tnslsnr'
type='UNKNOWN' level='16' host_id='APP01'
host_addr='fe80::1dfb:94cd:7fac:9551%5' pid='25368'>
<txt>29-MAY-2020 12:38:48 * service_update * xe * 0
</txt>
</msg>
但是我仍然无法使用 sys 连接到 SQLPLus - 任何人都可以建议可能是什么问题以及如何解决它?我只需要能够登录以删除我创建的用户,这样我就可以导入新的备份,所以这非常令人沮丧!
TIA 提供任何帮助。
**** 编辑 ****