oracle tnsname.ora中的SERVICE_NAME 代表实例的名称还是代表全局数据库的名称?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle tnsname.ora中的SERVICE_NAME 代表实例的名称还是代表全局数据库的名称?相关的知识,希望对你有一定的参考价值。

SERVICE_NAME 是数据库服务的名称
SERVICE_SID是实例名称

非rac环境 一般两者名字重复
参考技术A SERVICE_NAME 是数据库服务的名称
SERVICE_SID是实例名
参考技术B 是填写lsnr里设置的(可以与SID不一样)对外服务的名字。。。追问

如果定义了两个两个实例,光访问这个数据库服务名,怎么去辨别访问的是哪个实例?谢谢!

追答

你指的是 lsnr中 一个实例定义两个不同的实例名么
ex:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.1.0\db_1)
(PROGRAM = extproc)
)

(SID_DESC =
(SID_NAME = PROD)
(ORACLE_HOME = C:\oracle\product\10.1.0\db_1)
(PROGRAM = extproc)
(SERVICE_NAME = prod1 )
)

(SID_DESC =
(SID_NAME = PROD)
(ORACLE_HOME = C:\oracle\product\10.1.0\db_1)
(PROGRAM = extproc)
(SERVICE_NAME = prod2)
)
)

然后再tns中
to_prod1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prod1)
)
)

to_prod2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prod2)
)
)
这样子 在连接 oracle数据库的时候 虽然sqlplus user_name/pwd@to_prod1 还是
sqlplus user_name/pwd@to_prod2 都是会连接到 实例为PROD的数据库的。
应为在lsnr中定义了啊~~ 如果想看你的服务名对应到底是哪个SID,使用lsnrctl stat 可查看的到

本回答被提问者和网友采纳
参考技术C SERVICE_NAME 代表实例的名称 参考技术D 实例名称

以上是关于oracle tnsname.ora中的SERVICE_NAME 代表实例的名称还是代表全局数据库的名称?的主要内容,如果未能解决你的问题,请参考以下文章

《oracle管理4》

oracle 10g问题:tnsname.ora到底怎么 配置?是否因为它配置不对,导致PL/SQL不能用,如图:.

oracle课堂笔记--第十八天

20170808上课笔记

我用PL/SQL-Developer登录oracle时出现 ORA-12560:TNS:协议适配器错误怎么办?急!!!!!

如何连接OracleRAC