SID与Oracle tnsnames.ora中的服务名称的不同之处

时间:2008-09-04 14:26:07

标签: database oracle service administration sid

为什么我需要两个?当我不得不使用一个或另一个?

5 个答案:

答案 0 :(得分:141)

@DAC

  

简而言之:SID =唯一的名称   您的DB,ServiceName =使用的别名   连接时

不严格为真.. SID = INSTANCE的唯一名称(例如在机器上运行的oracle进程)。 Oracle认为“数据库”是文件。

服务名称= INSTANCE(或许多实例)的别名。这样做的主要目的是,如果您正在运行集群,客户端可以说“将我连接到SALES.acme.com”,DBA可以随时更改SALES.acme.com请求可用的实例数,甚至将SALES.acme.com移动到完全不同的数据库,而客户端无需更改任何设置。

答案 1 :(得分:26)

请参阅:http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm

  

Oracle之间有什么区别   SID和Oracle服务名称。一   配置工具查找服务名称和   然后下一个寻找SID!什么是   继续?!

     

Oracle SID是唯一的名称   唯一标识你的   实例/数据库作为服务   name是您提供的TNS别名   当你远程连接到你的   数据库和此服务名称是   记录在你的Tnsnames.ora文件中   客户端,它可以与SID相同   而你也可以给它任何其他   你想要的名字。

     

SERVICE_NAME是来自的新功能   oracle 8i从哪个数据库开始   可以用听众注册自己。如果   数据库已向侦听器注册   这样你就可以使用了   tnsnames.ora中的SERVICE_NAME参数   否则 - 在tnsnames.ora中使用SID。

     

如果你有OPS(RAC),你也会   每个都有不同的SERVICE_NAME   实例

     

SERVICE_NAMES指定一个或多个   数据库服务的名称   这个实例连接的是什么您可以   在中指定多个服务名称   为了区分不同   使用相同的数据库。对于   例如:

     

SERVICE_NAMES = sales.acme.com,   widgetsales.acme.com

     

您也可以使用服务名称   识别单个服务   可从两个不同的数据库获得   通过使用复制。

     

在Oracle Parallel Server中   环境,你必须设置这个   每个实例的参数。

简而言之:SID =数据库实例的唯一名称,ServiceName =连接时使用的别名

答案 2 :(得分:16)

我知道这很古老,但在处理挑剔的工具,用途,用户或症状时: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网络特性时会有所帮助。

答案 3 :(得分:5)

  

什么是SID和服务名称

请在https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm

查看oracle的文档
  

当我必须使用一个或另一个?为什么我需要其中两个?

在RAC环境中考虑以下映射,

SID SERVICE_NAME
bob1 bob
bob2 bob
bob3 bob
bob4 bob

如果配置了负载平衡,则侦听器将“平衡”所有四个SID上的工作负载。即使配置了负载平衡,如果您希望使用SID而不是SERVICE_NAME,也可以随时连接到bob1。

请参阅https://community.oracle.com/thread/4049517

答案 4 :(得分:0)

根据Oracle词汇表:

  

SID是Oracle数据库实例的唯一名称。 --->换成   在Oracle数据库之间,用户必须指定所需的SID< ---。该   SID包含在连接描述符的CONNECT DATA部分中   在TNSNAMES.ORA文件中,以及在网络侦听器的定义中   在LISTENER.ORA文件中。也称为系统ID。 Oracle服务名称   可能是任何描述性的,如“MyOracleServiceORCL”。在Windows中   您可以在Windows服务下将服务名称作为服务运行。

您应该在TNSNAMES.ORA中使用SID作为更好的方法。