您的位置:首页 > 数据库 > Oracle

监听配置问题,SID(实例名)与SERVICE_NAME的区别?

2017-05-05 17:50 218 查看


这几天因为要连接远程oracle数据库,直接在本地安装好了oracle11g客户端后,环境变量配置完成,按以往的习惯用Net Configuration Assistant  进行了连接配置设置,生成了对应的监听文件。
但是在NetManager 中进行连接测试的额时候始终连不上,用户名和密码都正确,显示”ora-12154无法解析指定的连接标识符“于是分别采取了以下措施:

1.再三确认客户端监听配置文件tnsnames.ora文件,实际上tnsnames.ora正是包含了这个所谓的连接字符串,其中要远程连接的数据库实例名和IP地址,经过仔细比对没有错。也不存在说首行不能有空格的问题。

2.接着又想到时不是tnsping远程数据库的监听,看看是不是数据库监听或者数据远程连接有问题有问题,测试正常。

3.保证了监听都能连上,是在想不出哪里有问题了,用oracle客户端下载下来自带的SQLdevloper试试能不能连上,居然能连上。。。配置信息都是一样的。瞬间崩溃

4.会不会是oracle客户端安装有问题(不是32bit余64bit的问题),于是卸载重装,多次之后还是连不上。

5.不管了,撇开连接测试不通的问题,直接拿plsql来连接数据库,测试依旧失败。

6.终于,发现了一个细微的差别,别人能连上的监听配置tnsnames.ora信息中connect_data写的是SID而我的写的SERVICE_NAME,但是没怎么关心这个,觉得两者没什么区别,Service_name也就是oracle8 以后增加的新名词而已,原来我错了。

1.数据库实例名(SID)

什么是数据库实例名?

数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是数据库实例名。实例名也被写入参数文件中,该参数为instance_name,在winnt平台中,实例名同时也被写入注册表。

数据库名和实例名可以相同也可以不同。

在一般情况下,数据库名和实例名是一对一的关系,但如果在oracle并行服务器架构(即oracle实时应用集群)中,数据库名和实例名是一对多的关系。

2.数据库服务名(SERVICE_NAME)

什么是数据库服务名?

从oracle9i版本开始,引入了一个新的参数,即数据库服务名。参数名是SERVICE_NAME。

如果数据库有域名,则数据库服务名就是全局数据库名;否则,数据库服务名与数据库名相同。

SERVICE_NAME的出现就是为了应对并发技术,简化客户端连接配置。通过SERVICE_NAME应该能找到更好的解决方案。

因此,在oracle的监听配置文件中,尤其要注意,

# tnsnames.ora Network Configuration File: H:\app\admin\product\11.2.0\client_1\NETWORK\ADMIN\tnsnames.ora

# Generated by Oracle configuration tools.

DZJ =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.230.31.15)(PORT = 1521))
)
(CONNECT_DATA =
(SID = oradb1)
)
)

31.15 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.230.31.15)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oradb)
)
)


connect_data对应的是SID还是SERVICE_NAME,如果是SID则对应该数据库的实例名称(instant_name),如果是SERVICE_NAME的话则填写数据库服务名,即全局数据库名(非分布式数据库系统中为 数据库名(db_name)),看来oracle数据库基础没打牢啊,有时候只注重怎么用,却忽视了为什么这么用了。唉~~学无止境。。。。。
参考:http://blog.csdn.net/elvis_dataguru/article/details/8984961

          http://blog.csdn.net/zhangzl1012/article/details/50752572
          https://wenku.baidu.com/view/c7d426fbaef8941ea76e05d1.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息