监听配置问题,SID(实例名)与 SERVICE_NAME 的区别:
1.数据库实例名(SID)
什么是数据库实例名?
数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是数据库实例名。实例名也被写入参数文件中,该参数为 instance_name,在 winnt 平台中,实例名同时也被写入注册表。
数据库名和实例名可以相同也可以不同。
在一般情况下,数据库名和实例名是一对一的关系,但如果在 oracle 并行服务器架构(即 oracle 实时应用集群)中,数据库名和实例名是一对多的关系。
2.数据库服务名(SERVICE_NAME)
什么是数据库服务名?
从 oracle9i 版本开始,引入了一个新的参数,即数据库服务名。参数名是 SERVICE_NAME。
如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据库服务名与数据库名相同。
SERVICE_NAME 的出现就是为了应对并发技术,简化客户端连接配置。通过 SERVICE_NAME 应该能找到更好的解决方案。
因此,在 oracle 的监听配置文件中,尤其要注意
在运行服务的时候,发现老是报 ora-12154 无法解析指定的连接标识符,数据库客户端也可以访问,没有报错,排查原因:发现
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ris)));User Id=ris;Password=123456
CONNECT_DATA=(SERVICE_NAME=ris),这个地方写的是 SERVICE_NAME 改成 SID = orcl 就行
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于