欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

再说 Oracle RAC services

程序员文章站 2022-06-10 17:41:48
...

应用程序工作负载在Oracle 10g中可以被定为services,也称之为服务,能够在单实例中使用,也能够在RAC中单独使用和管理。因此整个

应用程序工作负载在Oracle 10g中可以被定为services,也称之为服务,能够在单实例中使用,也能够在RAC中单独使用和管理。因此整个数据库负载能够被分割为多个不同的services,通过管理service能够简化用户或session的管理。其次services特性的重要体现在RAC之中用于实现负载均衡与故障转移。本文描述什么是services,以及使用services的好处,以及如何使用services.

一、services与service_name
services
对于客户端应用程序而言,仅仅需要关心的是数据库提供了哪些服务,而不需要知道它到底连接是哪个数据库或者那个实例。
因此在数据库服务器端我们可以创建一个或多个services供客户端时所用,是一个或多个service_name的统称。
对于这些提供的服务,Oracle会将其注册到监听器以供外部建立连接。
可以通过lsnrctl status [listener_name] 查看当前的服务下有多少个实例为其响应该服务。
也可以通过lsnrctl service [listener_name] 查看更详细的信息,包括当前的连接状况,,ip,端口号等。

service_name
指客户端连接到实例的服务名。在Oracle 8i时就有提出service_name的概念,通常用于代替tnsnames.ora中的ORACLE_SID。
9i之后,Oracle推荐使用service_name而不是SID。
可以通过定义多不不同的服务名来区分不同的用户连接,该参数缺省的格式为db_name.domain_name。
下面是一个客户端的tnsnames.ora,两个不同的连接标识符下一个使用了ORACLE_SID,一个使用SERVICE_NAME,两种方式都可行。
SYBO2SZ_SID=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=192.168.7.2)
(PORT=1915)
)
(CONNECT_DATA=
(ORACLE_SID=SYBO2SZ) #此处使用了ORACLE_SID=,也可以直接使用SID=
)
)

SYBO2SZ=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=192.168.7.2)
(PORT=1915)
)
(CONNECT_DATA=
(SERVICE_NAME=SYBO2SZ) #Oracle 9i之后推荐使用SERVICE_NAME
)
)

再说 Oracle RAC services