Oracle Database 21C TNS:监听程序当前无法识别链接描述符中请求的服务

ORA-12514:TNS:监听程序当前无法识别链接描述符中请求的服务

简述

问题

  • 全数据库名是以 [库名] . [域]  的格式。
  • 添加scott用户过程中,导入 scott.sql 后使用 show user; 输出的用户名却是空的。
  • 用户名/密码@主机名:监听的端口/全局数据库名或可读写库名 的方式无法登录,提示本文最上面的错误信息。
  • 随手录,简单参考看看就好:

[bvideo bv="1ge4y1m7Jq"][/bvideo]

1.检查监听

首先要检查是否有正确监听。Windows开始菜单里找到“Oracle - OraDB21Home1”,选择“Net Manager”。目录树里展开本地,服务命名,选择 orcl。如果是像下面图中的那样,以 全局数据库名(orcl) . 域(mshome.net) 的形式,如果当前数据库里没有重要数据,那么最简单粗暴的方式:直接卸载数据库,然后重新安装一遍。具体过程可以简单参考下面的内容。

oracle21c listen error 1

2.卸载数据库实例

为了不必要的麻烦和多个不可控的因素干扰,由衷建议移除掉相关的监听配置。选择“Net Manager”。目录树里展开“本地”。

2.1 移除本地网络服务

展开服务命名,依次选中服务命名里的 orcale_connection_data 和 orcl ,然后左侧叉叉删除掉。

2.2 移除监听程序

同样的,展开监听程序,移除掉LISTENER。完成了之后,关闭“Net Manager”。

2.3 卸载实例

监听清除了以后,接下在Windows开始菜单里找到“Oracle - OraDB21Home1”,选择“Database Configuration Assistant”。

然后选择“删除数据库”,填写你的sys用户密码,然后下一步下一笔即可开始卸载。

碎碎念:若有重要数据,请先备份,之后再执行卸载!

3.安装数据库实例

数据库实例卸载了以后,就可以开始重新安装Oracle21C Database实例。

  • 在Windows开始菜单里找到“Oracle - OraDB21Home1”,选择“Database Configuration Assistant”,然后选择“创建数据库”。
  • 接下来不管是选择默认的“经典配置”还是“高级配置”,一定要注意的是:全局数据库名不管自动填写的是什么,请去掉域!比如自动填写:orcl.mshome.net ,那么仅仅保留 orcl ,后面的域一定要去掉。然后填写sys用户密码、可插入数据库名(如:orclpdb )

这个很重要,因为如果是采用 [全局数据库名][域] 的形式,那么需要更改监听配置,而对于每个人而言,其引用的配置文件位置可能都不一样,所以对于本地学习、测试的环境,最简单省事的方式,仅保留 [全局数据库名] 的格式就ok了。

之后就没啥需要注意的,具体的可以参考之前水过的文章的“安装数据库实例”部分,这里就不再重复记录了吧,有需要的可以移步下面的链接。

4.添加监听

在Windows开始菜单里找到“Oracle - OraDB21Home1”,选择打开“Net Configuration Assistant”,默认选择“监听程序设置”,选择下一步,然后如果删除是可选的状态,那就不用添加了。反之不可选的状态则手动添加一下监听配置:

  • 默认选择添加,选择下一步,接下来可以使用默认的监听程序名称:“LISTENER”,然后下一步
  • 默认“TCP”协议,选择下一步
  • 端口则视自己本身情况而定,默认标准端口:1521,选择下一步
  • 最后是否添加另一个监听程序,选择“否”,然后下一步,
  • 提示完成之后,选择下一步,最后选择“完成”自动关闭窗口。

5.测试效果

安装完成之后,一般情况下就不会有啥问题了。可以直接cmd简单测试一下:

#用户名/密码@主机名:监听的端口/全局数据库名或可读写库名
#as sysdba:以sysdba的身份登录
sqlplus sys/sys@localhost:1521/orcl as sysdba
能够正常登录进去就表示一切正常了。
而对于之后的 添加scott用户添加hr用户  操作姿势正确的话,都是没有问题的,可以随便玩~

碎碎念

如果操作完成,但依旧是输出“监听程序当前无法识别链接描述符中请求的服务”,那么可以留言一下,收到讯息后有空远程再帮忙看看。

阅读剩余
THE END