监听配置问题,SID与Service_Name区别
1、数据库实例名SID
概念:数据库实例名用于和操作系统进行联系的标识,是数据库和操作系统之间的交互用的书数据库实例名。实例名也被写入参数文件中,该参数为instance_name,在winnt平台中,实例名同时也被写入注册表中。
数据库名和实例名可以相同也可以不通过。
一般情况下,数据库和实例名是以一对应的关系,但是如果Oracle并行服务器架构(Oracle实时应用集群)中,数据库和实例名是一对多的关系。
2、Service_Name
概念:从Oracle9i版本开始,引入一个新的参数,即数据库服务名,参数名是service_name。如果数据库有域名,则数据库服务名就是全局数据库名;否则数据库服务名与数据库名相同。
Service_Name的出现就是为了应对并发技术,简化客户端连接配置。通过Service_Name应该能找到更好的解决方案。
因此在Oracle的监听配置文件中药注意。
在运行服务的时候,发现总是ora-12154无法解析指定的连接标识符,数据库客户端也可以访问没有报错,排查原因:
ata 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 就行