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是什么呢?

show parameter service_names

可能会有多个,是由逗号隔开的,这个就是服务名,就是你需要在你的客户端上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的主要内容,如果未能解决你的问题,请参考以下文章

linux下如何判断oracle数据库tns是否设置正常

ORA_12514:TNS:监听进程不能解析在连接描述中给出的SERVICE_NAME

Oracle 服务名/实例名,Service_name 和Sid的区别

如何查找 Oracle 服务名称

Oracle 的SID 与 Service_Name 区别

ORACLE中SID和SERVICE_NAME的区别