为什么我需要两个?当我不得不使用一个或另一个?
请参阅:http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm
Oracle之间的区别是什么 Sid和Oracle服务名。一 配置工具查找服务名称和 然后下一个寻找婴儿猝死综合症。什么 继续?! Oracle Sid是 唯一标识您的 实例/数据库Where作为服务 name是您指定的TNS别名 当您远程连接到 数据库,此服务名为 记录在您的上的tnsnames.ora文件中 客户端,并且它可以与Sid相同 你也可以给它任何其他 你想要的名字. 服务_名称是 哪个数据库中的Oracle 8i及更高版本 可以向侦听器注册自身。如果 数据库已向侦听器注册 这样你就可以使用 tnsnames.ora中的服务_名称参数 否则-使用tnsnames.ora中的Sid. 此外,如果您有OPS(RAC),您将 每个都有不同服务_名称 实例. 服务_名称指定一个或多个 数据库服务的名称 此实例连接的。你可以 在中指定多个服务名称 为了区分不同的 使用相同的数据库。为了 例如: 服务_名称=sales.acme.com, widgetsales.acme.com 您还可以使用服务名称来 标识单个服务 可从两个不同的数据库获取 通过使用复制。 在Oracle并行服务器中 环境中,您必须设置此 每个实例的参数。
什么 Sid和Oracle服务名。一 配置工具查找服务名称和 然后下一个寻找婴儿猝死综合症。什么 继续?!
Oracle Sid是 唯一标识您的 实例/数据库Where作为服务 name是您指定的TNS别名 当您远程连接到 数据库,此服务名为 记录在您的上的tnsnames.ora文件中 客户端,并且它可以与Sid相同 你也可以给它任何其他 你想要的名字.
服务_名称是 哪个数据库中的Oracle 8i及更高版本 可以向侦听器注册自身。如果 数据库已向侦听器注册 这样你就可以使用 tnsnames.ora中的服务_名称参数 否则-使用tnsnames.ora中的Sid.
此外,如果您有OPS(RAC),您将 每个都有不同服务_名称 实例.
服务_名称指定一个或多个 数据库服务的名称 此实例连接的。你可以 在中指定多个服务名称 为了区分不同的 使用相同的数据库。为了 例如:
服务_名称=sales.acme.com, widgetsales.acme.com
您还可以使用服务名称来 标识单个服务 可从两个不同的数据库获取 通过使用复制。
Oracle并行服务器中 环境中,您必须设置此 每个实例的参数。
简而言之:Sid=数据库实例的唯一名称,ServiceName=连接时使用的别名
由@DAC引用
简而言之:Sid=的唯一名称 您的数据库,ServiceName=使用的别名 连接时
简而言之:Sid=的唯一名称 您的数据库,ServiceName=使用的别名 连接
严格来说并不正确。Sid=实例的唯一名称(例如在计算机上运行的Oracle进程)。Oracle考虑";数据库";成为文件。
服务名称=一个实例(或多个实例)的别名。这样做的主要目的是,如果您正在运行集群,则客户端可以说“将我连接到SALES.acme.com ”,DBA可以动态更改可用于SALES.acme.com请求的实例数量,甚至可以将SALES.acme.com移动到完全不同的数据库,而无需客户端更改任何设置。
SALES.acme.com
根据Oracle术语表:
SID是Oracle数据库实例的唯一名称。--->切换 在Oracle数据库之间,用户必须指定所需的Sid<;--。这个 Sid包含在连接描述符的连接数据部分中 在tnsnames.ora文件中,以及在网络侦听器的定义中 在listener.ora文件中。也称为系统ID.Oracle服务名称 可以是任何描述性的内容,如“ MyOracleServiceORCL ”。在Windows中, 您可以将您的服务名称作为Windows服务下的服务运行。
您应该使用tnsnames.ora中的Sid作为更好的方法。
我知道这是古老的,但是在处理挑剔的工具,使用,用户或症状时:Sid&;服务命名可以在tnsNames条目中添加一些Flex,如下所示:
mySID, mySID.whereever.com = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = myHostname)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = mySID.whereever.com) (SID = mySID) (SERVER = DEDICATED) ) )
我只是想把这个问题留在这里,因为它与这个问题有一定的相关性,并且在试图围绕Oracle网络的一些不太明确的特性进行编织时会很有帮助。
什么是Sid和服务名称
请查看位于https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm的Oracle文档
如果将来无法访问上述链接,则在撰写此答案时,上述链接将引导您访问“数据库网络服务管理员指南”的连接概念章节中的“数据库服务和数据库实例标识”主题。本指南由Oracle作为“ Oracle数据库联机文档,10g发行版2(10.2)”的一部分发布
当我不得不使用一个或另一个?为什么我需要两个?
考虑RAC环境中的以下映射,
SID ; ; ;服务_名称 BOB1 ; ;鲍勃 BOB2 ; ;鲍勃 BOB3 ; ;鲍勃 BOB4 ; ;鲍勃
如果配置了负载平衡,则侦听器将在所有四个Sid之间“平衡”工作负载。即使配置了负载平衡,您也可以通过使用Sid而不是服务_名称随时连接到BOB1。
请参阅,https://community.oracle.com/thread/4049517