【发布时间】:2013-10-29 13:57:50
【问题描述】:
在人类语言中: TNS、SID 和监听器有什么区别?谢谢!
【问题讨论】:
在人类语言中: TNS、SID 和监听器有什么区别?谢谢!
【问题讨论】:
SID aka ORACLE_SID 标识运行数据库实例的进程。它是一种物理标识符。 RAC 数据库通常有多个实例,并且可以使用多个 ORACLE_SID。 SID 可用于连接到指定的数据库实例。如果该实例关闭,则连接失败。
SERVICE_NAME 是客户端可以连接的逻辑标识符,而不是连接到 SID。特别是在 RAC 数据库中,可能会发生服务仅在数据库实例的子集上运行的情况。使用服务时,应用程序不需要知道在哪个 ORACLE_SID 上提供了所请求的服务。此外,使用服务,您可以通过在维护期间禁用服务来限制对数据库的访问。 ORACLE_SID 始终可用,只能置于受限模式,限制对完整实例的所有访问。当应用程序使用服务并且至少有一个实例在为 service_name 提供服务时,与该服务的连接就会成功。
TNS Transparent Network Substrate,一种位置透明且协议独立的网络技术。位置透明度是通过使用服务和在数据库中结合同义词和数据库链接来实现的。
【讨论】:
SID:站点标识符:数据库的唯一名称。 +/- 数据库实例,在该实例上运行多个数据库。
服务名称:实例的别名 (SID)
TNS:透明网络底层:Oracle 依靠 TNS 提供 Oracle 数据库之间的网络连接,而不管底层协议如何。这是一种用户透明的预言机网络技术。
【讨论】:
这 3 个在 Oracle 术语中是完全不同的东西: - 透明网络基板 (TNS) 是一种 Oracle 网络技术,可在 Oracle 数据库和 Oracle 客户端之间提供通用网络连接,而与底层协议(TCP 等)无关 - SID - Oracle 系统标识符,代表特定主机上 Oracle 数据库实例的唯一名称。独立数据库有一个 SID,它通常但不一定与数据库名称相同。在 RAC 数据库中,每个数据库实例都有自己的 SID。 - 侦听器 - 侦听传入客户端连接请求并管理到数据库的网络流量的进程。
【讨论】: