【发布时间】:2013-02-27 23:58:31
【问题描述】:
一般来说,Oracle 数据库 SID 包含在服务名称中。例如:SID:orcl & 服务名称:orcl.mycomp.com
因此,可以在不包含 SID 的情况下定义服务名称 例如:mydb.mycomp.com 数据库 SID 为 orcl。
【问题讨论】:
一般来说,Oracle 数据库 SID 包含在服务名称中。例如:SID:orcl & 服务名称:orcl.mycomp.com
因此,可以在不包含 SID 的情况下定义服务名称 例如:mydb.mycomp.com 数据库 SID 为 orcl。
【问题讨论】:
如果你的 SID 为 orcl,可以通过在 orcl 数据库中设置 Oracle 系统参数 SERVICE_NAMES 将服务名称设置为 mydb.mycomp.com:
ALTER SYSTEM SET service_names = 'mydb.mycomp.com';
或者,如果您还想保留 orcl 作为服务名称:
ALTER SYSTEM SET service_names = 'orcl,mydb.mycomp.com';
【讨论】:
SID 是数据库的标识符,但 service_names 是它提供的服务的名称,并且可以是功能性的而不是技术性的。
因此,您可能有一个提供发票服务、销售服务、消息服务并适当设置 service_name 的数据库。这样做的好处是侦听器可以根据请求的服务选择要连接的适当数据库,并且可以从多个数据库(通过复制)获得单个服务。
您还可以将服务从一个数据库移动到另一个数据库,并通过 v$session 和 v$sql 监控服务活动。
也看看这个:http://www.ardentperf.com/pub/services-schneider07.pdf
【讨论】: