返回顶部
首页 > 资讯 > 数据库 >ORACLE中的Server_name和SID概念理解
  • 654
分享到

ORACLE中的Server_name和SID概念理解

2024-04-02 19:04:59 654人浏览 泡泡鱼
摘要

博文说明【前言】:    本文将通过个人口吻介绍在oracle中的Server_name和实例名SID的相关概念,在目前时间点【2017年5月22号】下,所掌握的技术水平有限,可能会存在

博文说明【前言】:

    本文将通过个人口吻介绍在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。


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




结尾:



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





您可能感兴趣的文档:

--结束END--

本文标题: ORACLE中的Server_name和SID概念理解

本文链接: https://lsjlt.com/news/42396.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ORACLE中的Server_name和SID概念理解
    博文说明【前言】:    本文将通过个人口吻介绍在ORACLE中的Server_name和实例名SID的相关概念,在目前时间点【2017年5月22号】下,所掌握的技术水平有限,可能会存在...
    99+
    2024-04-02
  • RAC的概念和原理
    这篇文章主要讲解了“RAC的概念和原理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“RAC的概念和原理”吧! 一 clusterware组成OCR,VOT...
    99+
    2024-04-02
  • 如何理解的概念和重要性
    如何理解的概念和重要性,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。  物料清单(BillOfMaterial简称BOM)是详...
    99+
    2024-04-02
  • Java中难理解的四个概念
    目录前言匿名内部类创建匿名内部类有两种办法匿名类的典型使用场景多线程线程生命周期为什么要使用多线程创建线程有两种方式两种创建方式对比同步为什么要使用同步序列化为什么使用序列化关键特性...
    99+
    2024-04-02
  • 如何理解java中进程的概念
    进程的概念进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。 一、进程是一个实体每一个进程都有它自己...
    99+
    2021-05-21
    java基础 java 进程 概念 理解
  • 如何理解java中的集合概念
    什么是集合?Java集合类存放在java.util包中,是一个用来存放对象的容器。注意:集合只能存放对象。比如你存入一个int型数据66放入集合中,其实它是自动转换成Integer类后存入的,Java中每一种基本数据类型都有对应的引用类型。...
    99+
    2017-08-04
    java基础 理解 java 集合 概念
  • Nginx的基本概念和原理
    目录一、Nginx基本概念二、反向代理三、负载均衡四、动静分离五、原理六、worker如何工作一、Nginx基本概念 (engine x)是一个高性能的HTTP和反向代理web服务器...
    99+
    2024-04-02
  • 如何理解J2ME PIM的概念
    这篇文章将为大家详细讲解有关如何理解J2ME PIM的概念,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。这里和大家分享一下J2ME PIM的概念,根据JSR...
    99+
    2024-04-02
  • Java流的概念怎么理解
    本篇内容主要讲解“Java流的概念怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java流的概念怎么理解”吧!昨天寝室同学问了我个关于Java流的问题,在解答完后很有感触,我认为可能所有...
    99+
    2023-06-17
  • oracle中游标的概念是什么
    在Oracle数据库中,游标(Cursor)是一种数据库对象,用于在PL/SQL程序中对结果集进行操作。游标是一个指向结果集的数据指...
    99+
    2023-10-25
    oracle
  • 如何理解Spark中的核心概念RDD
    如何理解Spark中的核心概念RDD,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。RDD全称叫做弹性分布式数据集(Resilient Dist...
    99+
    2024-04-02
  • JavaScript 中的继承:理解高级 OOP 概念
    ...
    99+
    2024-04-02
  • 深入理解Go语言中fn的概念
    在Go语言中,函数(function)是一种在程序中封装一段特定功能的代码块,以便在需要时可以被重复调用。在介绍Go语言中函数的概念之前,我们首先需要了解函数的定义以及如何在Go中定义...
    99+
    2024-04-02
  • Docker基本概念和底层原理解析
    目录1、Docker的底层原理2、Docker中常用的基本概念3、run命令的运行流程4、为什么Docker比VM快Docker架构图: 我们依照Docker架构图进行Docker基...
    99+
    2024-04-02
  • Java中StringUtils与CollectionUtils和ObjectUtil概念讲解
    目录一.解析概念StringUtils概念CollectionUtils概念ObjectUtil概念二.区别三.总结一.解析 概念 StringUtils概念 StringUtils...
    99+
    2022-12-27
    Java StringUtils Java CollectionUtils Java ObjectUtil
  • Oracle中PL/SQL包的概念是什么
    PL/SQL包是一种存储过程和函数的集合,它们被组织在一起以便于共享和重用。一个PL/SQL包包含了声明、变量、常量、异常、游标、存...
    99+
    2024-04-19
    Oracle PL/SQL
  • 理解Golang泛型的核心概念
    go 泛型允许创建可重用类型和函数,不会修改代码本身。它包括:泛型类型:使用类型参数,允许在创建类型时指定参数类型(如 []t、map[k]v)。泛型函数:使用类型参数,必须指定显式的类...
    99+
    2024-04-03
    golang 泛型
  • 详解Python编程中包的概念与管理
    Python中的包 包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的Python的应用环境。 考虑一个在Phone目录下的pots.py文件。这个文件有如下源代码: #!...
    99+
    2022-06-04
    详解 概念 Python
  • 云计算的概念和基本原理
    本篇内容主要讲解“云计算的概念和基本原理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“云计算的概念和基本原理”吧!1云计算的概念云计算的定义众多,目前广为认同的一点是,云计算是分布式处理、并行处...
    99+
    2023-06-03
  • Linux用户和用户组的概念及管理概述
    这篇文章主要介绍“Linux用户和用户组的概念及管理概述”,在日常操作中,相信很多人在Linux用户和用户组的概念及管理概述问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux用户和用户组的概念及管理概述...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作