Fork me on GitHub

用服务名进行数据库标识

用服务名进行数据库标识

Oracle 数据库是作为服务呈现给客户机的,即数据库代表客户机执行工作。数据库可以有一个或多个与其有关的服务。

到 Oracle8i 为止,Oracle 数据库服务由 Oracle 系统标识符 (SID) 唯一标识。SID 也由数据库内部使用,以作为指向系统全局区 (SGA) 的指针。客户机通过指定连接描述符中的 SID 连接到数据库实例。此命名方案不区分实例的服务。

由于 Oracle 数据库可以分布到多个计算机上,因此在 Oracle9i 和 Oracle8i 中都指定了作为整体的服务和每个实例的服务。

服务名

数据库现在由其服务名标识。服务名由初始化参数文件中的 SERVICE_NAMES 参数指定。SERVICE_NAMES 指定可以跨实例和/或节点的最高级别的 Oracle 数据库服务视图的名称。SERVICE_NAMES 默认为全局数据库名,即由数据库名和域名组成的名称。

实例名

数据库实例由实例名以及初始化参数文件中的 INSTANCE_NAME 参数标识。INSTANCE_NAME 对应于实例的 SID。

连接描述符

SERVICE_NAME (没有 S) 参数配置连接描述符,以连接到 Oracle9i 或 Oracle8i 数据库。例如,以下连接描述符包含一个位于 sales1-sun 上的监听程序的地址,此监听程序监听名为 sales.us.example.com 的数据库服务的连接请求:

sales=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=tcp)(HOST=sales-sun1)(PORT=1521))

(CONNECT_DATA=

(SERVICE_NAME=sales.us.example.com)))

也可以用 INSTANCE_NAME 参数配置连接描述符,以连接到数据库的特定实例。如果您具有带多个实例的 Oracle9i Real Application Clusters,可能需要使用这种方法。

例如,以下连接描述符包含一个位于 sales-sun1 上的监听程序的地址,此监听程序监听与 sales.us.example.com 数据库关联的名为 sales1 的实例的连接请求:

sales=

(DESCRIPTION=

(ADDRESS=(PROTOCOL=tcp)(HOST=sales-sun1)(PORT=1521))

(CONNECT_DATA=

(SERVICE_NAME=sales.us.example.com)

(INSTANCE_NAME=sales1)))

有关在连接描述符的 CONNECT_DATA 部分指定实例名的详细信息,请参阅 Oracle10i Net Services Administrator's Guide 中的第 13 章“Enabling Advanced Features for Oracle Net Services”。

相关主题

Oracle Net Services 概览

-------------本文结束感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!