Oracle中如何查看SERVICE_NAME
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle中如何查看SERVICE_NAME相关的知识,希望对你有一定的参考价值。
INST1_HTTP =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = SHARED)
(SERVICE_NAME = MODOSE)
(PRESENTATION = http://HRService)
)
)
我在客户端中要配置SERVICE_NAME .但我不知道服务器的SERVICE_NAME 是什么?
在Oracle服务器中,我怎么可以查看到他的SERVICE_NAME是什么呢?
可能会有多个,是由逗号隔开的,这个就是服务名,就是你需要在你的客户端上tnsnames.ora里配置的 参考技术A 到数据库服务器上,cd $ORACLE_HOME/network/admin下有相应实例的文件,进去查看tnsnames.ora文件,就知道了 参考技术B show parameter service
自己找吧 参考技术C 直接查询sql:
select instance_name from v$instance;本回答被提问者采纳
Oracle 服务名/实例名,Service_name 和Sid的区别
Service_name 和Sid的区别
Service_name:该参数是由oracle8i引进的。
在8i以前,使用SID来表示标识数据库的一个实例,但是在Oracle的并行环境中,一个数据库对应多个实例,这样就需要多个网络服务名,设置繁琐。为了方便并行环境中的设置,引进了Service_name参数,该参数对应一个数据库,而不是一个实例,而且该参数有许多其它的好处。
该参数的缺省值为Db_name. Db_domain,即等于Global_name。一个数据库可以对应多个Service_name,以便实现更灵活的配置。该参数与SID没有直接关系,即不必Service name 必须与SID一样。Sid是数据库实例的名字,每个实例各不相同。
可以简单的这样理解:
一个公司比喻成一台服务器,数据库是这个公司中的一个部门。
SID:一个数据库可以有多个实例(如RAC),SID是用来标识这个数据库内部每个实例的名字,就好像一个部门里,每个人都有一个自己的名字。
SERVICE_NAME:是这个数据库对外宣称的名字,外面的人要想连接我这个数据库,你就在客户端的连接串里写上service_name。它就像一个部门的名字,这个部门的名称在看门大爷(listener)那里有登记,
看门大爷一看你是要找SERVICE_NAME这个部门,就告诉你我们公司确实有这个部门,于是你就找到了,连接就建立了。
一句话来说就是:SID是对内的,是实例级别的一个名字,用来内部之间称呼用。SERVICE_name是对外的,是数据库级别的一个名字,用来告诉外面的人,我数据库叫"SERVICE_NAME"。
Java JDBC Thin Driver 连接 Oracle有三种方法:
格式一: Oracle JDBC Thin using a ServiceName:
jdbc:oracle:thin:@//<host>:<port>/<service_name>
Example: jdbc:oracle:thin:@//192.168.2.1:1521/XE
注意这里的格式,@后面有//, 这是与使用SID的主要区别。
这种格式是Oracle 推荐的格式,因为对于集群来说,每个节点的SID 是不一样的,
但是SERVICE_NAME 确可以包含所有节点。
格式二: Oracle JDBC Thin using an SID:
jdbc:oracle:thin:@<host>:<port>:<SID>
Example: jdbc:oracle:thin:@192.168.2.1:1521:X01A
Note:
Support for SID is being phased out. Oracle recommends that users switch over to usingservice names.
格式三:Oracle JDBC Thin using a TNSName:
jdbc:oracle:thin:@<TNSName>
Example: jdbc:oracle:thin:@GL
Note:
Support for TNSNames was added in the driver release 10.2.0.1``
以上是关于Oracle中如何查看SERVICE_NAME的主要内容,如果未能解决你的问题,请参考以下文章
ORA_12514:TNS:监听进程不能解析在连接描述中给出的SERVICE_NAME