mysql的service name,Oracle数据库SID和ServiceName的区别

最近在为客户做监控系统、数据库的项目,用的是Zabbix平台。在最终实施的时候,发现有的Oracle数据库可以正常连接,有的报错……

ORA-12505, TNS:listener does not currently know of SID given in connect descriptor The Connection descriptor used by the client was:

在咨询过数据库运维人员发现,有的数据库给的是SID,有的给的是Service Name。而jdbc连接数据库有三种方式。

1. ServiceName方式

这种方式是Oracle推荐的,对于集群来说,每个节点的SID可能不一致,但ServiceName是一致的,包含所有节点。

ServiceName连接方式,是在Oracle 8i之后加入的。

jdbc:oracle:thine:@:/

2. SID方式

这是我们在部署的时候预置的连接方式,格式为:

jdbc:oracle:thine:@::

3. TNSName方式

TNSName连接方式是在Oracle 10.2.0.1之后加入的。

jdbc:oracle:thin:@

4. ServiceName和SID的区别

ServiceName是由oracle8i引进的。在Oracle 8i以前,使用SID来表示标识数据库的一个实例,但是在Oracle的并行环境中,一个数据库对应多个实例,这样就需要多个网络服务名,设置繁琐。为了方便并行环境中的设置,引进了Service_name参数,该参数对应一个数据库,而不是一个实例,而且该参数有许多其它的好处。该参数的缺省值为Db_name. Db_domain,即等于Global_name。一个数据库可以对应多个Service_name,以便实现更灵活的配置。该参数与SID没有直接关系,即不必Service name 必须与SID一样。

SID是数据库实例的名字,每个实例各不相同。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值