Oracle 12C Service

作者:孙显鹏

目标:

该文档介绍Service的特性以及Service的管理。

概述:

Oracle Service 向客户端提供一个统一的服务名,Service位置透明,一个Service能定义多个数据库实例,一个数据库实例可以属于多个Service。Oracle Service 服务分为默认服务和自定义的集群管理服务。默认服务定义为 DB_UNIQUE_NAME or DB_NAME or PDB_NAME,SYS$BACKGROUND(后台进程使用)和 SYS$USERS (默认用户session),Oracle默认服务oracle内部管理,不能被禁用,不能被计划停止服务,不能故障转移到ORACLE DATA GUARD。Oracle强烈建议不要使用默认Service给client提供服务,但是我遇到的几乎所有在运数据库使用默认Service向外提供服务,这样配置使用好像也没存在性能问题,故障转移负载均衡一切运作正常。

那为什么Oracle强力建议使用自定义Service向客户提供服务,基于下面考虑:

1:默认Service存在许多限制,不能管理,缺少灵活性

2:可依据用户应用类型建立不同Service分类管理应用

3:可动态灵活分配主要实例和可用实例给每个Service,以及动态迁移Service到其他实例

4:可以计划禁用Service满足计划停机事件

5:可依据应用定义链接时负载均衡和运行时负载均衡

基于以上好处强烈建议使用自定义Service提供服务

下面我们看看自定义服务的建立和相关重要属性:

用户可使用EM和srvctl建立、修改、禁用、启动、停止、查询。这里我们只讨论srvctl的使用方法,下面是12C的使用方法,注意12C和11G以及10G的使用方法差异巨大,10G的Service特性较少,11G的Service功能强大但是参数使用方法和12C完全不同,12C在11G基础增加功能,

下面我们列出12C的参数:

这里我们看看主要的几个参数:

-policy : Service Management Policy 默认为AUTOMATIC,srvctl start database 自动启动service,建议默认。

-preferred :定义优先的实例列表。

-available :定义可用的实例列表,当优先的实例不可用时使用。

-cardinality:Server Pool Assignment(资源池分配) You can define the service as either UNIFORM (running on all instances in the serverpool) or SINGLETON (running on only one instance in the server pool) using the -cardinality parameter

-rlbgoal:定义Run-time Connection Load Balancing,默认为NONE,SERVICE_TIME:基于单个事务处理效率向客户提供最好的服务质量,OLTP使用。THROUGHPUT:基于长时间查询和单个完整工作完成效率向客户提供最大吞吐量,OLAP使用。

-clbgoal:定义Connection Load Balancing Goal,默认值为LONG:如果 -rlbgoal 参数不为NONE,Service定义为SINGLETON也就是只在一个服务器上运行则使用session count进行负载评判.如果Service定义为uniform在所以服务器上运行则使用run queue length进行评判。另外一个值为short: 如果 -rlbgoal 参数不为NONE,则使用GOODNESS进行判断提供负载均衡。

12C新增功能:

Creating Services for Application Continuity and Transaction Guard

1:Creating Services for Application Continuity

-replay_init_time: 单位秒,默认值300s,定义replay初始化时间

-retention:单位秒,默认值86400(1 day),commit outcome信息保存时间。

-failoverretry:链接重试次数,建议30

-failoverdelay:每次重试延迟,建议10s

-notification: FAN is highly recommended—set this value to TRUE to enable FAN for OCI and ODP.Net clients.

对数据库 racdb 新增service app2 资源池 Srvpool1 的示例:

2:Creating Services for Transaction Guard,启动事务保护

To enable Transaction Guard, but not Application Continuity, create the service using

SRVCTL and set only -commit_outcome TRUE.

修改示例:

另外必须

其他操作:

Starting and Stopping Services with SRVCTL:

Enabling and Disabling Services with SRVCTL:

Relocating Services with SRVCTL:

The following command relocates the crm service from instance apps1 to instance apps3:

The following command relocates the crm service from node1 to node3 using node

Obtaining the Status of Services with SRVCTL:

Obtaining the Configuration of Services with SRVCTL:

 

未经允许不得转载:Oracle一体机用户组 » Oracle 12C Service

相关推荐