Oracle中Service Name、Database name、Instance Name的区别

1,数据库名是Oracle数据库的内部标识,一般在安装完后不应该改变,数据库的很多物理存储目录都用到了数据库名。

2,Instance_Name,ORACLE_SID,数据库实例名,是数据库和操作系统交互时用到的名称。

如果在一台机器上创建了多个数据库,通过Sqlplus想连接到其中的一个数据库,就需要指明ORACLE_SID:

set ORACLE_SID=SIDNAME

sqlplus / as sysdba(这种连法只能在本机用,会根据ORACLE_SID连接到对应的实例)

通常碰到的12560错误一般就是因为实例名被错误修改或者服务没有被启动。 

Instance_Name则是数据库的一个参数.

3,Service Name:服务名,如果数据库有域名则等同于Global DB Name、没有的话则等同于数据库名,这是因为数据库启动后会自动把数据库名注册到监听成为服务名,同时数据库参数service_names也会注册为服务名,所以一个数据库可以有多个服务名.

当在Oracle8i,9i,10g的客户端连接Oracle8i,9i,10g服务器的时候,主机字符串应该使用服务名。

4,Net Service Name:网络服务名,也有人叫TNS别名、网络连接串(connect string),在tnsnames.ora中配置的名称,如下面例子的DBTNS.
sqlplus sys/sys@orcl as sysdba(这种连法会根据tnsnames.ora中配置的网络服务名连接到本机或者远程的oracle,走的是网络通信)

看看数据库参数设置: 
SQL> show parameter instance_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------
instance_name                        string      orcl
SQL> show parameter service_names
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------
service_names                        string      orcla,orclb
SQL> show parameter db_name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------
db_name                              string      orcl
service_names也可以通过alter system set service_names=orclA,orclB;修改为对应多个值。

listener启动时候根据listener.ora配置的信息静态注册可用的服务,同时数据库实例启动以后(PMON)会把

service_names,db_name的值动态的注册到Listener。

例如,如果service_names的值为orcla,orclb,db_name的值为orcl,在listener.ora里有如下配置:

    (SID_DESC =
      (GLOBAL_DBNAME = orclst) 
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
      (SID_NAME = orcl)
    )

则在Tnsname.ora中可以作为SERVICE_NAME的值为orcla,orclb,orcl,orclst

通过lsnrct status 可以看到这些服务的信息: status READY的为动态注册的(因为是在实例启动之后才注册到listener的,所以状态为ready),status UNKNOWN的为静态注册的(因为是listener启动的时候根据配置启动的,这是实例是否启动是不知道的,所以为unknown)。

通过连接后看v$session中的service_name也可以判断用的服务名是静态注册的还是动态注册的.SYS$USERS表示为静态的.

其中orclst为静态的注册,查看session可以看到如下

SQL> select service_name from v$session where sid=(select distinct(sid) from v$mystat);
SERVICE_NAME
----------------------------------------------------------------
SYS$USERS

 

其中通过orclsa为动态的注册,查看session可以看到如下

SQL> select service_name from v$session where sid=(select distinct(sid) from v$mystat);
SERVICE_NAME
----------------------------------------------------------------
orcla

 

Services Summary...
Service "ORCLA" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "ORCLB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orcl_XPT" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclst" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

动态注册默认只能注册1521的listener,如果监听端口不是1521,需要:

1,在服务器端的Tnsname.ora中配置一个tns指明端口号,只有ADDRESS配置没有CONNECT_DATA配置项:

lclsn=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = PC-6753184)(PORT = 1522))
  )

2,将数据库的参数 local_listener的值改为服务器端的Tnsname.ora配置的lclsn:

 alter system set local_listener=lclsn;

 

Tnsname.ora中配置: 通过lsnrct status得到可以用的SERVICE_NAME ,如orcla,orclb,orcl...

DBTNS =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.19.11.28)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = teldb)
    )
)

上面例子中的SERVICE_NAME = teldb也可以换成SID=orcl.

一个数据库集群的例子:

DBCLUSTER=
  (DESCRIPTION_LIST =

    (LOAD_BALANCE = OFF)

    (FAILOVER = ON)

    (DESCRIPTION =

      (ADDRESS_LIST =

        (LOAD_BALANCE = ON)

        (FAILOVER = ON)

        (ADDRESS = (PROTOCOL = TCP)(HOST = rdl701d001-oravip.test.com)(PORT = 6191))

        (ADDRESS = (PROTOCOL = TCP)(HOST = rdl701d002-oravip.test.com)(PORT = 6191))

        (ADDRESS = (PROTOCOL = TCP)(HOST = rdl701d003-oravip.test.com)(PORT = 6191))

        (ADDRESS = (PROTOCOL = TCP)(HOST = rdl701d004-oravip.test.com)(PORT = 6191))

        (ADDRESS = (PROTOCOL = TCP)(HOST = rdl701d005-oravip.test.com)(PORT = 6191))

        (ADDRESS = (PROTOCOL = TCP)(HOST = rdl701d006-oravip.test.com)(PORT = 6191))

      )

      (CONNECT_DATA =

        (SERVICE_NAME = opofs_rd)

        (FAILOVER_MODE =

          (TYPE = SESSION)

          (METHOD = BASIC)

          (RETRIES = 120)

          (DELAY = 5)

        )

      )

    )

  )

ORACLE数据库中ORACLE_SID与INSTANCE_NAME的区别 总之,ORACLE_SID和INSTANCE_NAME都是用于标识ORACLE数据库实例的参数,但它们的作用略有不同。ORACLE_SID主要用于连接到数据库实例,而INSTANCE_NAME主要用于在集群环境下区分不同的数据库实例。INSTANCE_NAME是数据库实例的名称,它是数据库实例在数据库中的唯一标识符。这样,我们就可以在集群环境下区分不同的数据库实例。在ORACLE数据库中,ORACLE_SID和INSTANCE_NAME都是用来标识数据库实例的参数,但它们之间存在一些区别。 阅读详情

相关推荐

Python+Flask+Echarts打造全国气象数据可视化分析大屏

本文详细介绍了如何使用Python+Flask+Echarts构建全国气象数据可视化分析大屏,实现实时监控、趋势分析和快速决策。通过Python强大的数据处理能力、Flask的轻量级优势和Echarts的交互体验,打造高效的气象数据可视化系统,提升农业、物流等行业的决策效率。

weixin_29061531的博客 1060

oracle的service name,Oracle中Service Name、Database name、Instance Name的区别

1,数据库名是Oracle数据库的内部标识,通常在安装完后不该该改变,数据库的不少物理存储目录都用到了数据库名。sql2,Instance_Name,ORACLE_SID,数据库实例名,是数据库和操做系统交互时用到的名称。数据库若是在一台机器上建立了多个数据库,经过Sqlplus想链接到其中的一个数据库,就须要指明ORACLE_SID:服务器set ORACLE_SID=SIDNAME网络sqlp...

weixin_36397447的博客 4332

基于粒子群算法的PID控制器优化设计

粒子群算法、PID、寻优

qq_46107700的博客 2万+

Oracle Service Names

(一)概述 Service是Oracle管理负载的一个抽象概念,通过service把整个负载分成不同的组,每个service代表具有相同属性,服务级别阈值和优先级的一类工作负载 Database services (services) are logical abstractions for managing workloads in Oracle Database. Services divide workloads into mutually disjoint不相干的groupings.Ea...

彦祖的小号的博客 1176

别再迷信Intel网卡了!用普通笔记本+TWINCAT3搭建EtherCAT主站的完整避坑实录

本文详细介绍了如何用普通笔记本和TWINCAT3搭建EtherCAT主站的完整避坑指南。通过破除必须使用Intel网卡的迷思,提供软件环境搭建、关键配置步骤、Wireshark抓包技巧及性能优化建议,帮助开发者低成本实现EtherCAT主站功能。

weixin_29305337的博客 703

ClickHouse分布式表原理:大数据分片存储与查询

我是一名资深大数据工程师,专注于ClickHouse优化和分布式架构设计。拥有5年以上大数据开发经验,曾为多家电商、金融公司提供ClickHouse解决方案。欢迎关注我的博客(),一起探讨大数据技术!留言互动:你在使用ClickHouse分布式表时遇到过什么问题?欢迎在评论区分享,我会一一解答!

AI大模型应用之禅 959

Oracle数据库DB_NAME、SERVICE_NAME、SID、INSTANCE_NAME、DB_UNIQUE_NAME的区别

oracle数据库DB_NAME、DBID、DB_UNIQUE_NAME、SERVICE_NAME、SID、INSTANCE_NAME、GLOBAL_DATABASE_NAME的区别 DB_NAME: ①是数据库名,长度不能超过8个字符,记录在datafile、redolog和control file中 ②在DataGuard环境中DB_NAME相同而DB_UNIQUE_NAME不同 ③在RAC环境中,各个节点的DB_NAME 都相同,但是INSTANCE_NAME不同 ④DB_NAME还在动态注册监听的时

流浪猫之家 1909

FPGA篮球计分器:从需求分析到模块化实现的实战指南

本文详细介绍了FPGA篮球计分器的设计与实现,涵盖需求分析、模块化设计及实战调试。重点解析了24秒精确倒计时、12分钟比赛计时、比分统计和数码管显示等核心模块的Verilog实现,提供了按键消抖、状态机设计和BCD码处理等关键技术细节,帮助开发者掌握FPGA数字系统设计方法。

sql99的博客 218

Oracle数据库DB_NAME、SERVICE_NAME、SID、INSTANCE_NAME等区别

Oracle数据库DB_NAME、SERVICE_NAME、SID、INSTANCE_NAME、DB_UNIQUE_NAME的区别。 DB_NAME: ①是数据库名,长度不能超过8个字符,记录在datafile、redolog和control file中 ②在DataGuard环境中DB_NAME相同而DB_UNIQUE_NAME不同 ③在RAC环境中,各个节点的DB_NAME 都相同,但是INS...

weixin_33716557的博客 391

自动驾驶感知新方案:YOLOv13多模态(RGB+LiDAR+热成像)融合实战

YOLOv13的RGB+LiDAR+热成像多模态融合方案,解决了自动驾驶感知的鲁棒性问题,通过跨模态特征互补和注意力融合,实现了复杂场景下的高精度检测。本文从架构设计、数据预处理、核心模块实现到车载部署,完成了全流程实战。动态模态权重:根据场景自动调整各模态的权重(如黑夜场景提升热成像权重);端到端3D检测:直接从原始点云与图像进行3D检测,减少预处理步骤;轻量化优化:针对车载设备进一步剪枝量化,提升推理速度。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 534

华为OD机试双机位C卷-几何平均值最大子数组(Py/Java/C/C++/Js/Go)

华为OD机试(机考)2026双机位C卷 【几何平均值最大子数组】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【几何平均值最大子数组】。

qq_45776114的博客 1367

oracle数据库DB_NAME、DBID、DB_UNIQUE_NAME等的区别

oracle数据库DB_NAME、DBID、DB_UNIQUE_NAME等的区别 ①是数据库名,长度不能超过8个字符,记录在datafile、redolog和control file中 ②在DataGuard环境中DB_NAME相同而DB_UNIQUE_NAME不同 ③在RAC环境中,各个节点的DB_NAME 都相同,但是INSTANCE_NAME不同 ④DB_NAME还在动态注册监听的时候起作用...

qq_25662143的博客 972

cartographer如何使用2个反光柱子作为一个landmark

2个反光柱的摆放要求:靠着墙摆,因为我们只能从一侧看到2个反光柱,从两侧都看到至少需要3个反光柱来定位。 landmark检测原理:因为我们是从一侧看到2个反光柱,所以看到2个反光柱在一帧激光数据中会有顺序,有2种情形,如下图 这两种情形,我们发现 情形1: 这种情形2个反光柱子被检测到的激光角度小于180,我们认为大一些激光角度的是原点。 情形2: 这种情形2个反光柱子被检测到的激光角度大于180,我们认为小一些激光角度的是原点。 这样原点就固定下来,并是唯一的。2个反光柱构成的坐标系也就确定了。和激光坐

南北粉面馆 3827

oracle 数据库DB_NAME、SERVICE_NAME、SID、INSTANCE_NAME、DB_UNIQUE_NAME的区别

DB_NAME: ①是数据库名,长度不能超过8个字符,记录在datafile、redolog和control file中 ②在DataGuard环境中DB_NAME相同而DB_UNIQUE_NAME不同 ③在RAC环境中,各个节点的DB_NAME 都相同,但是INSTANCE_NAME不同 ④DB_NAME还在动态注册监听的时候起作用,无论是否定义了SERVICE_NAME,PMON进程都会使用D...

Borntodieee的博客 578

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

db_name,instance_name,service_names,db_domain,dbid,oracle_sid等区别与联系

db_name,instance_name,service_names,db_domain,dbid,oracle_sid等区别与联系 最近整理了一篇文章:oracle listener 有网友对数据库是否显式设置了instance_name和service_names提出疑问。 由此引发出db_name,instance_name,oracle_sid等等这些常见的参数都代表什么

haiross的专栏 2052

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

oracle中的service_name,instance_name,db_name,oracle_sid,sid_name的用法及区别

在init.ora中有db_name,instance_name,service_name 在操作系统中需要配置oracle_sid 在listener.ora中有SID_NAME,GLOBAL_DBNAME, 在tnsname.ora中有SERVICE_NAME,SID 这么多,是不是你也看糊涂了。先晕一个,下面慢慢道来。   在init.ora中有db_name,instanc...

lb517290079的专栏 482

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

转载:oracle中的service_name,instance_name,db_name,oracle_sid,sid_name的用法及区别

oracle中的service_name,instance_name,db_name,oracle_sid,sid_name的用法及区别晨雪 在init.ora中有db_name,instance_name,service_name 在操作系统中需要配置oracle_sid 在listener.ora中有SID_NAME,GLOBAL_DBNAME, 在tnsname.or...

lhbthank的专栏 174

oracle中database_name,Oracle中Service Name、Database name、Instance Name的区别

1,数据库名是Oracle数据库的内部标识,一般在安装完后不应该改变,数据库的很多物理存储目录都用到了数据库名。2,Instance_Name,ORACLE_SID,数据库实例名,是数据库和操作系统交互时用到的名称。如果在一台机器上创建了多个数据库,通过Sqlplus想连接到其中的一个数据库,就需要指明ORACLE_SID:set ORACLE_SID=SIDNAMEsqlplus / as sy...

weixin_39699746的博客 854

ORACLE DB_NAME ,GLOBAL_NAME,INSTANCE_NAME,ORACLE_SID,Service_NAME

DB_NAME:数据库名 DB_DOMAIN :数据库域名 GLOBAL_NAME : 数据库全局名 INSTANCE_NAME :数据库实例名 ORACLE_SID: 在创建oracle数据库时建议的数据库全局名称为 DB_NAME . DB_DOMAIN, DB_NAME加点再加DB_DOMAIN就是GLOBAL_NAME INSTA

doujzh的专栏 703

oracle中的service_name,instance_name,db_name,oracle_sid,sid_name的用法及区别(转)

在init.ora中有db_name,instance_name,service_name。 在操作系统中需要配置oracle_sid。 在listener.ora中有SID_NAME,GLOBAL_DBNAME, 在tnsname.ora中有SERVICE_NAME,SID 这么多,是不是你也看糊涂了。先晕一个,下面慢慢道来。 在init.ora中有db_name,insta...

weixin_30216561的博客 85

Oracle 中 db_name / service_name / sid 三者的关系和作用

<br />show parameter service_names<br />select instance_name from v$instance;<br /> <br />db_name是一个实在的物理名称。service_name时带有域名的,因为如果两个数据库不再同一个域可以有相同的名称。而sid是数据库的实例名称,它是有SGA和后台进程组成。一个数据库只有一个db_name但是可以有两个实例。每个实例各有自己的SGA和后台进程。 Db_name:对一个数据库(Oracle database)

gideal_wang的专栏 5084
上一篇: linux下连接oracle数据库出错:ORA-12514 cannot...
下一篇: linux 下oracle 中文乱码、编码设置
xukeworknet
博客等级 码龄16年 7粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值