SID 与 Oracle tnsnames.ora 中的服务名称有何不同
为什么我需要其中两个? 当我必须使用其中一种或另一种时?
Why do I need two of them? When I have to use one or another?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
为什么我需要其中两个? 当我必须使用其中一种或另一种时?
Why do I need two of them? When I have to use one or another?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
根据 Oracle 术语表:
您应该在 TNSNAMES.ORA 中使用 SID 作为更好的方法。
As per Oracle Glossary :
You should use SID in TNSNAMES.ORA as a better approach.
请查看 Oracle 文档 https ://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm
如果将来无法访问上述链接,在撰写此答案时,上述链接将引导您前往“数据库网络服务管理员指南”的“连接概念”一章中的“数据库服务和数据库实例标识”主题。 本指南由 oracle 作为“Oracle 数据库在线文档,10g 第 2 版 (10.2)”的一部分发布
考虑以下 RAC 环境中的映射,
SID SERVICE_NAME
鲍勃1 鲍勃
鲍勃2 鲍勃
鲍勃3 鲍勃
鲍勃4 bob
如果配置了负载平衡,侦听器将在所有四个 SID 之间“平衡”工作负载。 即使配置了负载平衡,如果您愿意,也可以使用 SID 而不是 SERVICE_NAME 始终连接到 bob1。
请参考,https://community.oracle.com/thread/4049517
please look into oracle's documentation at https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm
In case if the above link is not accessable in future, At the time time of writing this answer, the above link will direct you to, "Database Service and Database Instance Identification" topic in Connectivity Concepts chapter of "Database Net Services Administrator's Guide". This guide is published by oracle as part of "Oracle Database Online Documentation, 10g Release 2 (10.2)"
Consider below mapping in a RAC Environment,
SID SERVICE_NAME
bob1 bob
bob2 bob
bob3 bob
bob4 bob
if load balancing is configured, the listener will 'balance' the workload across all four SIDs. Even if load balancing is configured, you can connect to bob1 all the time if you want to by using the SID instead of SERVICE_NAME.
Please refer, https://community.oracle.com/thread/4049517
@DAC 引用
不完全正确。 SID = INSTANCE 的唯一名称(例如机器上运行的 oracle 进程)。 Oracle 将“数据库”视为文件。
服务名称 = 一个实例(或多个实例)的别名。 这样做的主要目的是,如果您正在运行集群,客户端可以说“将我连接到 SALES.acme.com”,DBA 可以即时更改可用的实例数量
SALES.acme.com
请求,甚至将SALES.acme.com
移动到完全不同的数据库,而客户端无需更改任何设置。Quote by @DAC
Not strictly true. SID = unique name of the INSTANCE (eg the oracle process running on the machine). Oracle considers the "Database" to be the files.
Service Name = alias to an INSTANCE (or many instances). The main purpose of this is if you are running a cluster, the client can say "connect me to
SALES.acme.com
", the DBA can on the fly change the number of instances which are available toSALES.acme.com
requests, or even moveSALES.acme.com
to a completely different database without the client needing to change any settings.我知道这很古老,但是在处理挑剔的工具、用途、用户或症状时:sid & 服务命名可以在您的 tnsnames 条目中添加一点灵活性,如下所示:
我只是想我将其留在这里,因为它与问题稍微相关,并且在尝试绕过一些不太清晰的内容时可能会有所帮助预言机网络的特性。
I know this is ancient however when dealing with finicky tools, uses, users or symptoms re: sid & service naming one can add a little flex to your tnsnames entries as like:
I just thought I'd leave this here as it's mildly relevant to the question and can be helpful when attempting to weave around some less than clear idiosyncrasies of oracle networking.
请参阅:http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm" rel="noreferrer"> sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm
简而言之:SID = 您的数据库实例的唯一名称,ServiceName = 连接时使用的别名
Please see: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm
In short: SID = the unique name of your DB instance, ServiceName = the alias used when connecting