ORACLE中的Server_name和SID概念理解-创新互联-成都创新互联网站建设

关于创新互联

多方位宣传企业产品与服务 突出企业形象

公司简介 公司的服务 荣誉资质 新闻动态 联系我们

ORACLE中的Server_name和SID概念理解-创新互联

博文说明【前言】:

创新互联公司主营宣州网站建设的网络公司,主营网站建设方案,App定制开发,宣州h5微信平台小程序开发搭建,宣州网站营销推广欢迎宣州等地区企业咨询

  本文将通过个人口吻介绍在ORACLE中的Server_name和实例名SID的相关概念,在目前时间点【2017年5月22号】下,所掌握的技术水平有限,可能会存在不少知识理解不够深入或全面,望大家指出问题共同交流,在后续工作及学习中如发现本文内容与实际情况有所偏差,将会完善该博文内容。

本文参考文献引用链接:

1、http://blog.csdn.net/luman1991/article/details/56286371

2、http://blog.csdn.net/yaksok/article/details/52130228


正文:

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

案例分析:

一、引入关系:

服务器=公司

数据库=运维支持部(数据库分为单机和集群环境,也就是部门的人数多少关系)

数据库集群环境=运维支持部门(假设部门有小丽,小美两名员工,对应SID1,SID2)

数据库连接请求=公司员工或者其他部门请求运维部提供技术支持

数据库服务器=装载了数据库的服务器,也就是拥有活跃运维部门的公司,当然服务器除了装载数据库,我还可以安装其他软件提供其他服务

二、工作过程:

1、老王是研发部门的一个员工,在连接数据库的发现无法连接,因此在公司内部沟通平台发送了一个请求,请求运维部查看下数据库服务是否异常。

2)运维部的小丽接受了这个问题,也就是小丽给老王提供了这次服务,最终顺利解决该问题

3)过了一周,老王又发现数据库连接有问题,又在公司内部沟通平台发送了一个请求,请求运维部查看下数据库服务是否异常。

4)运维部的小美接受了这个问题,也就是小美给老王提供了这次服务,最终顺利解决该问题

三、案例分析:

1、这里真实提供服务的就是SID(第一次是小丽SID1,第二次是小美SID2,第三次也是两者之一)

2、运维支持部门,在公司内部沟通平台对应有一个虚拟用户(Server_name),用户将反馈提交给该用户,然后由该虚拟用户去调度后方真实节点提供服务,使用过JIRA平台的小伙伴应该深有感触。

3、用户不用关系,真实给我提供服务的人是谁,每次只需要将问题提交给该虚拟用户(server_name),就会有支持人员来解决我的问题。

注意:在这里用户如果知道运维部里面具体有谁,也可以配置成直接将问题分配给比如小丽,也就是说,在配置数据库连接信息时,可以配置成直接连接SID,也可以配置成连接server_name,然后由server_name去调控SID去处理请求。

总结:

SID:

一个数据库可以有多个实例(如RAC集群环境),SID用来标识数据库内部每个实例的名字,就好像一个部门里,每个人都有一个自己的名字(小丽和小美等)。

SERVICE_NAME:

数据库对外宣称的名字,它就像一个部门的名字,这个部门的名称在数据库的看门大爷(listener)那里有登记。看门大爷一看你是要找SERVICE_NAME这个部门(运维部),就告诉你我们公司确实有这个部门,于是你就找到了,连接就建立了。

对于集群来说,每个节点的SID 是不一样的,但是SERVICE_NAME 可以包含所有节点。

一句话来说就是:

SID是对内部来说的,是实例级别的一个名字,用于数据库内部之间称呼。

SERVICE_是对外的,是数据库级别的一个名字,用来告诉外面的人,我数据库叫"SERVICE_NAME"。

你可以通过service_name参数指定这个名字是什么,可以有多个名字,名字随便起,叫老王,老张都没关系。如果你不指定,默认的是Db_name. Db_domain,也就是global_name。

这些易混淆的名字,你只要记住,他们不是指数据库,就是指实例,就这两个东西,别无其它。他们具体用哪个名字,要看针对对象。是对数据库,还是对操作系统,还是对外部连接请求。分清楚这点,就不容易混了


结尾:

   感谢阅读,祝有收获的一天,谢谢!

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前标题:ORACLE中的Server_name和SID概念理解-创新互联
分享网址:http://kswsj.cn/article/hoced.html

其他资讯